我有扩展的测试类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
可惜。
根据实际输出,很难判断正在运行哪个测试方法,甚至是来自哪个测试类。
如何让鼻子打印每个测试用例的测试名称?