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) == 5To 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 https://docs.pytest.org/en/latest/.
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-2019.
Distributed under the terms of the MIT license, pytest is free and open source software.