以下是build.sbt
的一个片段,当我想调试单个测试时,我会将其注释掉。
// *** Uncomment These Two Lines If you are debugging individual Test ***
//fork in Test := false
//parallelExecution in Test := false
我想做的不是手动注释上述片段,而是根据我指定给sbt
的环境值运行上述条件(例如"test-only -Dindividual_test=true"
)。这样,我可以从IDE编写各种测试和集成的运行配置。
我知道如果我们这样离开它,有一天,开发人员会推动这个变更,因为这个没有记录。
这是我们需要在build.scala
中做些什么吗?
或者是否有其他方法可以实现这一目标?
答案 0 :(得分:2)
您可以创建一个单独的设置键,您可以在交互式会话中更改该键:
build.sbt
val individualTest = Def.settingKey[Boolean]("Whether to run tests individually")
individualTest := false // individualTest is a setting like every other
fork in Test := !individualTest.value
parallelExecution in Test := !individualTest.value
现在,您可以在会话中以交互方式切换individualTest
:
> set individualTest := true
> testOnly
// fork in Test is false
// parallelExcecution is false
> set individualTest := false
// fork in Test is true
// parallelExcecution is true
如果要从命令行运行此命令,请将每个单独的sbt命令放在引号中:
sbt 'set individualTest := true' 'testOnly myTest'