2015-12-26 05:58:00 +08:00
.. image :: doc/en/img/pytest1.png
:target: http://pytest.org
:align: center
:alt: pytest
2015-06-16 05:28:31 +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
2015-06-16 10:03:53 +08:00
:target: https://pypi.python.org/pypi/pytest
2015-12-26 02:28:50 +08:00
.. image :: https://img.shields.io/pypi/pyversions/pytest.svg
:target: https://pypi.python.org/pypi/pytest
2015-12-10 07:01:36 +08:00
.. image :: https://img.shields.io/coveralls/pytest-dev/pytest/master.svg
2015-06-16 06:40:49 +08:00
:target: https://coveralls.io/r/pytest-dev/pytest
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
2015-06-16 09:28:12 +08:00
.. image :: https://ci.appveyor.com/api/projects/status/mrgbjaua7t33pg6b?svg=true
:target: https://ci.appveyor.com/project/pytestbot/pytest
2013-10-02 18:09:19 +08:00
2015-12-26 05:58:00 +08:00
The `` pytest `` framework makes it easy to write small tests, yet
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
def func(x):
return x + 1
def test_answer():
assert func(3) == 5
To execute it::
$ py.test
======= test session starts ========
platform linux -- Python 3.4.3, pytest-2.8.5, py-1.4.31, pluggy-0.3.1
collected 1 items
test_sample.py F
======= FAILURES ========
_______ test_answer ________
def test_answer():
> assert func(3) == 5
E assert 4 == 5
E + where 4 = func(3)
test_sample.py:5: AssertionError
======= 1 failed in 0.12 seconds ========
Due to `` py.test `` 's detailed assertion introspection, only plain `` assert `` statements are used. See `getting-started <http://pytest.org/latest/getting-started.html#our-first-test-run> `_ for more examples.
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
2015-12-26 05:58:00 +08:00
- Detailed info on failing `assert statements <http://pytest.org/latest/assert.html> `_ (no need to remember `` self.assert* `` names);
- `Auto-discovery
2012-11-20 21:24:26 +08:00
<http://pytest.org/latest/goodpractises.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
2015-12-26 05:58:00 +08:00
- `Modular fixtures <http://pytest.org/latest/fixture.html> `_ for
managing small or parametrized long-lived test resources;
2012-11-20 21:24:26 +08:00
2015-12-26 05:58:00 +08:00
- Can run `unittest <http://pytest.org/latest/unittest.html> `_ (or trial),
`nose <http://pytest.org/latest/nose.html> `_ test suites out of the box;
2012-11-20 21:24:26 +08:00
2015-12-26 05:58:00 +08:00
- Python2.6+, Python3.2+, PyPy-2.3, Jython-2.5 (untested);
2015-06-16 05:28:31 +08:00
2015-12-26 05:58:00 +08:00
- Rich plugin architecture, with over 150+ `external plugins <http://pytest.org/latest/plugins.html#installing-external-plugins-searching> `_ and thriving comminity;
Documentation
-------------
2012-11-20 21:24:26 +08:00
2015-12-26 05:58:00 +08:00
For full documentation, including installation, tutorials and PDF documents, please see http://pytest.org.
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
2015-12-29 04:56:14 +08:00
Consult the `Changelog <http://pytest.org/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
2015-12-26 05:58:00 +08:00
Copyright Holger Krekel and others, 2004-2015.
2013-08-01 15:31:34 +08:00
Licensed under the MIT license.