51f566c56c
remove os-testr and testrepository in favor of stestr, and remove qpid-python (does not seem to be imported anywhere). Also adjust docs to describe running tests with stestr instead of testrepository. Change-Id: I12088ea2bf2475963db58d6e8e83fd6abe6f9b3f
58 lines
2.3 KiB
ReStructuredText
58 lines
2.3 KiB
ReStructuredText
Heat style commandments
|
|
=======================
|
|
|
|
- Step 1: Read the OpenStack style commandments
|
|
https://docs.openstack.org/hacking/
|
|
- Step 2: Read on
|
|
|
|
Heat specific commandments
|
|
--------------------------
|
|
|
|
None so far
|
|
|
|
Creating unit tests
|
|
-------------------
|
|
For every new feature, unit tests should be created that both test and
|
|
(implicitly) document the usage of said features. If submitting a patch for a
|
|
bug that had no unit test, a new passing unit test should be added. If a
|
|
submitted bug fix does have a unit test, be sure to add a new one that fails
|
|
without the patch and passes with the patch.
|
|
|
|
For more information on creating unit tests and utilizing the testing
|
|
infrastructure in OpenStack Heat, please read heat/tests/testing-overview.txt.
|
|
|
|
|
|
Running tests
|
|
-------------
|
|
The testing system is based on a combination of tox and stestr. The canonical
|
|
approach to running tests is to simply run the command ``tox``. This will
|
|
create virtual environments, populate them with dependencies and run all of
|
|
the tests that OpenStack CI systems run. Behind the scenes, tox is running
|
|
``stestr run``, but is set up such that you can supply any additional
|
|
stestr arguments that are needed to tox. For example, you can run:
|
|
``tox -- --analyze-isolation`` to cause tox to tell stestr to add
|
|
``--analyze-isolation`` to its argument list.
|
|
|
|
It is also possible to run the tests inside of a virtual environment
|
|
you have created, or it is possible that you have all of the dependencies
|
|
installed locally already. In this case, you can interact with the ``stestr``
|
|
command directly. Running ``stestr run`` will run the entire test suite in
|
|
as many threads as you have CPU cores (this is the default incantation tox
|
|
uses), number of threads can be adjusted with ``--concurrency N`` argument.
|
|
``testr run --serial`` will run tests in serial process.
|
|
More information about stestr can be found at:
|
|
http://stestr.readthedocs.io
|
|
|
|
Note that unit tests use a database if available. See
|
|
``tools/test-setup.sh`` on how to set up the databases the same way as
|
|
done in the OpenStack CI systems.
|
|
|
|
Heat Specific Commandments
|
|
--------------------------
|
|
|
|
- [Heat301] Use LOG.warning() rather than LOG.warn().
|
|
- [Heat302] Python 3: do not use dict.iteritems.
|
|
- [Heat303] Python 3: do not use dict.iterkeys.
|
|
- [Heat304] Python 3: do not use dict.itervalues.
|
|
|