2016-08-23 10:35:41 +08:00
|
|
|
:orphan:
|
2010-11-02 07:53:53 +08:00
|
|
|
|
2012-10-12 20:52:36 +08:00
|
|
|
.. _features:
|
2010-11-02 07:53:53 +08:00
|
|
|
|
2012-10-28 18:25:53 +08:00
|
|
|
pytest: helps you write better programs
|
2016-08-23 10:35:41 +08:00
|
|
|
=======================================
|
|
|
|
|
|
|
|
|
|
|
|
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
|
2016-11-28 00:45:52 +08:00
|
|
|
def inc(x):
|
2016-08-23 10:35:41 +08:00
|
|
|
return x + 1
|
|
|
|
|
|
|
|
def test_answer():
|
2016-11-28 00:45:52 +08:00
|
|
|
assert inc(3) == 5
|
2016-08-23 10:35:41 +08:00
|
|
|
|
|
|
|
|
|
|
|
To execute it::
|
|
|
|
|
|
|
|
$ pytest
|
2017-11-23 23:33:41 +08:00
|
|
|
=========================== test session starts ============================
|
2017-05-13 04:17:40 +08:00
|
|
|
platform linux -- Python 3.x.y, pytest-3.x.y, py-1.x.y, pluggy-0.x.y
|
2017-03-14 06:41:20 +08:00
|
|
|
rootdir: $REGENDOC_TMPDIR, inifile:
|
2017-07-04 07:29:13 +08:00
|
|
|
collected 1 item
|
2017-11-23 23:33:41 +08:00
|
|
|
|
|
|
|
test_sample.py F [100%]
|
|
|
|
|
|
|
|
================================= FAILURES =================================
|
|
|
|
_______________________________ test_answer ________________________________
|
|
|
|
|
2016-08-23 10:35:41 +08:00
|
|
|
def test_answer():
|
2016-11-28 00:45:52 +08:00
|
|
|
> assert inc(3) == 5
|
2016-08-23 10:35:41 +08:00
|
|
|
E assert 4 == 5
|
2016-11-28 00:45:52 +08:00
|
|
|
E + where 4 = inc(3)
|
2017-11-23 23:33:41 +08:00
|
|
|
|
2016-08-23 10:35:41 +08:00
|
|
|
test_sample.py:5: AssertionError
|
2017-11-23 23:33:41 +08:00
|
|
|
========================= 1 failed in 0.12 seconds =========================
|
2016-08-23 10:35:41 +08:00
|
|
|
|
|
|
|
Due to ``pytest``'s detailed assertion introspection, only plain ``assert`` statements are used.
|
|
|
|
See :ref:`Getting Started <getstarted>` for more examples.
|
|
|
|
|
|
|
|
|
|
|
|
Features
|
|
|
|
--------
|
|
|
|
|
|
|
|
- Detailed info on failing :ref:`assert statements <assert>` (no need to remember ``self.assert*`` names);
|
|
|
|
|
|
|
|
- :ref:`Auto-discovery <test discovery>` of test modules and functions;
|
|
|
|
|
|
|
|
- :ref:`Modular fixtures <fixture>` for managing small or parametrized long-lived test resources;
|
|
|
|
|
|
|
|
- Can run :ref:`unittest <unittest>` (including trial) and :ref:`nose <noseintegration>` test suites out of the box;
|
|
|
|
|
2017-10-10 13:54:56 +08:00
|
|
|
- Python 2.7, Python 3.4+, PyPy 2.3, Jython 2.5 (untested);
|
2016-08-23 10:35:41 +08:00
|
|
|
|
2017-08-16 10:05:23 +08:00
|
|
|
- Rich plugin architecture, with over 315+ `external plugins <http://plugincompat.herokuapp.com>`_ and thriving community;
|
2016-08-23 10:35:41 +08:00
|
|
|
|
|
|
|
|
|
|
|
Documentation
|
|
|
|
-------------
|
|
|
|
|
|
|
|
Please see :ref:`Contents <toc>` for full documentation, including installation, tutorials and PDF documents.
|
|
|
|
|
|
|
|
|
|
|
|
Bugs/Requests
|
|
|
|
-------------
|
|
|
|
|
|
|
|
Please use the `GitHub issue tracker <https://github.com/pytest-dev/pytest/issues>`_ to submit bugs or request features.
|
|
|
|
|
|
|
|
|
|
|
|
Changelog
|
|
|
|
---------
|
|
|
|
|
|
|
|
Consult the :ref:`Changelog <changelog>` page for fixes and enhancements of each version.
|
|
|
|
|
|
|
|
|
|
|
|
License
|
|
|
|
-------
|
|
|
|
|
2017-06-13 20:59:11 +08:00
|
|
|
Copyright Holger Krekel and others, 2004-2017.
|
2016-08-23 10:35:41 +08:00
|
|
|
|
|
|
|
Distributed under the terms of the `MIT`_ license, pytest is free and open source software.
|
|
|
|
|
2017-06-13 20:59:11 +08:00
|
|
|
.. _`MIT`: https://github.com/pytest-dev/pytest/blob/master/LICENSE
|