こんにちわ、みけです。
表題の件についてハマっていますので、誰か有益な情報知ってたら教えろください。
GRADLE-2846
このバグは次の条件でテストを実行した時に発生します。
- Gradleのバージョン1.7
- Java8-ea-b99
【参考】GRADLE-2846
エラーメッセージは次のような感じ。
failed to read class file /Users/mike/hoge/build/classes/test/pkg/name/HogeTest$Foo.class ... Caused by: java.lang.RuntimeException at org.objectweb.asm.MethodVisitor.visitTypeAnnotation(Unknown Source) at org.objectweb.asm.ClassReader.b(Unknown Source) at org.objectweb.asm.ClassReader.accept(Unknown Source) at org.objectweb.asm.ClassReader.accept(Unknown Source) at org.gradle.api.internal.tasks.testing.detection.AbstractTestFrameworkDetector.classVisitor(AbstractTestFrameworkDetector.java:117) ... 68 more
で、このバグ、まだステータスがOPENで、今の僕の環境で再現してしまいます。
(このバグ自体を今知ったレベル)
- Gradleのバージョン2.2
- Java1.8-u25
テストクラスはこんな感じ
public class HogeTest { @Test public void test() { Bar foo = new Foo(1); assertThat(foo.cal(), is (2)); } private class Foo implements Bar { private final int baz; Foo(int baz) { this.baz = baz; } @Override public int cal() {return 2 * baz;} } }
一時的な対処法
一応、クラスファイルのスキャンニングを切ることで対処されるらしいです。
test { scanForTestClasses = false include '**/*Test.*' }
【参考】gradle-test-fails-with-error
以上
(´-`).oO(ここ最近Java8書いてたけど、こんなの発生してなかったけどな…)