【问题标题】:Print name of test function in nose_parametrized在 nose_parametrized 中打印测试函数的名称
【发布时间】:2015-12-08 13:38:22
【问题描述】:

我有扩展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

基于来自documentationnose_parameterized 的示例,我认为输出应该包含我的测试方法及其类的名称,大致如下。

language_analyzer_test (md.LangaugeAnalyzerTest) ... ok
language_test (md.ReferenceResolverTest) ... ERROR
reference_resolver_test (md.ReferenceResolverTest) ... ERROR
reference_resolver_test (md.ReferenceResolverTest) ... ERROR

但事实并非如此。

documentation 进一步声明:

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

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

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

但是唉。

根据实际输出,很难判断正在运行的测试方法,甚至是来自哪个测试类。

如何让鼻子打印每个测试用例的测试名称?

【问题讨论】:

    标签: python nose nose-parameterized


    【解决方案1】:

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

    如果您从测试中删除文档字符串,您应该得到文档中显示的方法名称。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-12-09
      • 2018-09-28
      • 2018-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多