列出Nosetest发现的所有测试

43

我使用 nosetests 运行我的单元测试,运行得很好。我想获取 nostests 找到的所有测试列表,但不实际运行它们。有没有办法做到这一点?

3个回答

50

目前可用的版本为0.11.1。您可以按如下方式获取测试列表而无需运行它们:

nosetests -v --collect-only

3
-vv 视为比 -v 更好的选项。 - Sardathrion - against SE abuse
nosetests -v --collect-only | grep 'some-string' 不起作用。有任何想法为什么? - Eyal Levin
@EyalLevin 我也遇到了同样的问题。输出被发送到stderr,所以你需要执行 nosetests -v --collect-only 2>&1 >/dev/null | grep 'some-string' - sihrc

18

我建议使用:

nosetests -vv --collect-only

尽管 man nosetests 中没有描述 -vv 选项,但 "关于 nose 单元测试框架的扩展介绍" 指出:

使用 -vv 标志可以从 nose 的测试发现算法中得到详细输出。这将告诉您 nose 是否在正确的位置查找测试。

当尝试确定为什么 nosetests 只能找到部分测试时,-vv 选项可以节省时间。(在我的情况下,这是因为 nosetests 跳过了某些测试,因为相应的 .py 脚本是可执行的。)

总之,-vv 选项非常方便,我几乎总是使用它而不是 -v 选项。


3

即将推出:上周在PyCon上演示了一个新的--collect开关,可以产生这种行为。它应该很快就会在主干上,并将在0.11版本中发布。

https://groups.google.com/g/nose-users列表是nose问题的绝佳资源。


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