1aa88fa870
There are cases as seen in https://github.com/docker/docker/issues/17984 the sandbox could be stale in endpoint structure, when the actual sandbox is removed during the cleanup phase. Hence instead of just validating for sandboxID, make sure if it is actually present in the sandboxes DB managed by the controller. Signed-off-by: Madhu Venugopal <madhu@docker.com> |
||
---|---|---|
.. | ||
dnet | ||
daemon-configs.bats | ||
daemon.cfg | ||
helpers.bash | ||
README.md |
LibNetwork Integration Tests
Integration tests provide end-to-end testing of LibNetwork and Drivers.
While unit tests verify the code is working as expected by relying on mocks and artificially created fixtures, integration tests actually use real docker engines and communicate to it through the CLI.
Note that integration tests do not replace unit tests and Docker is used as a good use-case.
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.
Pre-Requisites
- Bats (https://github.com/sstephenson/bats#installing-bats-from-source)
- Docker Machine (https://github.com/docker/machine)
- Virtualbox (as a Docker machine driver)
Running integration tests
- Start by [installing] (https://github.com/sstephenson/bats#installing-bats-from-source) bats on your system.
- If not done already, install docker-machine into /usr/bin
- Make sure Virtualbox is installed as well, which will be used by docker-machine as a driver to launch VMs
In order to run all integration tests, pass bats the test path:
$ bats test/integration/daemon-configs.bats