61 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			ReStructuredText
		
	
	
	
 | 
						|
.. _features:
 | 
						|
 | 
						|
pytest: helps you write better programs
 | 
						|
=============================================
 | 
						|
 | 
						|
**a mature full-featured Python testing tool**
 | 
						|
 | 
						|
 - runs on Posix/Windows, Python 2.6-3.4, PyPy and (possibly still) Jython-2.5.1
 | 
						|
 - **well tested** with more than a thousand tests against itself
 | 
						|
 - **strict backward compatibility policy** for safe pytest upgrades
 | 
						|
 - :ref:`comprehensive online <toc>` and `PDF documentation <pytest.pdf>`_
 | 
						|
 - many :ref:`third party plugins <extplugins>` and :ref:`builtin helpers <pytest helpers>`,
 | 
						|
 - used in :ref:`many small and large projects and organisations <projects>`
 | 
						|
 - comes with many :ref:`tested examples <examples>`
 | 
						|
 | 
						|
**provides easy no-boilerplate testing**
 | 
						|
 | 
						|
 - makes it :ref:`easy to get started <getstarted>`,
 | 
						|
   has many :ref:`usage options <usage>`
 | 
						|
 - :ref:`assert with the assert statement`
 | 
						|
 - helpful :ref:`traceback and failing assertion reporting <tbreportdemo>`
 | 
						|
 - :ref:`print debugging <printdebugging>` and :ref:`the
 | 
						|
   capturing of standard output during test execution <captures>`
 | 
						|
 | 
						|
**scales from simple unit to complex functional testing**
 | 
						|
 | 
						|
 - :ref:`modular parametrizeable fixtures <fixture>` (new in 2.3,
 | 
						|
   continuously improved)
 | 
						|
 - :ref:`parametrized test functions <parametrized test functions>`
 | 
						|
 - :ref:`mark`
 | 
						|
 - :ref:`skipping` (improved in 2.4)
 | 
						|
 - :ref:`distribute tests to multiple CPUs <xdistcpu>` through :ref:`xdist plugin <xdist>`
 | 
						|
 - :ref:`continuously re-run failing tests <looponfailing>`
 | 
						|
 - :doc:`cache`
 | 
						|
 - flexible :ref:`Python test discovery`
 | 
						|
 | 
						|
**integrates with other testing methods and tools**:
 | 
						|
 | 
						|
 - multi-paradigm: pytest can run ``nose``, ``unittest`` and
 | 
						|
   ``doctest`` style test suites, including running testcases made for
 | 
						|
   Django and trial
 | 
						|
 - supports :ref:`good integration practises <goodpractises>`
 | 
						|
 - supports extended :ref:`xUnit style setup <xunitsetup>`
 | 
						|
 - supports domain-specific :ref:`non-python tests`
 | 
						|
 - supports generating `test coverage reports
 | 
						|
   <https://pypi.python.org/pypi/pytest-cov>`_
 | 
						|
 - supports :pep:`8` compliant coding styles in tests
 | 
						|
 | 
						|
**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 plugin
 | 
						|
 - it is easy to add command line options or customize existing behaviour
 | 
						|
 - :ref:`easy to write your own plugins <writing-plugins>`
 | 
						|
 | 
						|
 | 
						|
.. _`easy`: http://bruynooghe.blogspot.com/2009/12/skipping-slow-test-by-default-in-pytest.html
 | 
						|
 | 
						|
 |