单元测试框架unittest和nose之间的冲突问题

6

Nose 支持测试生成器。但是文档说:

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

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

问题:对于那些可以使用unittest框架的测试,我是否仍应该使用unittest框架?还是出于一致性原因,完全放弃unittest?

为什么nose不支持在unittest.TestCase中使用测试生成器?这似乎破坏了nose的最大优势:它是一个扩展而不是unittest的替代品,因此提供了额外的好处,而不会削减unittest提供的任何功能。或者我错过了什么吗?

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


我需要一个类似于测试生成器的东西,最终使用了nose-parameterized。修饰符语法更加简洁,它能够与unittest.TestCase兼容。 - David Ehrmann
1个回答

5
在nose中,unittest.TestCases缺乏对更奇特测试的支持是有意为之的 - 这个想法是nose应该像unittest一样精确地收集测试。也许这是一个坏主意,但现在很不可能改变。所以只要你不介意处于前沿,我建议尝试nose2。nose2不歧视并支持各种测试插件和测试类型。文档在rtd:http://nose2.readthedocs.org/en/latest/index.html,下载在pypi:http://pypi.python.org/pypi/nose2/0.4.1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接