Integration Tests
Our primary means of performing integration testing for libpod is with the
Ginkgo BDD testing framework. This allows
us to use native Golang to perform our tests and there is a strong affiliation
between Ginkgo and the Go test framework.
Installing dependencies
The dependencies for integration really consists of three things:
- ginkgo binary
- ginkgo sources
- gomega sources
The following instructions assume your GOPATH is ~/go. Adjust as needed for your
environment.
Installing ginkgo
Fetch and build ginkgo with the following command:
GOPATH=~/go go get -u github.com/onsi/ginkgo/ginkgo
Now install the ginkgo binary into your path:
install -D -m 755 "$GOPATH"/bin/ginkgo /usr/bin/
You now have a ginkgo binary and its sources in your GOPATH.
Install gomega sources
The gomega sources can be simply installed with the command:
GOPATH=~/go go get github.com/onsi/gomega/...
Running the integration tests
You can run the entire suite of integration tests with the following command:
GOPATH=~/go ginkgo -v test/e2e/.
Note the trailing period on the command above. Also, -v invokes verbose mode. That
switch is optional.
You can run a single file of integration tests using the go test command:
GOPATH=~/go go test -v test/e2e/libpod_suite_test.go test/e2e/your_test.go
Run all tests like PAPR
You can closely emulate the PAPR run for Fedora with the following command:
make integration.fedora
This will run lint, git-validation, and gofmt tests and then execute unit and integration
tests as well.
Run tests in a container
In case you have issue running the tests locally on your machine, you can run
them in a container:
make shell
This will run a container and give you a shell and you can follow the instructions above.