What's new ========== 0.11 is a major release of nose, featuring several new or improved plugins, completely revised documentation, some small, mostly backwards-compatible changes in behavior, and numerous bug fixes. New plugins ----------- * :doc:`Multiprocess ` The multiprocess plugin enables splitting test runs across multiple processes. For some test suites, this can shorten run time tremendously. See also: :doc:`doc_tests/test_multiprocess/multiprocess`. * :doc:`Log capture ` The log capture plugin does for logging what the :doc:`capture ` plugin does for stdout. All :mod:`logging` messages produced during a failing test are appended to the error output printed at the end of the test run. * :doc:`Xunit ` The Xunit plugin produces a test result file in ant/junit xml format, suitable for use with `Hudson`_ and other continuous integration systems that consume this format. * :doc:`Collect only ` The collect only plugin just collects all of your tests, it doesn't run them. Fixtures are also skipped, so collection should be quick. * :doc:`Collect tests from all modules ` This plugin enables collecting tests from all python modules, not just those that match testMatch. .. _`Hudson` : https://hudson.dev.java.net/ Plugin improvements ------------------- * Doctest fixtures The :doc:`doctest plugin ` now supports using fixtures with doctest files. You can specify a module prefix (eg, "_fixture") and if a module exists with that prefix appended to the name of the doctest file (eg, "test_pillow_fixture.py" for the doctest file "test_pillow.txt"), then fixtures for the doctest will be extracted from the module. See :doc:`doc_tests/test_doctest_fixtures/doctest_fixtures` for more. * Looping over failed tests The :doc:`testid plugin ` has been much improved. It is possible now to leave it on all the time: the recorded test id list will be refreshed appropriately if you pass non-id test names. Leaving testid on is recommended if you want to use the new :option:`--failed` option. This option will direct nose to replay the last set of failed tests, if any. It's very convenient for handling regressions, as it enables you to easily re-run just the tests you want to. * HTML coverage reports The :doc:`coverage plugin ` can now produce html coverage reports. Use the :option:`--cover-html` commandline option to activate html reports. Changes ------- * **All new documentation!** nose's documentation is now generated by Sphinx. And thanks to Pam Zerbinos, it is much better organized and easier to use and read. * Two new core commandline options can help with testing namespace packages. :option:`--first-package-wins` is useful when you want to test one part of a namespace package that uses another part; in previous versions of nose, the other part of the namespace package would be evicted from sys.modules when the 2nd loaded. :option:`--traverse-namespace` is useful if you want nose to discover tests across entries in a package's __path__. (This was formerly the default behavior). * To make it easier to use custom plugins without needing setuptools, :func:`nose.core.main` and :func:`nose.core.run` now support an :doc:`addplugins ` keyword argument that takes a list of additional plugins to make available. **Note** that adding a plugin to this list **does not** activate or enable the plugin, only makes it available to be enabled via command-line or config file settings. * Thanks to Kevin Mitchell, nose is now more compatible with IronPython. IronPython is still not fully supported, but it should work. If you'd like to improve nose's support for IronPython further, please join the `nose developer's list`_ and volunteer to become the IronPython maintainer for nose! Detailed changes ---------------- .. include :: ../CHANGELOG .. _`nose developer's list`: http://groups.google.com/group/nose-dev