mirror of https://github.com/containers/podman.git
70 lines
1.9 KiB
Markdown
70 lines
1.9 KiB
Markdown

|
|
# Integration Tests
|
|
|
|
Our primary means of performing integration testing for libpod is with the
|
|
[Ginkgo](https://github.com/onsi/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.
|