Merge pull request #53 from runcom/inttests-add

test: add README.md and add TESTFLAGS to Makefile
This commit is contained in:
Mrunal Patel 2016-09-24 07:14:12 -07:00 committed by GitHub
commit a2e816c4bc
2 changed files with 74 additions and 2 deletions

View file

@ -52,10 +52,10 @@ dbuild: ocidimage
docker rm ${OCID_INSTANCE} docker rm ${OCID_INSTANCE}
integration: ocidimage integration: ocidimage
docker run -t --privileged --rm -v ${CURDIR}:/go/src/${PROJECT} ${OCID_IMAGE} make localintegration docker run -e TESTFLAGS -t --privileged --rm -v ${CURDIR}:/go/src/${PROJECT} ${OCID_IMAGE} make localintegration
localintegration: binaries localintegration: binaries
./test/test_runner.sh ./test/test_runner.sh ${TESTFLAGS}
binaries: ${OCID_LINK} ocid ocic conmon binaries: ${OCID_LINK} ocid ocic conmon

72
test/README.md Normal file
View file

@ -0,0 +1,72 @@
# OCID Integration Tests
Integration tests provide end-to-end testing of OCID.
Note that integration tests do **not** replace unit tests.
As a rule of thumb, code should be tested thoroughly with unit tests.
Integration tests on the other hand are meant to test a specific feature end
to end.
Integration tests are written in *bash* using the
[bats](https://github.com/sstephenson/bats) framework.
## Running integration tests
The easiest way to run integration tests is with Docker:
```
$ make integration
```
Alternatively, you can run integration tests directly on your host through make:
```
$ sudo make localintegration
```
Or you can just run them directly using bats
```
$ sudo bats test
```
To run a single test bucket:
```
$ make integration TESTFLAGS="runtimeversion.bats"
```
To run them on your host, you will need to setup a development environment plus
[bats](https://github.com/sstephenson/bats#installing-bats-from-source)
For example:
```
$ cd ~/go/src/github.com
$ git clone https://github.com/sstephenson/bats.git
$ cd bats
$ ./install.sh /usr/local
```
## Writing integration tests
[Helper functions]
(https://github.com/kubernetes-incubator/ocid/blob/master/test/helpers.bash)
are provided in order to facilitate writing tests.
```sh
#!/usr/bin/env bats
# This will load the helpers.
load helpers
# setup is called at the beginning of every test.
function setup() {
}
# teardown is called at the end of every test.
function teardown() {
stop_ocid
cleanup_test
}
@test "ocic runtimeversion" {
start_ocid
ocic runtimeversion
[ "$status" -eq 0 ]
}
```