Gradleの共通ルーチンをライブラリ化してテストもする
- https://github.com/gfx/gradle-android-utils (see .travis.yml, build.gradle, test/test.gradle)
Android Studioで開発していてGradleを書いていると共通ルーチンをライブラリ化したくなるわけですが、そうなると当然テストしたりCIしたりしたいですよね。そこでちょっとやってみました。build.gradleに目的のコードをかき、 test/test.gradle にテストを書くのでいけます。
テストは gradlew で DEFAULT_JVM_OPTS="-ea"
したうえで、 ./gradlew -b test/test.gradle check
で実行します。原始的ですが、 taskのなかに assert をならべるとそれなりのテストになります。テスト自体は Groovy の power assert が効くので非常にやりやすいです。
cf. https://travis-ci.org/gfx/gradle-android-utils/builds/16637266
> Assertion failed: assert v == "hoge" | | | false 1.2.30 (1002030)
これで何のためらいもなく複雑なロジックをgradleファイルに書けますね。
方法はわりと原始的なので、もっといい方法があれば教えてください。