【发布时间】:2012-06-26 17:31:13
【问题描述】:
Nose 有一个bug - 由生成器创建的测试名称没有被缓存,所以这个错误看起来像是发生在最后一个测试中,而不是它失败的实际测试。我在错误报告讨论中的solution 之后解决了它,但它仅适用于标准输出上显示的名称,而不适用于 XML 报告 (--with-xunit)
from functools import partial, update_wrapper
def testGenerator():
for i in range(10):
func = partial(test)
# make decorator with_setup() work again
update_wrapper(func, test)
func.description = "nice test name %s" % i
yield func
def test():
pass
nose 的输出和预期的一样
nice test name 0 ... ok
nice test name 1 ... ok
nice test name 2 ... ok
...
但 XML 中的测试名称只是 'testGenerator'。
...<testcase classname="example" name="testGenerator" time="0.000" />...
如何更改此设置,以便个性化测试名称同时显示在标准输出和 XML 输出中?
我正在使用鼻子测试版本 1.1.2 和 Python 2.6.6
【问题讨论】:
-
更改 'func.__name__' 或 'func.__doc__' 也不起作用。
-
创建一个测试套件怎么样?
-
@Apalala 谢谢,这似乎可以解决它。虽然我找不到任何关于如何在鼻子中使用它以及它如何与鼻子的测试发现混合的信息。可以举个例子吗?
-
上次我尝试过,nose 不会发现在运行时创建的测试。
标签: python unit-testing generator nose nosetests