pytest: helps you write better programs¶
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 ========
platform linux -- Python 3.x.y, pytest-3.x.y, py-1.x.y, pluggy-0.x.y
rootdir: $REGENDOC_TMPDIR, inifile:
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.12 seconds ========
Due to pytest
‘s detailed assertion introspection, only plain assert
statements are used.
See Getting Started for more examples.
Features¶
- 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 (including trial) and nose test suites out of the box;
- Python2.6+, Python3.3+, PyPy-2.3, Jython-2.5 (untested);
- Rich plugin architecture, with over 150+ external plugins and thriving community;
Documentation¶
Please see Contents for full documentation, including installation, tutorials and PDF documents.
Bugs/Requests¶
Please use the GitHub issue tracker to submit bugs or request features.