Testing OpenStack Projects
Projects generally have three categories of tests that commits are must pass before being ready for review:
- Unit Tests
- Self contained in each project
- Style Checks
- Integration Tests
- Part of tempest
`[apt-get | yum] install python-pip`
`pip install tox` (`pip install --upgrade tox` - upgrades tox)
Sample tox.ini file https://github.com/openstack/nova/blob/master/tox.ini
There will be a tox.ini file in the root directory of every project.
Within the tox.ini file you might see any of the following envlist options:
envlist = py26,py27,py33,pep8,pylint
Why does tox take so long to run? The reason tox takes a long time is two-fold: On the first run it has to create a virtual environment, which can take anywhere from 5 to 30+ minutes depending on the project and the system. The other reason is that it just takes a long time to run all of the test cases in some of the projects.
Style checks can be run via tox with `tox -epep8` or manually using `flake8`.
Running Swift Tests
Swift has functional tests, functional nose tests, and unit tests available in the source in the test directory. At Rackspace we test several environments including a staging area with 36 storage nodes.