LoginSignup
0
0

More than 5 years have passed since last update.

Android Studio 3 でGradleでマルチモジュールでJavaライブラリのテストをSpockで実装したい時

Posted at

やりたい事

Android Studio 3.xで、Gradleを使っていて、マルチモジュールでJavaライブラリが含まれている。

そのJavaライブラリのテストをSpockで実装したい。

導入

Spockの導入のやり方は色々あるが、モジュールのbuild.gradleに追記していく事になるだろう。
だが、重要本記事のポイントは最後の行のdestinationDir。

apply plugin: 'groovy'
dependencies {
    testCompileOnly 'org.codehaus.groovy:groovy:2.5.3'
    testCompileOnly('org.spockframework:spock-core:1.2-groovy-2.5') {
        exclude module: 'groovy-all'
    }
}
compileTestGroovy.destinationDir = compileTestJava.destinationDir

解説

hoge.groovyでのテストクラスの左に現れる三角から実行した場合、gradleのtaksはgroovyとしてのcompile(compileTestGroovy)が走って.classは生成されるが、それはhoge/build/classes/groovy/test/に生成される。
スクリーンショット 2018-11-17 21.37.41.png

しかし、Android StudioにおけるTest?はJUnitとなっているようなので、hoge/build/classes/java/test/の.classを参照している様子。
そのためにClass not found: "hogehoge" Empty test suite.とのエラーになってテストが実行できない。

そこで、compileTestGroovy.destinationDirをJavaと同じ.classの出力先にする。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0