cbe2a68ce5
The gprc execsync client call doesn't populate `ExecSyncResponse` on error at all. You just get an error. This patch modifies the code to include command's streams, exit code and error direcly into the error. `ocic` will then print useful infomation in the cli, otherwise it won't. Signed-off-by: Antonio Murdaca <runcom@redhat.com> |
||
---|---|---|
.. | ||
testdata | ||
ctr.bats | ||
helpers.bash | ||
pod.bats | ||
README.md | ||
restore.bats | ||
runtimeversion.bats | ||
test_runner.sh |
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 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 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.
#!/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() {
cleanup_test
}
@test "ocic runtimeversion" {
start_ocid
ocic runtimeversion
[ "$status" -eq 0 ]
}