Merge pull request #53 from runcom/inttests-add
test: add README.md and add TESTFLAGS to Makefile
This commit is contained in:
commit
a2e816c4bc
2 changed files with 74 additions and 2 deletions
4
Makefile
4
Makefile
|
@ -52,10 +52,10 @@ dbuild: ocidimage
|
|||
docker rm ${OCID_INSTANCE}
|
||||
|
||||
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
|
||||
./test/test_runner.sh
|
||||
./test/test_runner.sh ${TESTFLAGS}
|
||||
|
||||
binaries: ${OCID_LINK} ocid ocic conmon
|
||||
|
||||
|
|
72
test/README.md
Normal file
72
test/README.md
Normal 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 ]
|
||||
}
|
||||
|
||||
```
|
Loading…
Reference in a new issue