How to prevent nose (unittest) from using the docstring when verbosity >= 2
Some of our Python unit tests have docstrings. I find it annoying that, when using a verbosity level >= 2, nose prints the docstring instead of the class name and method name. Here's a hack to prevent it from doing that: Add a shortDescription() method to the test case class that returns None.
Here is an example of normal behavior:
import unittest
class MyTestCase(unittest.TestCase):
def test_with_docstring(self):
"""Test that something does something
"""
def test_without_docstring(self):
pass
$ nosetests --verbosity=2 tmp.py
Test that something does something ... ok
test_without_docstring (tmp.MyTestCase) ... ok
Here is an example with the hack to prevent printing the docstring:
import unittest
class MyTestCase(unittest.TestCase):
def shortDescription(self):
return None
def test_with_docstring(self):
"""Test that something does something
"""
def test_without_docstring(self):
pass
$ nosetests --verbosity=2 tmp.py
test_with_docstring (tmp.MyTestCase) ... ok
test_without_docstring (tmp.MyTestCase) ... ok
Comments
I did a small plugin for nosetests, this example inspired it. It avoids the boilerplate of having to write extra code. You can find it there: https://github.com/MarechJ/...
disqus:2189248197