summaryrefslogtreecommitdiff
path: root/doc/source/testing.rst
diff options
context:
space:
mode:
Diffstat (limited to 'doc/source/testing.rst')
-rw-r--r--doc/source/testing.rst39
1 files changed, 39 insertions, 0 deletions
diff --git a/doc/source/testing.rst b/doc/source/testing.rst
new file mode 100644
index 00000000..b3b15038
--- /dev/null
+++ b/doc/source/testing.rst
@@ -0,0 +1,39 @@
+=======================
+Horizon's tests and you
+=======================
+
+How to run the tests
+====================
+
+Because Horizon is composed of both the ``horizon`` app and the
+``openstack-dashboard`` reference project, there are in fact two sets of unit
+tests. While they can be run individually without problem, there is an easier
+way:
+
+Included at the root of the repository is the ``run_tests.sh`` script
+which invokes both sets of tests, and optionally generates analyses on both
+components in the process. This script is what what Jenkins uses to verify the
+stability of the project, so you should make sure you run it and it passes
+before you submit any pull requests/patches.
+
+To run the tests::
+
+ $ ./run_tests.sh
+
+.. seealso::
+
+ :doc:`ref/run_tests`
+ Full reference for the ``run_tests.sh`` script.
+
+Writing tests
+=============
+
+Horizon uses Django's unit test machinery (which extends Python's ``unittest2``
+library) as the core of its test suite. As such, all tests for the Python code
+should be written as unit tests. No doctests please.
+
+In general new code without unit tests will not be accepted, and every bugfix
+*must* include a regression test.
+
+For a much more in-depth discussion of testing, see the :doc:`testing topic
+guide </topics/testing>`.