从build.sbt运行单个测试套件

时间:2016-05-12 09:25:14

标签: scala sbt scalatest

我有一个多模块项目,目前在打包期间通过一个读取 -

的任务运行测试
val testALL = taskKey[Unit]("Test ALL Modules")

testALL := {
  (test in Test in module_A).value
  (test in Test in module_B).value
  (test in Test in module_C).value
}

现在,我已将每个模块中的所有测试合并到一个顶级ScalaTest Suite中。因此,对于每个模块,只想运行这个单顶级套件(名为“blah.moduleA.TestSuite”等)。一直试图在我的build.sbt中使用testOnly和testFilter在每个模块中运行这个单独的套件但是不能正确地使用语法。有人可以告诉我怎么做吗?

1 个答案:

答案 0 :(得分:1)

testOnlyInputKey[Unit]。您希望将其转换为Task[Unit],以便能够直接为给定的测试套件运行它。

你可以这样做:

lazy val foo = taskKey[Unit]("...")
foo := (testOnly in Test).fullInput("hello").value

在sbt的文档中:Preapplying input in sbt