Posted at

Androidのマルチモジュールでユニットテスト結果をDangerでコメントする

前回、AndroidのマルチモジュールでLint結果をDangerでコメントする という記事を書いた。今回はそれのユニットテスト版。詳しい説明は ブログ のほうに記載したので、こちらでは方法のみを記載します。

Dangerでユニットテストの結果をDangerでコメントするためには orta/danger-junit というプラグインを利用します。danger-junitでは、複数のファイルをパースする仕組みがあるのでそれを使います。


Dangerfileに設定を記述する

ユニットテストの結果ファイルが TEST-* という名前で生成されているので、それらの相対パスの一覧をとってきて、それをdanger-junitに渡してあげる処理をDangerfileに記述します。


Dangerfile

`find . | grep "TEST-*"`.split("\n").each do |path|

junit.parse(path)
junit.report
end

これでユニットテストの結果をまとめてコメントしてくれるようになります。


おまけ

ユニットテストの実行はBuildVariantを指定してあげることができます。例えば DevelopmentDebug というBuildVariantで実行した場合は ./gradlew testDevelopmentDebugUnitTest と実行してあげることで ./app/build/test-results/testDevelopmentDebugUnitTest/TEST-hogehoge.xml みたいなファイルが出力されます。

そこでプロジェクトのルートに移動し find . | grep "TEST-*" を実行してあげると以下のように出力されます。

❯❯❯❯ find . | grep "TEST-*"

./app/build/test-results/testDevelopmentDebugUnitTest/TEST-hogehoge.xml
./modules/piyo/build/test-results/testDevelopmentDebugUnitTest/TEST-piyopiyo.xml
./modules/makun/build/test-results/testDevelopmentDebugUnitTest/TEST-makunmakun.xml

今回は、これを利用してマルチモジュールのユニットテストの結果を集めてきました。