Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何让nose仅重新运行失败的测试?_Nose - Fatal编程技术网

如何让nose仅重新运行失败的测试?

如何让nose仅重新运行失败的测试?,nose,Nose,我有一些SeleniumWebDriverGUI测试,它们在我们的Trac/Biten构建环境中的每个签入上运行。出于各种愚蠢的原因,这些都是脆弱的,重新运行失败的测试总是有效的(除非它不起作用,然后我有一个真正失败的测试) 如何重新运行这些失败的测试?GUI测试需要10-15分钟才能运行,因此重新运行所有测试是一件痛苦的事情 以下是构建步骤: <step id="guitest" description="Run gui tests"> <sh:exec execut

我有一些SeleniumWebDriverGUI测试,它们在我们的Trac/Biten构建环境中的每个签入上运行。出于各种愚蠢的原因,这些都是脆弱的,重新运行失败的测试总是有效的(除非它不起作用,然后我有一个真正失败的测试)

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

以下是构建步骤:

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

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

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

# Environment stuff deleted
nosetests python/*Tests.py -v --with-id
nosetests python/*Tests.py -v --failed
例如,如果四个测试失败,则使用
--failed
标志运行时将仅运行这四个测试。如果您随后纠正了三个错误,则使用
--failed
运行时将只运行剩余的失败测试

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

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

当然,现在我知道了,很明显,它是通过:

nosetests --help

最初我扫描了文档,但没想到会这么容易,所以我半心半意地这样做了。

如果你想一步完成所有工作,那么Flaky插件可能会有所帮助:你可以在没有
——最初使用id
的情况下运行此功能。如果使用
--failed
运行,并且最后一个测试没有捕获信息,它将运行所有测试。如果我只想运行第一个失败的测试,该怎么办?如果我使用-x选项,它会工作,但会忘记所有“失败”的ID,因此我必须再次运行所有测试,以便找到下一个失败的测试。这个-x和-,失败的交互是故意的吗?我能绕开它吗?我不想每次都运行所有失败的测试,因为它们太多了,而且挖掘输出会让人困惑。这只是浪费了很多时间。我需要做一些事情,比如保存失败测试的列表,并使用-x选项…就像有选项--id file=file,但这似乎只是改变了存储id的文件名,我看不到重复使用同一个文件而不覆盖其中的id的方法。
nosetests --help