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



我有一些Selenium Webdriver GUI测试,在我们的Trac/bite构建环境中每次签入时运行。由于各种愚蠢的原因,这些是脆弱的,重新运行失败的测试总是有效的(除非它没有,然后我有一个真正失败的测试)。

如何重新运行这些失败的测试?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测试的生活。

编辑2021年6月:惊讶这仍然得到投票。如果可能的话,考虑使用带有--last-failed选项的ptyest。

这对于鼻子来说是微不足道的。首先运行命令并包含--with-id标志。

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

假设有四个测试失败,使用--failed标志运行将只运行这四个测试。如果您纠正了三个错误,那么使用--failed运行将只运行剩余的失败测试。

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

在我开始编写自己的插件之前,我对此进行了相当多的搜索。当我研究如何注册我的插件时,我发现一些代码恰好是nose提供的经过测试的插件,它提供了上面的功能。天哪。我在这里记录这些,希望能为别人节省一些时间。

当然,现在我知道了,它是如此明显地发现:

nosetests --help

我一开始浏览了文档,但没想到会这么容易,所以我半心半意地做了。

最新更新