sbtでJUnit実行後にレポートを出力
sbtでJUnitのテストを実行するにはbuild.sbtのlibraryDependenciesに以下を追加するだけです。
"com.novocode" % "junit-interface" % "0.8" % "test->default"
しかし、これだけだとコンソールに結果が表示されるだけで、xmlに結果は出力されません。
xml形式のレポートを出力するためにはsbt-simple-junit-xml-reporter-pluginを導入する必要があります。
Githubのページにもありますが導入は非常に簡単で、project/project/plugins.scalaに以下を記述するだけです。
project/project/plugins.scala
import sbt._
object Plugins extends Build {
lazy val plugins = Project("plugins", file("."))
.dependsOn(
uri("git://github.com/bseibel/sbt-simple-junit-xml-reporter-plugin.git")
)
}
このプラグイン導入後にJUnitのテストを実行すると、プロジェクトのルートディレクトリのtest-reportsディレクトリにxmlのレポートが出力されます。
ただ、ルートディレクトリに勝手に出力されるのが気に入らなかったので、target/test-reportsディレクトリに出力されるよう書き換えたものをGithubに上げました。
shinichy/sbt-simple-junit-xml-reporter-plugin
project/project/plugins.scalaで指定したuriを以下のようにgit://github.com/shinichy/sbt-simple-junit-xml-reporter-plugin.gitに変更すると私が修正したものが代わりに使用されます。
project/project/plugins.scala
import sbt._
object Plugins extends Build {
lazy val plugins = Project("plugins", file("."))
.dependsOn(
uri("git://github.com/shinichy/sbt-simple-junit-xml-reporter-plugin.git")
)
}
こちらのプラグインを使用すればJUnitの結果はtarget/test-reportsディレクトリに出力されるようになります。