Skip to content
The pytest framework makes it easy to write small tests, yet scales to support complex functional testing
Python
Branch: master
Clone or download
Latest commit 2b13a9b Feb 19, 2020
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
.github Switch to new git workflow Feb 12, 2020
bench Add rudimentary mypy type checking Jul 9, 2019
changelog LFPlugin: use sub-plugins to deselect during collection (#6448) Feb 19, 2020
doc/en #6289: Add new example to XFAIL documentation (#6685) Feb 19, 2020
extra Revert allow_abbrev=False in helper scripts Jun 25, 2019
scripts Revert "ci: codecov: use `--retry-connrefused` with curl" Jan 30, 2020
src Use TYPE_CHECKING (#6771) Feb 19, 2020
testing Use TYPE_CHECKING (#6771) Feb 19, 2020
.coveragerc Ignore "assert False" statements in coverage Feb 15, 2020
.gitattributes Add codecov support to AppVeyor and remove coveralls Sep 5, 2018
.gitignore docs: move changelog to docs/en and allow sphinx directives Nov 29, 2019
.pre-commit-config.yaml Merge branch 'features' into master Feb 12, 2020
.travis.yml Switch to new git workflow Feb 12, 2020
AUTHORS #6289: Add new example to XFAIL documentation (#6685) Feb 19, 2020
CHANGELOG.rst docs: move changelog to docs/en and allow sphinx directives Nov 29, 2019
CITATION Fix linting issues Jul 14, 2018
CODE_OF_CONDUCT.md Add a code of conduct Aug 8, 2019
CONTRIBUTING.rst Switch to new git workflow Feb 12, 2020
LICENSE Update copyright year to 2020 Jan 4, 2020
OPENCOLLECTIVE.rst doc: fix typos in OPENCOLLECTIVE.rst [ci skip] Jul 10, 2019
README.rst Fix grammar in README Jan 9, 2020
RELEASING.rst Switch to new git workflow Feb 12, 2020
TIDELIFT.rst Add docs about Tidelift and OpenCollective Jun 30, 2019
codecov.yml ci: codecov: only use "comment: off" Jan 25, 2020
pyproject.toml Replace 'removal' by 'breaking' changelog category Dec 6, 2019
setup.cfg mypy: show_error_codes=True Jan 27, 2020
setup.py tox: add mypy toxenv Jan 14, 2020
tox.ini Use code highlighting if pygments is installed (#6658) Feb 12, 2020

README.rst

pytest
Code coverage Status https://travis-ci.org/pytest-dev/pytest.svg?branch=master https://dev.azure.com/pytest-dev/pytest/_apis/build/status/pytest-CI?branchName=master

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.

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 (or trial), nose test suites out of the box;
  • Python 3.5+ and PyPy3;
  • Rich plugin architecture, with over 315+ external plugins and thriving community;

Documentation

For full documentation, including installation, tutorials and PDF documents, please see https://docs.pytest.org/en/latest/.

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.

Support pytest

Open Collective is an online funding platform for open and transparent communities. It provides tools to raise money and share your finances in full transparency.

It is the platform of choice for individuals and companies that want to make one-time or monthly donations directly to the project.

See more details in the pytest collective.

pytest for enterprise

Available as part of the Tidelift Subscription.

The maintainers of pytest and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use.

Learn more.

Security

pytest has never been associated with a security vulnerability, but in any case, to report a security vulnerability please use the Tidelift security contact. Tidelift will coordinate the fix and disclosure.

License

Copyright Holger Krekel and others, 2004-2020.

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

You can’t perform that action at this time.