7f3a8f662d
Change-Id: If55688e9dd8e5feb20e3e6204e10f635055eb5a3
81 lines
2.5 KiB
ReStructuredText
81 lines
2.5 KiB
ReStructuredText
Unit Tests
|
|
==========
|
|
|
|
Manila contains a suite of unit tests, in the manila/tests directory.
|
|
|
|
Any proposed code change will be automatically rejected by the OpenStack
|
|
Zuul server if the change causes unit test failures.
|
|
|
|
Running the tests
|
|
-----------------
|
|
|
|
To run all unit tests simply run::
|
|
|
|
tox
|
|
|
|
This will create a virtual environment, load all the packages from
|
|
test-requirements.txt and run all unit tests as well as run flake8 and hacking
|
|
checks against the code.
|
|
|
|
You may run individual test targets, for example only unit tests, by running::
|
|
|
|
tox -e py3
|
|
|
|
Note that you can inspect the tox.ini file to get more details on the available
|
|
options and what the test run does by default.
|
|
|
|
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 ``manila/tests/scheduler`` directory::
|
|
|
|
tox -epy3 -- manila.tests.scheduler
|
|
|
|
To run the tests in the `ShareManagerTestCase` class in
|
|
``manila/tests/share/test_manager.py``::
|
|
|
|
tox -epy3 -- manila.tests.share.test_manager.ShareManagerTestCase
|
|
|
|
To run the `ShareManagerTestCase::test_share_manager_instance` test method in
|
|
``manila/tests/share/test_manager.py``::
|
|
|
|
tox -epy3 -- manila.tests.share.test_manager.ShareManagerTestCase.test_share_manager_instance
|
|
|
|
For more information on these options and details about stestr, please see the
|
|
`stestr documentation <http://stestr.readthedocs.io/en/latest/MANUAL.html>`_.
|
|
|
|
Database Setup
|
|
--------------
|
|
|
|
Some unit tests will use a local database. You can use
|
|
``tools/test-setup.sh`` to set up your local system the same way as
|
|
it's setup in the CI environment.
|
|
|
|
|
|
Gotchas
|
|
-------
|
|
|
|
**Running Tests from Shared Folders**
|
|
|
|
If you are running the unit tests from a shared folder, you may see tests start
|
|
to fail or stop completely as a result of Python lockfile issues [#f3]_. You
|
|
can get around this by manually setting or updating the following line in
|
|
``manila/tests/conf_fixture.py``::
|
|
|
|
FLAGS['lock_path'].SetDefault('/tmp')
|
|
|
|
Note that you may use any location (not just ``/tmp``!) as long as it is not
|
|
a shared folder.
|
|
|
|
.. rubric:: Footnotes
|
|
|
|
.. [#f1] See :doc:`development.environment` for more details about the use of
|
|
virtualenv.
|
|
|
|
.. [#f2] There is an effort underway to use a fake DB implementation for the
|
|
unit tests. See https://lists.launchpad.net/openstack/msg05604.html
|
|
|
|
.. [#f3] See Vish's comment in this bug report: https://bugs.launchpad.net/manila/+bug/882933
|