単体テストを実行しようとすると、AssertJ で NoSuchMethodError が発生します。make ステップは正常に機能し、assertThat() の実装に移動すると、正常に機能します。
モジュールの依存関係は、build.gradle でコンパイルの依存関係として定義したように、org.assertj:assertj-code:1.2.0 を使用していることを示しています (はい、コンパイルしてテストしません)。単体テストは統合テストであるため、モジュールのメイン クラスパス内に存在するため、これは意図的なものです。iml ファイルには以下が含まれます。
<orderEntry type="library" name="Gradle: org.assertj:assertj-core:1.2.0" level="project" />
私のテスト例は次のとおりです。
import org.assertj.core.api.Assertions;
import org.junit.Test;
public class X {
@Test
public void x(){
Assertions.assertThat(1).isEqualTo(1);
}
}
実行すると、次のようになります。
java.lang.NoSuchMethodError: org.assertj.core.api.Assertions.assertThat(I)Lorg/assertj/core/api/IntegerAssert;
実行構成を見ると、クラスパスが正しいモジュール (AssertJ を含むモジュール) に設定されています。
キャッシュを無効化しようとしましたが、役に立ちませんでした。
私は現在アイデアがありません(しゃれは意図されていません)。これを前に見たことがある人はいますか?または、トラブルシューティングの進め方の手がかりをお持ちですか?