如果有时候测试失败了,我可以要求sbt继续测试直到失败吗?
否则,我在观看箭头时卡住了向上箭头。 (双关语无意识但发酵)
答案 0 :(得分:11)
我遇到了同样的问题,我最终将其作为一个命令来实现。
lazy val root = Project("test", file(".")).
settings(commands += Command.command("testUntilFailed") { state =>
"test" :: "testUntilFailed" :: state
})
优点是它将跳过SBT加载。您还可以添加额外参数或运行testOnly
来测试单个测试。
答案 1 :(得分:4)
老问题,但我自己也有同样的需求,这里有一个解决方案:如果你用测试运行一次,sbt会返回非零退出代码,因此,一种循环直到失败的方法就是查看shell中的退出代码:
while [ $? -eq 0 ]; do sbt test; done
答案 2 :(得分:1)
我已经为片状测试检测创建了sbt插件:sbt-flaky。您可以运行test:
sbt clean "flaky duration=30"
,sbt clean "flaky times=30"
sbt clean "flaky firstFail"
。此插件的优点是故障的汇总,历史趋势以及在管道中添加片状测试检测的可能性。
答案 3 :(得分:0)
在我看来,它并不特别适用于SBT或任何其他构建管理工具。这没有内置的SBT功能。您必须构建一个,但它远不是SBT提供的 - 构建配置管理。点击导致构建/测试失败的情况可能需要相当长的时间。这是非常不可预测的。
当您的测试失败时,表示测试无法通过。该错误应告诉您它们用于改进测试的内容。