tuskar-ui/docs/source/testing.rst
Emma Steimann 6516c3890b Updated Copyright dates to 2012.
* fixes bug 916953

Change-Id: I44bdbb735fa1ac068c38997844591c8f256c62fb
2012-02-09 19:46:48 -06:00

2.2 KiB

Testing Horizon

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
ref/run_tests

Full reference for the run_tests.sh script.

How to write good tests

Horizon uses Django's unit test machinery (which extends Python's unittest2 library) as the core of it's test suite. As such, all tests for the Python code should be written as unit tests. No doctests please.

A few pointers for writing good tests:

  • Write tests as you go--If you save them to the end you'll write less of them and they'll often miss large chunks of code.
  • Keep it as simple as possible--Make sure each test tests one thing and tests it thoroughly.
  • Think about all the possible inputs your code could have--It's usually the edge cases that end up revealing bugs.
  • Use coverage.py to find out what code is not being tested.

In general new code without unit tests will not be accepted, and every bugfix must include a regression test.