更改nosetests的详细报告格式

时间:2013-08-27 07:32:46

标签: python nose nosetests

我在详细模式下使用nosetests运行我的测试:

....
test_cache_region (tests.test_sysutil.TestCachedMethodDecorator) ... ok
test_expire (tests.test_sysutil.TestCachedMethodDecorator) ... ok
test_lru (tests.test_sysutil.TestCachedMethodDecorator) ... ok
test_max_capacity (tests.test_sysutil.TestCachedMethodDecorator) ... ok
test_DecimalJSONEncoder (tests.test_util.UtilTestCase) ... ok
test_cdecimal_support (tests.test_util.UtilTestCase) ... ok
test_ceil_with_ndigits (tests.test_util.UtilTestCase) ... ok
test_switch_keyboard (tests.test_util.UtilTestCase) ... ok
...

有没有办法轻松将报告格式更改为:

...
tests.test_sysutil.TestCachedMethodDecorator.test_lru ... ok
tests.test_sysutil.TestCachedMethodDecorator.test_max_capacity ... ok
tests.test_util.UtilTestCase.test_DecimalJSONEncoder ... ok
tests.test_util.UtilTestCase.test_cdecimal_support ... ok
...

3 个答案:

答案 0 :(得分:5)

您需要以下列方式覆盖TestCase类的 str 方法:

def __str__(self):
    return __name__ + "." + self.__class__.__name__ + "." +  self._testMethodName

随意修改返回字符串。

答案 1 :(得分:5)

正如jorispilot建议的那样,您可以更改项目中的每个TestCase。或者,您可以通过创建实现describeTest的a Nose plugin来改变鼻子的行为。请参阅this question on StackOverflow了解要实现目标的确切配方。

答案 2 :(得分:0)

值得注意的是,在单元测试中添加doc字符串会在运行时更改输出...

def test_an_empty_string_is_false(self):
    """Test that an empty string == False"""
    self.assertFalse("")
当你运行详细程度的鼻子测试时,

会产生Test that an empty string == False ... ok