ScalaTestでユニットテストを書いて sbt でテストを実行すると、sbtのコンソールにはテスト結果とログがごちゃ混ぜになって出力されるかと思います。
「テスト結果のサマリーだけ見たい!!」ってときはログが邪魔ですが、かと言っていちいちログ出力レベルを変えるのも面倒、と言うときはテスト結果をレポートとして出力すると便利だと思います。
以下の例のように build.sbt で testOptions
にレポート出力の設定を追加するだけでOKです。
- レポートのファイル名にプロジェクト名を含めておかないと、プロジェクトごとに上書きされてしまいます。
- レポートの出力内容などはオプションで調整できます。詳細は ScalaTestユーザーガイド - Writing your first test の Using Reporters の項を参照)
build.sbt
val commonSettings = Seq(
:
testOptions in Test += Tests.Argument(TestFrameworks.ScalaTest, "-fWDT", s"target/test-report_${name.value}.txt", "-eNDXEHLO")
)
val projectA = (project in file("projectA"))
.settings(commonSettings)
:
val projectB = (project in file("projectB"))
.settings(commonSettings)
:
これで sbt test
を実行すると、テストレポート /target/test-report_****.txt
が出力されるようになります。
/example
/projectA
/src
/main
/test
/target
/projectB
/src
/main
/test
/target
/target
test-report_projectA.txt
test-report_projectB.txt
build.sbt
以上です。