pytest / doc / index.txt

Welcome to pytest!
=============================================

- **a mature full-featured testing tool**

 - runs on Posix/Windows, Python 2.4-3.2, PyPy and Jython-2.5.1
 - :ref:`comprehensive online <toc>` and `PDF documentation <pytest.pdf>`_
 - continuously `tested on many Python interpreters <http://hudson.testrun.org/view/pytest/job/pytest/>`_
 - used in :ref:`many projects and organisations <projects>`, in test
   suites ranging from 10 to 10s of thousands of tests
 - comes with many :ref:`tested examples <examples>`
 - supports :ref:`good integration practises <goodpractises>`

- **provides no-boilerplate testing**

 - makes it :ref:`easy to get started <getstarted>`,
 - refined :ref:`usage options <usage>`
 - :ref:`assert with the assert statement`
 - helpful :ref:`traceback and failing assertion reporting <tbreportdemo>`
 - allows :ref:`print debugging <printdebugging>` and :ref:`the
   capturing of standard output during test execution <captures>`
 - supports :pep:`8` compliant coding styles in tests

- **supports functional testing and complex test setups**

 - (new in 2.2) :ref:`durations`
 - (much improved in 2.2) :ref:`marking and test selection <mark>`
 - (improved in 2.2) :ref:`parametrized test functions <parametrized test functions>`
 - advanced :ref:`skip and xfail`
 - unique :ref:`dependency injection through funcargs <funcargs>`
 - can :ref:`distribute tests to multiple CPUs <xdistcpu>` through :ref:`xdist plugin <xdist>`
 - can :ref:`continuously re-run failing tests <looponfailing>`
 - many :ref:`builtin helpers <pytest helpers>`
 - flexible :ref:`Python test discovery`

- **integrates many common testing methods**

 - can integrate ``nose``, ``unittest.py`` and ``doctest.py`` style
   tests, including running testcases made for Django and trial
 - supports extended :ref:`xUnit style setup <xunitsetup>`
 - supports domain-specific :ref:`non-python tests`
 - supports the generation of testing coverage reports
 - `Javascript unit- and functional testing`_

- **extensive plugin and customization system**

 - all collection, reporting, running aspects are delegated to hook functions
 - customizations can be per-directory, per-project or per PyPI released plugins
 - it is easy to add command line options or do other kind of add-ons and customizations.

.. _`Javascript unit- and functional testing`: http://pypi.python.org/pypi/oejskit

.. _`easy`: http://bruynooghe.blogspot.com/2009/12/skipping-slow-test-by-default-in-pytest.html
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.