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 inc(x):
return x + 1
def test_answer():
assert inc(3) == 5
To execute it:
$ pytest ============================= test session starts ============================= collected 1 items test_sample.py F ================================== FAILURES =================================== _________________________________ test_answer _________________________________ def test_answer(): > assert inc(3) == 5 E assert 4 == 5 E + where 4 = inc(3) test_sample.py:5: AssertionError ========================== 1 failed in 0.04 seconds ===========================
Due to pytest
'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;
- Python 2.7, Python 3.4+, PyPy 2.3, Jython 2.5 (untested);
- Rich plugin architecture, with over 315+ external plugins and thriving community;
For full documentation, including installation, tutorials and PDF documents, please see http://docs.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-2017.
Distributed under the terms of the MIT license, pytest is free and open source software.