Testing with Octavia
Octavia uses tox to manage the virtual environments for running test cases.
pip install tox$
To run the full suite of tests maintained within Octavia.
The first time you run
tox, it will take additional time to build virtualenvs. You can later use the
-r option with
tox to rebuild your virtualenv in a similar manner.
To run tests for one or more specific test environments(for example, the most common configuration of Python 3.7 and PEP-8), list the environments with the
-e option, separated by spaces:
tox -e py37,pep8$
tox -l for the full list of available test environments.
Octavia creates a simulated API and handler for its functional tests. The tests then run requests against the mocked up API.
To run the entire suite of functional tests:
tox -e functional$
To run a specific functional test:
tox -e functional octavia.tests.functional.api.v2.test_load_balancer$
Tests can also be run using partial matching, to run all API tests for v2:
tox -e functional api.v2$
Additional options can be used while running tests. Two useful options that can be used when running tests are
-- --until-failure which will run the tests in a loop until the first failure is hit, and
-- --failing which if used after an initial run will only run the tests that failed in the previous run.
Octavia uses Tempest to cover the scenario tests for the project. These tests are run against actual cloud deployments.
To run the entire suite of scenario tests:
tox -e scenario$
The first time running the Tempest scenario tests export the Tempest configuration directory (i.e. TEMPEST_CONFIG_DIR=/opt/stack/tempest/etc)