# 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-4.x.y, py-1.x.y, pluggy-0.x.y
    cachedir: $PYTHON_PREFIX/.pytest_cache
    rootdir: $REGENDOC_TMPDIR
    collected 1 item

    test_sample.py F                                                     [100%]

    ================================= FAILURES =================================
    _______________________________ test_answer ________________________________

        def test_answer():
    >       assert inc(3) == 5
    E       assert 4 == 5
    E        +  where 4 = inc(3)

    test_sample.py:6: 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;
- Python 2.7, Python 3.4+, PyPy 2.3, Jython 2.5 (untested);
- Rich plugin architecture, with over 315+ 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.

## Changelog

Consult the Changelog page for fixes and enhancements of each version.

## License

Copyright Holger Krekel and others, 2004-2020.

Distributed under the terms of the MIT license, pytest is free and open source software.