summaryrefslogtreecommitdiff
path: root/NEWS_0.9
blob: d7fa15fbf5028a36547c5a392d05d18541200b32 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
New in version 0.9
------------------

0.9 Final is here!
==================

nose 0.9 includes a host of new features, as well as numerous
backwards-incompatible changes to interfaces and implementation. 

Thanks to the many folks who have contributed patches and ideas and made bug
reports for the development version of 0.9, especially Mika Eloranta, Jay
Parlar, Kevin Dangoor, Scot Doyle, Titus Brown and Philip J.Eby.

Here's a quick rundown of what's new in 0.9

- Plugins
  
  The most important new feature is support for plugins using setuptools
  entrypoints. nose plugins can select and load tests (like the builtin
  doctest plugin), reject tests (like the builtin attrib plugin, contributed
  by Mika Eloranta, that allows users to select tests by attribute),
  watch and report on tests (like the builtin coverage and profiler plugins),
  completely replace test result output (like the html result plugin in the
  examples directory) or any combination of the above. Writing plugins is
  simple: subclass nose.plugins.Plugin and implement any of the methods in
  nose.plugins.IPluginInterface.

- Better compatibility with unittest

  Test loading has been consolidated into a test loader class that is drop-in
  compatible with unittest.TestLoader. Likewise test result output, including
  output capture, assert introspection, and support for skipped and deprecated
  tests, in nose.result.TextTestResult. If you want those features and not the
  rest of nose, you can use just those classes. nose.main() has also been
  rewritten to have the same signature as unittest.main().

- Better command line interface

  Command line test selection is more intuitive and powerful, enabling easy
  and correct running of single tests while ensuring that fixtures (setup and
  teardown) are correctly executed at all levels. No more -f -m or -o options:
  now simply specify the tests to run::

    nosetests this/file.py that.module

  Tests may be specified down to the callable::

    nosetests this/file.py:TestClass that.module:this_test
    nosetests that.module:TestClass.test_method

  There are also new options for dropping into pdb on errors or failures, and
  stopping the test run on the first error or failure (thanks to Kevin Dangoor
  for the idea).
    
- More!

  Helpful test decorators and functions in nose.tools. Support for generators
  in test classes. Better import path handling -- that you can shut off!
  Detailed verbose logging using the logging package. And more...