如何处理耗时的测试

how to handle time-consuming tests

我的测试在 运行 时间上有很大差异。大多数将花费不到一秒钟的时间,有些可能需要几秒钟,有些可能需要几分钟。

我能以某种方式在我的鼻子测试中指定吗?

最后,我希望能够 运行 我的测试的一个子集,例如不到 1 秒(通过我指定的预期 运行 时间估计)。

查看 this write up 鼻子测试的属性插件,您可以在其中手动将测试标记为 @attr('slow')@attr('fast')。之后您可以调整 nosetests -a '!slow' 以快速 运行 您的测试。

如果您可以自动执行该操作,那就太好了,但恐怕您必须编写额外的代码才能即时执行。如果您喜欢快速开发,我会 运行 启用 xunit xml 输出的 nose(跟踪每个测试的 运行 时间)。您的测试模块可以动态读取来自先前 运行 的 xml 输出文件,并相应地设置测试的属性设置以过滤掉快速测试。这样你就不必手动完成,唉,还有更多的工作(而且你必须 运行 所有测试至少一次)。