我的项目中有一些长时间运行的测试。这些与我在
中的集成和单元测试并行/test/manual/*
Scala的Play 2.4中是否有禁用/标记这些测试类的方法。
时,它们不会自动运行$ activator test
但仅在使用test-only命令时运行。
问题是我不想在我的CI服务器上运行这些更长的测试。
答案 0 :(得分:3)
对于长时间运行的集成测试存在类似问题,我创建了一个It
配置,该配置源自标准测试配置(在<projectHome>/build.sbt
中):
lazy val It = config("it").extend(Test)
然后我将源和测试源添加到此配置
scalaSource in It <<= (scalaSource in Test)
您需要启用当前项目中可用的配置和相应任务
lazy val root = (project in file(".")).configs(It)
.settings(inConfig(It)(Defaults.testTasks): _*)
然后我在Test
配置中禁用长时间运行的测试:
testOptions in Test := Seq(Tests.Argument("exclude", "LongRunning"))
并且只在It
配置中包含这些长时间运行的测试:
testOptions in It := Seq(Tests.Argument("include", "LongRunning"))
最后2个配置有点依赖于你使用的测试框架(在我的情况下为specs2,除了-n
and -l
之外,scala测试可能会使用tags来实现相同的目标)
然后sbt test
将排除所有LongRunning测试,如果需要,您可以在交互式sbt会话中运行it:test
或it:testOnly your.long.running.TestCaseHere
。