The pytest
framework makes it easy to write small tests, yet
scales to support complex functional testing for applications and libraries.
An example of a simple test:
# content of test_sample.py
def func(x):
return x + 1
def test_answer():
assert func(3) == 5
To execute it:
$ py.test ======= test session starts ======== platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1 collected 1 items test_sample.py F ======= FAILURES ======== _______ test_answer ________ def test_answer(): > assert func(3) == 5 E assert 4 == 5 E + where 4 = func(3) test_sample.py:5: AssertionError ======= 1 failed in 0.12 seconds ========
Due to py.test
's detailed assertion introspection, only plain assert
statements are used. See getting-started for more examples.
- Detailed info on failing assert statements (no need to remember
self.assert*
names); - Auto-discovery of test modules and functions;
- Modular fixtures for managing small or parametrized long-lived test resources;
- Can run unittest (or trial), nose test suites out of the box;
- Python2.6+, Python3.2+, PyPy-2.3, Jython-2.5 (untested);
- Rich plugin architecture, with over 150+ external plugins and thriving comminity;
For full documentation, including installation, tutorials and PDF documents, please see http://pytest.org.
Please use the GitHub issue tracker to submit bugs or request features.
Consult the Changelog page for fixes and enhancements of each version.
Copyright Holger Krekel and others, 2004-2016. Licensed under the MIT license.