| py.test/pylib 1.3.1: new py.test.xfail, --maxfail, better reporting |
| =========================================================================== |
| |
| The pylib/py.test 1.3.1 release brings: |
| |
| - the new imperative ``py.test.xfail()`` helper in order to have a test or |
| setup function result in an "expected failure" |
| - a new option ``--maxfail=NUM`` to stop the test run after some failures |
| - markers/decorators are now applicable to test classes (>=Python2.6) |
| - improved reporting, shorter tracebacks in several cases |
| - some simplified internals, more compatibility with Jython and PyPy |
| - bug fixes and various refinements |
| |
| See the below CHANGELOG entry below for more details and |
| http://pylib.org/install.html for installation instructions. |
| |
| If you used older versions of py.test you should be able to upgrade |
| to 1.3.1 without changes to your test source code. |
| |
| py.test is an automated testing tool working with Python2, |
| Python3, Jython and PyPy versions on all major operating systems. It |
| offers a no-boilerplate testing approach and has inspired other testing |
| tools and enhancements in the standard Python library for more than five |
| years. It has a simple and extensive plugin architecture, configurable |
| reporting and provides unique ways to make it fit to your testing |
| process and needs. |
| |
| See http://pytest.org for more info. |
| |
| cheers and have fun, |
| |
| holger krekel |
| |
| Changes between 1.3.0 and 1.3.1 |
| ================================================== |
| |
| New features |
| ++++++++++++++++++ |
| |
| - issue91: introduce new py.test.xfail(reason) helper |
| to imperatively mark a test as expected to fail. Can |
| be used from within setup and test functions. This is |
| useful especially for parametrized tests when certain |
| configurations are expected-to-fail. In this case the |
| declarative approach with the @py.test.mark.xfail cannot |
| be used as it would mark all configurations as xfail. |
| |
| - issue102: introduce new --maxfail=NUM option to stop |
| test runs after NUM failures. This is a generalization |
| of the '-x' or '--exitfirst' option which is now equivalent |
| to '--maxfail=1'. Both '-x' and '--maxfail' will |
| now also print a line near the end indicating the Interruption. |
| |
| - issue89: allow py.test.mark decorators to be used on classes |
| (class decorators were introduced with python2.6) and |
| also allow to have multiple markers applied at class/module level |
| by specifying a list. |
| |
| - improve and refine letter reporting in the progress bar: |
| . pass |
| f failed test |
| s skipped tests (reminder: use for dependency/platform mismatch only) |
| x xfailed test (test that was expected to fail) |
| X xpassed test (test that was expected to fail but passed) |
| |
| You can use any combination of 'fsxX' with the '-r' extended |
| reporting option. The xfail/xpass results will show up as |
| skipped tests in the junitxml output - which also fixes |
| issue99. |
| |
| - make py.test.cmdline.main() return the exitstatus instead of raising |
| SystemExit and also allow it to be called multiple times. This of |
| course requires that your application and tests are properly teared |
| down and don't have global state. |
| |
| Fixes / Maintenance |
| ++++++++++++++++++++++ |
| |
| - improved traceback presentation: |
| - improved and unified reporting for "--tb=short" option |
| - Errors during test module imports are much shorter, (using --tb=short style) |
| - raises shows shorter more relevant tracebacks |
| - --fulltrace now more systematically makes traces longer / inhibits cutting |
| |
| - improve support for raises and other dynamically compiled code by |
| manipulating python's linecache.cache instead of the previous |
| rather hacky way of creating custom code objects. This makes |
| it seemlessly work on Jython and PyPy where it previously didn't. |
| |
| - fix issue96: make capturing more resilient against Control-C |
| interruptions (involved somewhat substantial refactoring |
| to the underlying capturing functionality to avoid race |
| conditions). |
| |
| - fix chaining of conditional skipif/xfail decorators - so it works now |
| as expected to use multiple @py.test.mark.skipif(condition) decorators, |
| including specific reporting which of the conditions lead to skipping. |
| |
| - fix issue95: late-import zlib so that it's not required |
| for general py.test startup. |
| |
| - fix issue94: make reporting more robust against bogus source code |
| (and internally be more careful when presenting unexpected byte sequences) |
| |