我有一個玩! 2 for Scala應用程序,我正在使用Specs2進行測試。我可以使用test
命令或使用test-only MyParticularSpec
的特定規格運行所有測試。玩!框架:自定義哪些測試運行
我希望做的是紀念一些特殊規格,甚至是規範內部單一方法,爲了做這樣的事情:
- 運行不集成所有的測試(即,做不能訪問外部資源)
- 運行不寫模式訪問外部資源的所有測試(但仍在運行的閱讀測試)
- 運行的所有測試,但給定一個
等。
我想這應該是可行的,也許通過添加一些註釋,但我不知道如何去做。
是否存在選擇性運行某些測試而不是其他測試的機制?
編輯我一直在使用test-only
當回答自己。仍然命令行選項不適用於test
任務。繼sbt guide我試圖創建一個額外的SBT的配置,像
object ApplicationBuild extends Build {
// more settings
lazy val UnitTest = config("unit") extend(Test)
lazy val specs = "org.scala-tools.testing" %% "specs" % "1.6.9" % "unit"
val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA)
.configs(UnitTest)
.settings(inConfig(UnitTest)(Defaults.testTasks) : _*)
.settings(
testOptions in UnitTest += Tests.Argument("exclude integration"),
libraryDependencies += specs
)
}
當我通過參數沒有選項,例如,當我把Test.Argument("plan")
這工作。但我無法找到如何傳遞更復雜的論點。我試過
Tests.Argument("exclude integration")
Tests.Argument("exclude=integration")
Tests.Argument("-exclude integration")
Tests.Argument("-exclude=integration")
Tests.Argument("exclude", "integration")
Tests.Argument("exclude \"integration\"")
並且可能更多。仍然沒有任何線索什麼是正確的語法。
有誰知道如何從sbt向specs2傳遞選項參數?
非常感謝您!在文檔中沒有解釋清楚的是,在這裏我們有一個參數(排除)和一些選項(排除什麼),並且不清楚是否應該像單獨的arugments一樣通過它。其實,我試過這個('Tests.Argument(「exclude」,「integration」)'),但是id不起作用。我現在發現問題不在於這個聲明,而在於我在spec(「something」應該是{tag(「integration」)...')的開頭聲明標記,而不是單一的fragemnt。我會嘗試找出哪些不適用於此。 – Andrea
我也使用'section'調用解決了這個問題,所以現在一切正常。再次感謝你! :-) – Andrea
好。我修改了下一版specs2的文檔:http://etorreborre.github.com/specs2/guide-SNAPSHOT/guide/org.specs2.guide.Runners.html#with+sbt+%3E+0.9.x – Eric