## Running the Tests

updated: 2020-10-17 18:35

# Running the Tests

Panko includes an extensive set of automated unit tests which are run through tox.

1. Install `tox`:

       $ sudo pip install tox

2. On Ubuntu install `mongodb` and `libmysqlclient-dev` packages:

       $ sudo apt-get install mongodb
       $ sudo apt-get install libmysqlclient-dev

   For Fedora20 there is no `libmysqlclient-dev` package, so you’ll need to install `mariadb-devel.x86-64` (or `mariadb-devel.i386`) instead:

       $ sudo yum install mongodb
       $ sudo yum install mariadb-devel.x86_64

3. Install the test dependencies:

       $ sudo pip install -r /opt/stack/panko/test-requirements.txt

4. Run the unit and code-style tests:

       $ cd /opt/stack/panko
       $ tox -e py27,pep8

   As tox is a wrapper around testr, it also accepts the same flags as testr. See the testr documentation for details about these additional flags.

> Use a double hyphen to pass options to testr. For example, to run only tests under tests/api/v2:

>     $ tox -e py27 -- api.v2

> To debug tests (ie. break into pdb debugger), you can use ‘’debug’’ tox environment. Here’s an example, passing the name of a test since you’ll normally only want to run the test that hits your breakpoint:

>     $ tox -e debug panko.tests.test_bin

> For reference, the `debug` tox environment implements the instructions here: https://wiki.openstack.org/wiki/Testr#Debugging_.28pdb.29_Tests

5. There is a growing suite of tests which use a tool called gabbi to test and validate the behavior of the Panko API. These tests are run when using the usual `py27` tox target but if desired they can be run by themselves:

       $ tox -e gabbi

   The YAML files used to drive the gabbi tests can be found in `panko/tests/functional/gabbi/gabbits`. If you are adding to or adjusting the API you should consider adding tests here.

See also

- tox

updated: 2020-10-17 18:35

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

questions?