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

stv*_*stv 27 nose

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

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

这是构建步骤:

<step id="guitest" description="Run gui tests">
    <sh:exec executable="gui_tests.sh" />
</step>
Run Code Online (Sandbox Code Playgroud)

和gui_tests.sh

# Setup environment stuff deleted
nosetests python/*Tests.py -v
Run Code Online (Sandbox Code Playgroud)

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

stv*_*stv 55

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

# Environment stuff deleted
nosetests python/*Tests.py -v --with-id
nosetests python/*Tests.py -v --failed
Run Code Online (Sandbox Code Playgroud)

如果,例如,四个测试失败,使用该--failed标志运行将只运行那四个测试.如果您然后更正三个,则运行--failed将仅运行剩余的失败测试.

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

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

当然,现在我知道它,它显然发现:

nosetests --help
Run Code Online (Sandbox Code Playgroud)

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

  • 你*可以*实际上在没有`--with-id`的情况下运行它。如果使用 `--failed` 运行并且最后一次测试没有捕获信息,它将运行所有测试。 (2认同)