Go to file
Ronny Pfannschmidt 71ab6b8b05 Merge pull request #1295 from nicoddemus/monkeypatch-perf
Make monkeypatch calls O(1)
2015-12-30 22:21:16 +01:00
_pytest Make monkeypatch calls O(1) 2015-12-29 22:04:35 -02:00
bench simplify internal pytester machinery 2014-10-06 13:37:57 +02:00
doc/en Updated out of date link 2015-12-27 02:35:02 +01:00
extra another update for get_issues.py to account for repository move 2015-02-27 09:12:00 -05:00
testing Make monkeypatch differentiate ImportError sources 2015-12-27 22:44:23 +01:00
.coveragerc Ignore vendored_packages folder for coverage purposes 2015-09-14 10:30:58 -03:00
.gitattributes Use "union" merge strategy for CHANGELOG 2015-08-10 19:27:22 -03:00
.gitignore revert setuptools_scm addition introduced with f22d14b105 2015-09-17 12:58:04 +02:00
.travis.yml Update travis with new tox environments 2015-09-26 03:43:37 -03:00
AUTHORS * Moved workaround to its own function, mostly for the sake of adding 2015-12-24 16:43:34 -05:00
CHANGELOG Make monkeypatch calls O(1) 2015-12-29 22:04:35 -02:00
CONTRIBUTING.rst Update CONTRIBUTING.rst 2015-10-24 02:21:22 -07:00
HOWTORELEASE.rst Remove plugins_index generation from HOWTORELEASE 2015-12-11 22:35:44 -02:00
ISSUES.txt Fix spelling: explicitely --> explicitly 2015-12-01 01:41:47 -08:00
LICENSE * use the MIT license for the py lib 2009-10-03 01:11:04 +02:00
MANIFEST.in adopt review comment of #1186 2015-12-06 10:24:24 +01:00
README.rst Small typo on README 2015-12-28 18:56:14 -02:00
appveyor.yml Optimize appveyor build 2015-12-11 00:20:20 -02:00
plugin-test.sh add pluginmanager.do_configure(config) as a link to 2013-10-04 11:36:45 +02:00
pytest.py revert setuptools_scm addition introduced with f22d14b105 2015-09-17 12:58:04 +02:00
requirements-docs.txt use regendoc normalization and regenerate docs 2015-06-06 23:30:49 +02:00
runtox.py make runtox.py not import external modules unless run as a script 2014-04-05 08:51:00 +02:00
setup.cfg configure a plain "devpi upload" to create sdist and universal wheel 2015-07-09 14:56:56 +02:00
setup.py Merge pull request #1019 from mdboom/python3.5-docs 2015-09-17 13:45:35 +02:00
tox.ini Use py35 as preferred py3 interpreter for special test environments 2015-09-26 03:37:21 -03:00

README.rst

.. image:: doc/en/img/pytest1.png
   :target: http://pytest.org
   :align: center
   :alt: pytest

------

.. image:: https://img.shields.io/pypi/v/pytest.svg
   :target: https://pypi.python.org/pypi/pytest
.. image:: https://img.shields.io/pypi/pyversions/pytest.svg
  :target: https://pypi.python.org/pypi/pytest
.. image:: https://img.shields.io/coveralls/pytest-dev/pytest/master.svg
   :target: https://coveralls.io/r/pytest-dev/pytest
.. image:: https://travis-ci.org/pytest-dev/pytest.svg?branch=master
    :target: https://travis-ci.org/pytest-dev/pytest
.. image:: https://ci.appveyor.com/api/projects/status/mrgbjaua7t33pg6b?svg=true
    :target: https://ci.appveyor.com/project/pytestbot/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 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.
        

Features
--------

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

- `Auto-discovery
  <http://pytest.org/latest/goodpractises.html#python-test-discovery>`_
  of test modules and functions;

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

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

- Python2.6+, Python3.2+, PyPy-2.3, Jython-2.5 (untested);

- Rich plugin architecture, with over 150+ `external plugins <http://pytest.org/latest/plugins.html#installing-external-plugins-searching>`_ and thriving comminity;


Documentation
-------------

For full documentation, including installation, tutorials and PDF documents, please see http://pytest.org.


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 <http://pytest.org/latest/changelog.html>`_ page for fixes and enhancements of each version.


License
-------

Copyright Holger Krekel and others, 2004-2015.
Licensed under the MIT license.