【问题标题】:How to have SBT re-run only failed tests如何让 SBT 仅重新运行失败的测试
【发布时间】:2023-03-12 19:49:01
【问题描述】:

有没有办法让 SBT 只重新运行在测试套件的最后一次运行中失败的测试?例如,如果我运行sbt test 并且我运行的 20 个测试中有 3 个失败了,是否可以运行任何命令让 SBT 重新运行这 3 个失败的测试?

具体来说,我正在使用 Scala Test 和 Scala Check 进行我通过 SBT 运行的测试。

【问题讨论】:

  • 这似乎适用于 ScalaCheck 测试,但不适用于 Scala Test 测试。
  • 实际上,我再次尝试并注意到它只是忽略了所有失败的 ScalaCheck 测试事件。

标签: scala unit-testing sbt scalatest scalacheck


【解决方案1】:

如果您使用的是最新版本的 sbt,只需运行 sbt testQuick。

http://www.scala-sbt.org/0.13/docs/Testing.html

【讨论】:

  • 运行 sbt testQuick 不起作用,因为当至少有一个测试失败时,它会重新运行一组 Scala 测试测试中的所有测试。此外,无论是否失败,它都会忽略所有 ScalaCheck 测试。
  • 我不相信有一种方法可以在不运行整个测试套件的情况下重新运行套件内的所有失败测试。此外,您将需要在 ScalaTest 中执行 ScalaCheck 测试,以使这些测试与 ScalaTests 一起重新运行。这是一个很好的例子,说明如何做到这一点。 sanj.ink/posts/…
  • 我使用的是 sbt 1.3.3 版,而 sbt testQuick 对我不起作用。有效的是转到 sbt shell 并使用失败的测试类的名称运行testOnly。示例:testOnly clients.MyClientSpec
猜你喜欢
  • 2023-02-15
  • 2011-12-11
  • 1970-01-01
  • 2018-07-26
  • 2021-10-27
  • 2020-09-19
  • 1970-01-01
  • 2012-01-07
  • 1970-01-01
相关资源
最近更新 更多