3
我的項目中有一些長時間運行的測試。這些這些都坐在平行於我的集成和單元測試中在Play中禁用單個測試2.4 scala
/test/manual/*
有沒有在玩2.4斯卡拉辦法禁用/標記這些測試類。所以當它們不能自動運行時
$ activator test
但只能在使用test-only命令時運行。
問題是我不想在我的CI服務器上運行這些更長的測試。
我的項目中有一些長時間運行的測試。這些這些都坐在平行於我的集成和單元測試中在Play中禁用單個測試2.4 scala
/test/manual/*
有沒有在玩2.4斯卡拉辦法禁用/標記這些測試類。所以當它們不能自動運行時
$ activator test
但只能在使用test-only命令時運行。
問題是我不想在我的CI服務器上運行這些更長的測試。
具有用於長期運行的集成測試類似的問題,我創建與標準試驗配置衍生(在<projectHome>/build.sbt
)一個It
配置:
lazy val It = config("it").extend(Test)
然後,添加源和測試源到該配置
scalaSource in It <<= (scalaSource in Test)
,你needd,以便能夠在當前項目的配置和相應的任務可
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個CONFIGS是有點依賴於你使用的測試框架(在我的情況下specs2,斯卡拉測試可能會使用-n
and -l
除了tags實現相同)
然後sbt test
將排除所有LongRunning測試,並且如果需要,您可以在交互式會話中運行it:test
或it:testOnly your.long.running.TestCaseHere
。
好的 - 這也是我看到解決這個問題的唯一方法,希望/想到有一個更簡單的解決方案,也許是一個簡單的註釋。但是,謝謝。 –