范围可以是项目、配置或任务。在这种情况下,我认为您正在寻找定义自定义配置。
使用它的设置
已经有一个内置配置IntegrationTest
。您可以通过编写在构建定义中定义它:
Defaults.itSettings
这将使用与正常测试完全不同的设置,包括测试代码(进入src/it/scala/
)和库,因此这可能不是您想要的。
定义自己的配置
使用 sbt 0.13,您可以在 build.sbt 中定义如下自定义配置:
val TeamCity = config("teamcity") extend(Test)
val root = project.in(file(".")).
configs(TeamCity).
settings(/* your stuff here */, ...)
定义 teamcity:test
现在你必须弄清楚如何定义teamcity:test
.
编辑:Mark Harrah 向我指出,有一个文档。请参阅使用共享源的附加测试配置。
添加单独的测试源(和编译)集的替代方法是共享源。在这种方法中,源代码使用相同的类路径编译在一起并打包在一起。
把它们放在一起
val TeamCity = config("teamcity") extend(Test)
val root = project.in(file(".")).
configs(TeamCity).
settings(
name := "helloworld",
libraryDependencies ++= Seq(
"org.specs2" %% "specs2" % "2.2" % "test"
)
).
settings(inConfig(TeamCity)(Defaults.testTasks ++ Seq(
testOptions := Seq(Tests.Argument("nocolor"))
)): _*)
当您运行teamcity:test
Specs2 时,输出显示没有颜色。