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