在 Play 2.4 scala 中禁用单个测试
Disable single test in Play 2.4 scala
我的项目中有一些很长的 运行ning 测试。这些与我在
中的集成和单元测试并行进行
/test/manual/*
Play 2.4 for Scala 中是否有方法disable/mark 这些测试类。所以当
时它们不会自动运行
$ activator test
但仅在使用 test-only 命令时 运行。
问题是我不想 运行 在我的 CI 服务器上进行这些较长的测试。
长期 运行ning 集成测试存在类似问题,我创建了一个从标准测试配置派生的 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
配置中禁用长 运行ning 测试:
testOptions in Test := Seq(Tests.Argument("exclude", "LongRunning"))
并且在 It
配置中仅包含这些长 运行ning 测试:
testOptions in It := Seq(Tests.Argument("include", "LongRunning"))
最后两个配置有点依赖于您使用的测试框架(在我的例子中是 specs2,scala 测试可能会使用 -n
and -l
in addition to tags 来实现相同的目的)
然后 sbt test
将排除所有 LongRunning 测试,如果需要,您可以 运行 it:test
或 it:testOnly your.long.running.TestCaseHere
在交互式 sbt 会话中。
我的项目中有一些很长的 运行ning 测试。这些与我在
中的集成和单元测试并行进行/test/manual/*
Play 2.4 for Scala 中是否有方法disable/mark 这些测试类。所以当
时它们不会自动运行$ activator test
但仅在使用 test-only 命令时 运行。
问题是我不想 运行 在我的 CI 服务器上进行这些较长的测试。
长期 运行ning 集成测试存在类似问题,我创建了一个从标准测试配置派生的 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
配置中禁用长 运行ning 测试:
testOptions in Test := Seq(Tests.Argument("exclude", "LongRunning"))
并且在 It
配置中仅包含这些长 运行ning 测试:
testOptions in It := Seq(Tests.Argument("include", "LongRunning"))
最后两个配置有点依赖于您使用的测试框架(在我的例子中是 specs2,scala 测试可能会使用 -n
and -l
in addition to tags 来实现相同的目的)
然后 sbt test
将排除所有 LongRunning 测试,如果需要,您可以 运行 it:test
或 it:testOnly your.long.running.TestCaseHere
在交互式 sbt 会话中。