| py.test/pylib 1.2.0: junitxml, standalone test scripts, pluginization |
| -------------------------------------------------------------------------------- |
| |
| py.test is an advanced automated testing tool working with |
| Python2, Python3 and Jython versions on all major operating |
| systems. It has a simple plugin architecture and can run many |
| existing common Python test suites without modification. It offers |
| some unique features not found in other testing tools. |
| See http://pytest.org for more info. |
| |
| py.test 1.2.0 brings many bug fixes and interesting new abilities: |
| |
| * --junitxml=path will create an XML file for use with CI processing |
| * --genscript=path creates a standalone py.test-equivalent test-script |
| * --ignore=path prevents collection of anything below that path |
| * --confcutdir=path only lookup conftest.py test configs below that path |
| * a 'pytest_report_header' hook to add info to the terminal report header |
| * a 'pytestconfig' function argument gives direct access to option values |
| * 'pytest_generate_tests' can now be put into a class as well |
| * on CPython py.test additionally installs as "py.test-VERSION", on |
| Jython as py.test-jython and on PyPy as py.test-pypy-XYZ |
| |
| Apart from many bug fixes 1.2.0 also has better pluginization: |
| Distributed testing and looponfailing testing now live in the |
| separately installable 'pytest-xdist' plugin. The same is true for |
| 'pytest-figleaf' for doing coverage reporting. Those two plugins |
| can serve well now as blue prints for doing your own. |
| |
| thanks to all who helped and gave feedback, |
| have fun, |
| |
| holger krekel, January 2010 |
| |
| Changes between 1.2.0 and 1.1.1 |
| ===================================== |
| |
| - moved dist/looponfailing from py.test core into a new |
| separately released pytest-xdist plugin. |
| |
| - new junitxml plugin: --junitxml=path will generate a junit style xml file |
| which is processable e.g. by the Hudson CI system. |
| |
| - new option: --genscript=path will generate a standalone py.test script |
| which will not need any libraries installed. thanks to Ralf Schmitt. |
| |
| - new option: --ignore will prevent specified path from collection. |
| Can be specified multiple times. |
| |
| - new option: --confcutdir=dir will make py.test only consider conftest |
| files that are relative to the specified dir. |
| |
| - new funcarg: "pytestconfig" is the pytest config object for access |
| to command line args and can now be easily used in a test. |
| |
| - install 'py.test' and `py.which` with a ``-$VERSION`` suffix to |
| disambiguate between Python3, python2.X, Jython and PyPy installed versions. |
| |
| - new "pytestconfig" funcarg allows access to test config object |
| |
| - new "pytest_report_header" hook can return additional lines |
| to be displayed at the header of a test run. |
| |
| - (experimental) allow "py.test path::name1::name2::..." for pointing |
| to a test within a test collection directly. This might eventually |
| evolve as a full substitute to "-k" specifications. |
| |
| - streamlined plugin loading: order is now as documented in |
| customize.html: setuptools, ENV, commandline, conftest. |
| also setuptools entry point names are turned to canonical namees ("pytest_*") |
| |
| - automatically skip tests that need 'capfd' but have no os.dup |
| |
| - allow pytest_generate_tests to be defined in classes as well |
| |
| - deprecate usage of 'disabled' attribute in favour of pytestmark |
| - deprecate definition of Directory, Module, Class and Function nodes |
| in conftest.py files. Use pytest collect hooks instead. |
| |
| - collection/item node specific runtest/collect hooks are only called exactly |
| on matching conftest.py files, i.e. ones which are exactly below |
| the filesystem path of an item |
| |
| - change: the first pytest_collect_directory hook to return something |
| will now prevent further hooks to be called. |
| |
| - change: figleaf plugin now requires --figleaf to run. Also |
| change its long command line options to be a bit shorter (see py.test -h). |
| |
| - change: pytest doctest plugin is now enabled by default and has a |
| new option --doctest-glob to set a pattern for file matches. |
| |
| - change: remove internal py._* helper vars, only keep py._pydir |
| |
| - robustify capturing to survive if custom pytest_runtest_setup |
| code failed and prevented the capturing setup code from running. |
| |
| - make py.test.* helpers provided by default plugins visible early - |
| works transparently both for pydoc and for interactive sessions |
| which will regularly see e.g. py.test.mark and py.test.importorskip. |
| |
| - simplify internal plugin manager machinery |
| - simplify internal collection tree by introducing a RootCollector node |
| |
| - fix assert reinterpreation that sees a call containing "keyword=..." |
| |
| - fix issue66: invoke pytest_sessionstart and pytest_sessionfinish |
| hooks on slaves during dist-testing, report module/session teardown |
| hooks correctly. |
| |
| - fix issue65: properly handle dist-testing if no |
| execnet/py lib installed remotely. |
| |
| - skip some install-tests if no execnet is available |
| |
| - fix docs, fix internal bin/ script generation |
| |