unittest和nose框架之间的冲突

时间:2012-09-11 19:28:48

标签: python unit-testing python-3.x nose

鼻子supports test generators。但文件说:

  

请注意,不支持方法生成器   unittest.TestCase子类

这意味着我的所有测试生成器都必须在unittest框架之外。

问题:我是否应该尽可能使用unittest框架进行测试?或者,出于一致性原因,我应该完全放弃unittest吗?

为什么nose不支持unittest.TestCase内的测试生成器?它似乎破坏了nose的最大优势:它是{em>扩展而不是unittest替换,从而提供额外的好处而不需要服用远离unittest提供的任何功能。或者我错过了什么?

还有一个相关的问题。如果我完全抛弃unittest,我应该将测试放入全局函数还是新的类层次结构中?

1 个答案:

答案 0 :(得分:5)

在鼻子方面,在unittest.TestCases中缺乏对更有趣的测试的支持是故意的 - 想法是鼻子应该从unittest收集测试.TestCases 完全作为unittest。可能这是一个坏主意,但现在不太可能改变。

因此,只要你不介意出现在前沿,我建议尝试使用nose2。 nose2不区分和支持各种测试的各种测试插件。文档位于rtd:http://nose2.readthedocs.org/en/latest/index.html,在pypi上下载:http://pypi.python.org/pypi/nose2/0.4.1