Files
nova/doc/source/devref/unit_tests.rst
Chris Yeoh 22d0561e72 Add suggestion to dev docs for debugging odd test failures
Adds information about the -r flag for tox to refresh the venv when
running unitests as when this happens the failures can look odd or valid
failures can be missing when running on a local system but occur when running
in the gate.

Change-Id: Ie6f7f73dfdbd4e55e8ac0b8a66cf9661f5630a09
2015-02-05 10:02:29 +10:30

64 lines
1.8 KiB
ReStructuredText

Unit Tests
==========
Nova contains a suite of unit tests, in the nova/tests directory.
Any proposed code change will be automatically rejected by the OpenStack
Jenkins server [#f1]_ if the change causes unit test failures.
Preferred way to run the tests
------------------------------
The preferred way to run the unit tests is using ``tox``. See `the
unit testing section of the Testing wiki page`_ and `Nova's HACKING.rst`_
for more information. Following are some simple examples.
To run the style tests::
tox -e pep8
You can request multiple tests, separated by commas::
tox -e py27,pep8
.. _the unit testing section of the Testing wiki page: https://wiki.openstack.org/wiki/Testing#Unit_Tests
.. _Nova's HACKING.rst: http://git.openstack.org/cgit/openstack/nova/tree/HACKING.rst
Running a subset of tests
-------------------------
Instead of running all tests, you can specify an individual directory, file,
class, or method that contains test code.
To run the tests in the ``nova/tests/unit/scheduler`` directory::
tox -e py27 nova.tests.unit.scheduler
To run the tests in the ``nova/tests/unit/virt/libvirt/test_driver.py`` file::
tox -e py27 test_driver
To run the tests in the ``CacheConcurrencyTestCase`` class in
``nova/tests/unit/virt/libvirt/test_driver.py``::
tox -e py27 test_driver.CacheConcurrencyTestCase
To run the `ValidateIntegerTestCase.test_invalid_inputs` test method in
``nova/tests/unit/test_utils.py``::
tox -epy27 test_utils.ValidateIntegerTestCase.test_invalid_inputs
Debugging strange test failures
-------------------------------
Things to try when there are odd test failures such as failure on
jenkins but not locally.
The venv can get stale. Force a refresh by adding the -r flag::
tox -r -e pep8
.. rubric:: Footnotes
.. [#f1] See :doc:`jenkins`.