我有一个多模块项目,目前在打包期间通过一个读取 -
的任务运行测试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在每个模块中运行这个单独的套件但是不能正确地使用语法。有人可以告诉我怎么做吗?
答案 0 :(得分:1)
testOnly
是InputKey[Unit]
。您希望将其转换为Task[Unit]
,以便能够直接为给定的测试套件运行它。
你可以这样做:
lazy val foo = taskKey[Unit]("...")
foo := (testOnly in Test).fullInput("hello").value
在sbt的文档中:Preapplying input in sbt