Go to file
Daniel Hahler be84ba8a33
Merge pull request #5396 from blueyed/travis-py37-nocov
Revert "Enable coverage for 'py37' environment"
2019-06-05 12:40:46 +02:00
.github Small change to test if pushing directly to master is disabled 2019-05-24 12:11:15 -03:00
bench pre-commit run reorder-python-imports --all-files 2019-06-03 12:08:01 -03:00
changelog Merge pull request #5393 from nicoddemus/unittest-self-5390 2019-06-04 17:48:48 -07:00
doc/en Clean up u' prefixes and py2 bytes conversions 2019-06-04 17:50:34 -07:00
extra pre-commit run fix-encoding-pragma --all-files 2019-06-03 12:08:01 -03:00
scripts pre-commit run fix-encoding-pragma --all-files 2019-06-03 12:08:01 -03:00
src Merge pull request #5400 from asottile/prefixes 2019-06-04 19:03:12 -07:00
testing tests: restore tracing function 2019-06-05 11:26:48 +02:00
.coveragerc .coveragerc: use "src" only from current dir 2019-03-22 17:48:14 +01:00
.gitattributes Add codecov support to AppVeyor and remove coveralls 2018-09-05 19:50:06 -03:00
.gitignore Ignore pip-generated 'pip-wheel-metadata' folder [skip ci] 2019-02-08 21:06:33 -02:00
.pre-commit-config.yaml manual changes to .pre-commit-config.yaml 2019-06-03 12:08:01 -03:00
.travis.yml Revert "Enable coverage for 'py37' environment" 2019-06-05 12:12:58 +02:00
AUTHORS Fix `disable_test_id_escaping_and_forfeit_all_rights_to_community_support` option when using a list of test IDs 2019-05-21 09:48:22 +09:00
CHANGELOG.rst Merge pull request #5379 from asottile/release-4.6.2 2019-06-03 12:19:42 -07:00
CITATION Fix linting issues 2018-07-14 16:35:33 +01:00
CONTRIBUTING.rst Update Black URLs 2019-05-04 08:28:50 -07:00
HOWTORELEASE.rst Update release instructions for 4.6-maintenance 2019-06-02 11:50:07 -07:00
LICENSE Update copyright year 2019-01-04 10:37:07 -02:00
README.rst Drop Python 2.7 and 3.4 support 2019-06-02 14:39:11 -03:00
TIDELIFT.rst Add Tidelift management docs and blurb on README, as discussed in the ML 2019-05-09 20:10:30 -03:00
azure-pipelines.yml Drop Python 2.7 and 3.4 support 2019-06-02 14:39:11 -03:00
pyproject.toml Use isolated_build option in tox.ini 2019-02-08 15:50:33 -02:00
setup.cfg Drop Python 2.7 and 3.4 support 2019-06-02 14:39:11 -03:00
setup.py manual: remove dependence on six 2019-06-03 12:08:02 -03:00
tox.ini Drop Python 2.7 and 3.4 support 2019-06-02 14:39:11 -03:00

README.rst

.. image:: https://docs.pytest.org/en/latest/_static/pytest1.png
   :target: https://docs.pytest.org/en/latest/
   :align: center
   :alt: pytest


------

.. image:: https://img.shields.io/pypi/v/pytest.svg
    :target: https://pypi.org/project/pytest/

.. image:: https://img.shields.io/conda/vn/conda-forge/pytest.svg
    :target: https://anaconda.org/conda-forge/pytest

.. image:: https://img.shields.io/pypi/pyversions/pytest.svg
    :target: https://pypi.org/project/pytest/

.. image:: https://codecov.io/gh/pytest-dev/pytest/branch/master/graph/badge.svg
    :target: https://codecov.io/gh/pytest-dev/pytest
    :alt: Code coverage Status

.. image:: https://travis-ci.org/pytest-dev/pytest.svg?branch=master
    :target: https://travis-ci.org/pytest-dev/pytest

.. image:: https://dev.azure.com/pytest-dev/pytest/_apis/build/status/pytest-CI?branchName=master
    :target: https://dev.azure.com/pytest-dev/pytest

.. image:: https://img.shields.io/badge/code%20style-black-000000.svg
    :target: https://github.com/python/black

.. image:: https://www.codetriage.com/pytest-dev/pytest/badges/users.svg
    :target: https://www.codetriage.com/pytest-dev/pytest

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:

.. code-block:: python

    # 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 <https://docs.pytest.org/en/latest/getting-started.html#our-first-test-run>`_ for more examples.


Features
--------

- Detailed info on failing `assert statements <https://docs.pytest.org/en/latest/assert.html>`_ (no need to remember ``self.assert*`` names);

- `Auto-discovery
  <https://docs.pytest.org/en/latest/goodpractices.html#python-test-discovery>`_
  of test modules and functions;

- `Modular fixtures <https://docs.pytest.org/en/latest/fixture.html>`_ for
  managing small or parametrized long-lived test resources;

- Can run `unittest <https://docs.pytest.org/en/latest/unittest.html>`_ (or trial),
  `nose <https://docs.pytest.org/en/latest/nose.html>`_ test suites out of the box;

- Python 3.5+ and PyPy3;

- Rich plugin architecture, with over 315+ `external plugins <http://plugincompat.herokuapp.com>`_ 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 <https://github.com/pytest-dev/pytest/issues>`_ to submit bugs or request features.


Changelog
---------

Consult the `Changelog <https://docs.pytest.org/en/latest/changelog.html>`__ page for fixes and enhancements of each version.


Support pytest
--------------

You can support pytest by obtaining a `Tideflift subscription`_.

Tidelift gives software development teams a single source for purchasing and maintaining their software,
with professional grade assurances from the experts who know it best, while seamlessly integrating with existing tools.


.. _`Tideflift subscription`: https://tidelift.com/subscription/pkg/pypi-pytest?utm_source=pypi-pytest&utm_medium=referral&utm_campaign=readme


Security
^^^^^^^^

pytest has never been associated with a security vunerability, but in any case, to report a
security vulnerability please use the `Tidelift security contact <https://tidelift.com/security>`_.
Tidelift will coordinate the fix and disclosure.


License
-------

Copyright Holger Krekel and others, 2004-2019.

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

.. _`MIT`: https://github.com/pytest-dev/pytest/blob/master/LICENSE