在nose_parametrized中打印测试函数的名称

时间:2015-09-11 22:09:21

标签: python nose nose-parameterized

我有扩展unittest.TestCase的测试类,并使用nose_parameterized进行参数化。我正在使用nosetests -v来运行测试。我有鼻子测试版1.3.7。

我希望测试运行器打印每个测试的名称。相反,它只打印传递给测试的参数。

以下是我实际输出的示例:

[with sentence='Put it on the top shelf of the bookshelf'] ... ok
[with **None={'world': [<WorldObject table>, ...'basic', 'language': 'Pick cup'}] ... ERROR
[with **None={'name': 'first action', 'langua...'' ... ERROR
[with **None={'name': 'two pointing choices',...'' ... ERROR

基于nose_parameterized language_analyzer_test (md.LangaugeAnalyzerTest) ... ok language_test (md.ReferenceResolverTest) ... ERROR reference_resolver_test (md.ReferenceResolverTest) ... ERROR reference_resolver_test (md.ReferenceResolverTest) ... ERROR 的示例,我认为输出应该包含我的测试方法及其类的名称,大致类似于此。

language_analyzer_test_Pick_cup (md.LangaugeAnalyzerTest) ... ok
language_test_basic (md.ReferenceResolverTest) ... ERROR
reference_resolver_test_first_action (md.ReferenceResolverTest) ... ERROR
reference_resolver_test_two_pointing_choices (md.ReferenceResolverTest) ... ERROR

但事实并非如此。

documentation进一步指出:

  

如果第一个参数是字符串,则该字符串将添加到方法名称的末尾。

因此,根据我传入的字符串作为每个测试的第一个参数,输出应该如下所示:

{{1}}

但是唉。

根据实际输出,很难判断正在运行哪种测试方法,甚至不知道它来自哪个测试类。

如何为每个测试用例打印测试名称?

1 个答案:

答案 0 :(得分:1)

如果测试中的方法有文档字符串,nose-parameterized会将参数(上面的[with …])添加到文档字符串,nose将打印文档字符串以及每个测试。

如果从测试中删除docstring,则应获取文档中显示的方法名称。