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ファイルに書けますね。
方法はわりと原始的なので、もっといい方法があれば教えてください。