我怎样才能让鼻子重新运行只有失败的测试?

时间:2013-04-24 21:18:49

标签: nose

我有一些Selenium Webdriver GUI测试,可以在我们的Trac / Bitten构建环境中的每次签入中运行。由于各种愚蠢的原因,这些是脆弱的并且重新运行失败的测试始终有效(除非它没有,然后我有一个实际上失败的测试)。

如何重新运行这些失败的测试? GUI测试需要10-15分钟才能运行,因此重新运行所有这些都是一件痛苦的事。

以下是构建步骤:

<step id="guitest" description="Run gui tests">
    <sh:exec executable="gui_tests.sh" />
</step>

和gui_tests.sh

# Setup environment stuff deleted
nosetests python/*Tests.py -v

我们正在努力使GUI测试更加健壮,但我的理解是这是GUI测试的生命。

1 个答案:

答案 0 :(得分:55)

事实证明这对于鼻子是微不足道的。首先运行该命令并包含--with-id标志。

# Environment stuff deleted
nosetests python/*Tests.py -v --with-id
nosetests python/*Tests.py -v --failed

如果四个测试失败,使用--failed标志运行将只运行那四个测试。如果您更正为3,则使用--failed运行将仅运行剩余的失败测试。

再次运行--with-id会重置失败测试的跟踪并运行所有找到的测试。

在我开始编写自己的插件之前,我搜索了很多。当我研究如何注册我的插件时,我发现了一些恰好是nose提供的testid plugin代码,它提供了上面的功能。啧。我在这里记录这个,希望能节省一些时间。

当然,现在我知道了它,它显然是找到了:

nosetests --help

我最初扫描了这些文档,但并不认为它会如此简单,所以我这样做是半心半意的。