2018-08-29 05:27:11 +08:00
.. image :: https://docs.pytest.org/en/latest/_static/pytest1.png
:target: https://docs.pytest.org/en/latest/
2015-12-26 05:58:00 +08:00
:align: center
:alt: pytest
2015-06-16 05:28:31 +08:00
2018-07-07 07:57:30 +08:00
2015-12-26 05:58:00 +08:00
------
2015-06-16 05:28:31 +08:00
2015-12-10 07:01:36 +08:00
.. image :: https://img.shields.io/pypi/v/pytest.svg
2018-04-26 21:45:48 +08:00
:target: https://pypi.org/project/pytest/
2017-04-28 23:51:40 +08:00
2018-04-27 21:23:28 +08:00
.. image :: https://img.shields.io/conda/vn/conda-forge/pytest.svg
2017-04-28 23:51:40 +08:00
:target: https://anaconda.org/conda-forge/pytest
2015-12-26 02:28:50 +08:00
.. image :: https://img.shields.io/pypi/pyversions/pytest.svg
2018-04-26 21:45:48 +08:00
:target: https://pypi.org/project/pytest/
2017-04-28 23:51:40 +08:00
2018-09-06 06:59:19 +08:00
.. 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
2017-04-28 23:51:40 +08:00
2015-06-16 06:16:59 +08:00
.. image :: https://travis-ci.org/pytest-dev/pytest.svg?branch=master
:target: https://travis-ci.org/pytest-dev/pytest
2017-04-28 23:51:40 +08:00
2019-02-27 06:01:59 +08:00
.. image :: https://dev.azure.com/pytest-dev/pytest/_apis/build/status/pytest-CI?branchName=master
:target: https://dev.azure.com/pytest-dev/pytest
2018-05-26 05:23:59 +08:00
.. image :: https://img.shields.io/badge/code%20style-black-000000.svg
2019-05-04 23:28:50 +08:00
:target: https://github.com/python/black
2018-05-26 05:23:59 +08:00
2018-02-21 00:51:51 +08:00
.. image :: https://www.codetriage.com/pytest-dev/pytest/badges/users.svg
:target: https://www.codetriage.com/pytest-dev/pytest
2018-02-22 07:42:09 +08:00
2015-12-26 05:58:00 +08:00
The `` pytest `` framework makes it easy to write small tests, yet
2016-06-28 00:19:00 +08:00
scales to support complex functional testing for applications and libraries.
2013-10-24 21:08:50 +08:00
2015-12-26 05:58:00 +08:00
An example of a simple test:
2013-10-02 18:09:19 +08:00
2015-12-26 05:58:00 +08:00
.. code-block :: python
# content of test_sample.py
2016-11-28 00:45:52 +08:00
def inc(x):
2015-12-26 05:58:00 +08:00
return x + 1
2018-06-03 11:29:28 +08:00
2015-12-26 05:58:00 +08:00
def test_answer():
2016-11-28 00:45:52 +08:00
assert inc(3) == 5
2015-12-26 05:58:00 +08:00
To execute it::
2016-06-21 22:16:57 +08:00
$ pytest
2017-04-28 23:51:40 +08:00
============================= test session starts =============================
2015-12-26 05:58:00 +08:00
collected 1 items
test_sample.py F
2016-11-28 00:45:52 +08:00
================================== FAILURES ===================================
_________________________________ test_answer _________________________________
2015-12-26 05:58:00 +08:00
def test_answer():
2016-11-28 00:45:52 +08:00
> assert inc(3) == 5
2015-12-26 05:58:00 +08:00
E assert 4 == 5
2016-11-28 00:45:52 +08:00
E + where 4 = inc(3)
2015-12-26 05:58:00 +08:00
test_sample.py:5: AssertionError
2016-11-28 00:45:52 +08:00
========================== 1 failed in 0.04 seconds ===========================
2015-12-26 05:58:00 +08:00
2016-08-07 04:58:17 +08:00
2018-08-29 05:34:22 +08:00
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.
2016-06-28 00:19:00 +08:00
2013-10-24 21:08:50 +08:00
2015-06-16 05:28:31 +08:00
Features
--------
2008-08-18 23:08:39 +08:00
2018-08-29 05:34:22 +08:00
- Detailed info on failing `assert statements <https://docs.pytest.org/en/latest/assert.html> `_ (no need to remember `` self.assert* `` names);
2015-12-26 05:58:00 +08:00
- `Auto-discovery
2018-08-29 05:34:22 +08:00
<https://docs.pytest.org/en/latest/goodpractices.html#python-test-discovery>`_
2015-12-26 05:58:00 +08:00
of test modules and functions;
2014-09-09 17:22:39 +08:00
2018-08-29 05:34:22 +08:00
- `Modular fixtures <https://docs.pytest.org/en/latest/fixture.html> `_ for
2015-12-26 05:58:00 +08:00
managing small or parametrized long-lived test resources;
2012-11-20 21:24:26 +08:00
2018-08-29 05:34:22 +08:00
- 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;
2012-11-20 21:24:26 +08:00
2017-10-10 13:54:56 +08:00
- Python 2.7, Python 3.4+, PyPy 2.3, Jython 2.5 (untested);
2015-06-16 05:28:31 +08:00
2017-08-11 08:15:22 +08:00
- Rich plugin architecture, with over 315+ `external plugins <http://plugincompat.herokuapp.com> `_ and thriving community;
2015-12-26 05:58:00 +08:00
Documentation
-------------
2012-11-20 21:24:26 +08:00
2018-08-29 05:34:22 +08:00
For full documentation, including installation, tutorials and PDF documents, please see https://docs.pytest.org/en/latest/.
2012-11-20 21:24:26 +08:00
2015-12-26 05:58:00 +08:00
Bugs/Requests
-------------
2012-11-20 21:24:26 +08:00
2015-12-29 04:55:20 +08:00
Please use the `GitHub issue tracker <https://github.com/pytest-dev/pytest/issues> `_ to submit bugs or request features.
2012-11-20 21:24:26 +08:00
2015-12-26 05:58:00 +08:00
Changelog
---------
2012-11-20 21:24:26 +08:00
2018-08-29 05:34:22 +08:00
Consult the `Changelog <https://docs.pytest.org/en/latest/changelog.html> `__ page for fixes and enhancements of each version.
2013-07-24 18:14:53 +08:00
2015-12-26 05:58:00 +08:00
License
-------
2013-07-24 18:14:53 +08:00
2019-01-04 20:37:07 +08:00
Copyright Holger Krekel and others, 2004-2019.
2016-02-17 03:26:30 +08:00
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