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 <plugins/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`.

  .. warning ::

     The multiprocess plugin is not available on Windows.
  
* :doc:`Log capture <plugins/logcapture>`

  The log capture plugin does for logging what the
  :doc:`capture <plugins/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 <plugins/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 <plugins/collect>`
  
  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 <plugins/allmodules>`

  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 <plugins/doctests>` 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 <plugins/testid>` 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 <plugins/cover>` 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 <doc_tests/test_addplugins/test_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