play2.0 でspecs2とscalatestを両方使う
appDependencies足しただけだと
[error] Could not run test test.ApplicationSpec: java.lang.IllegalArgumentException: Unrecognized argument: sequential Throwable escaped the test run of 'test.ApplicationSpec': java.lang.IllegalArgumentException: Unrecognized argument: sequential java.lang.IllegalArgumentException: Unrecognized argument: sequential at org.scalatest.tools.ScalaTestFramework$ScalaTestRunner.parsePropsAndTags(ScalaTestFramework.scala:286) at org.scalatest.tools.ScalaTestFramework$ScalaTestRunner.run(ScalaTestFramework.scala:137)
とかエラー出る。
http://seratch.hatenablog.jp/entry/20120401/1333269471
参考に
testOptions in Test := Nil
するとscalatest動くけどjenkins用のxml吐いてくれない。いろいろ探し回った結果 Build.scala に
object ApplicationBuild extends Build { : val main = PlayProject(appName, appVersion, appDependencies, mainLang = SCALA).settings( : testOptions in Test := Nil, testOptions in Test += Tests.Argument(TestFrameworks.Specs2, "sequential", "true"), testOptions in Test += Tests.Argument(TestFrameworks.Specs2, "junitxml","console"), testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "junitxml(directory=\"target/test-reports\")")
sbtではこんな風に書くと各テスト用のオプションを使い分けられるらしい。
sbtでは http://scalajp.github.com/sbt-getting-started-guide-ja/more-about-settings/ を見ると ~= でオプション書き直せるらしいけどやり方がよく分からなかったので再設定している(しかも中途半端)誰かちゃんとして……
というかplayのほうで最初からspecs2用オプションだって宣言してくれたらいいのに……