【发布时间】:2014-07-28 00:00:55
【问题描述】:
我正在尝试编写带有输入参数的任务,将其传递给 testOnly 任务并执行。它运行良好,但我无法在此任务中设置系统属性,这将在测试中可见。此属性不应影响其他任务,并且应仅在此自定义任务中可见。
这是我的代码示例
lazy val myTestOnly = InputKey[Unit]("myTestOnly", "test only with special sys prop")
val myTestOnlyTask = myTestOnly := {
Def.inputTaskDyn {
val args: Seq[String] = spaceDelimited("").parsed
javaOptions in Test ++= Seq("-Dfoo=bar") // does not work
testOptions += Tests.Setup(() => System.setProperty("foo", "bar")) //does not work
System.setProperty("foo", "bar") // does not work
(testOnly in Test).toTask(" " + args.head)
}.evaluated
}
当我在 sbt 控制台中运行时
myTestOnly com.sampleTest
testOnly 执行但“foo”属性不可见
那么问题是如何在任务定义中设置属性,这些属性仅在当前任务的测试运行时可见?
【问题讨论】: