在Play 2.4 scala中禁用单个测试

时间:2015-12-02 15:06:11

标签: scala playframework-2.4

我的项目中有一些长时间运行的测试。这些与我在

中的集成和单元测试并行
/test/manual/*

Scala的Play 2.4中是否有禁用/标记这些测试类的方法。

时,它们不会自动运行
$ activator test

但仅在使用test-only命令时运行。

问题是我不想在我的CI服务器上运行这些更长的测试。

1 个答案:

答案 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:testit:testOnly your.long.running.TestCaseHere