2016-05-27 12 views
0

Ich bekomme einen NoSuchMethodError auf AssertJ, wenn ich versuche, einen Komponententest auszuführen. Der make-Schritt funktioniert einwandfrei und wenn Sie zur Implementierung von assertThat() navigieren, funktioniert das problemlos.java.lang.NoSuchMethodError beim Ausführen eines Tests in IntelliJ IDEA

Die Modulabhängigkeiten zeigen, dass ich org.assertj: assertj-code: 1.2.0 verwende, wie ich in meinem build.gradle als Kompilierabhängigkeit definiert habe (ja, kompiliere und nicht test). Der Komponententest befindet sich im Hauptklassenpfad meines Moduls, da es sich um einen Integrationstest handelt. Dies ist also beabsichtigt. Die IML-Datei enthält:

<orderEntry type="library" name="Gradle: org.assertj:assertj-core:1.2.0" level="project" />

Mein Beispiel Test:

import org.assertj.core.api.Assertions; 
import org.junit.Test; 

public class X { 
    @Test 
    public void x(){ 
     Assertions.assertThat(1).isEqualTo(1); 
    } 
} 

und wenn ich es ausführen, erhalte ich:

java.lang.NoSuchMethodError: org.assertj.core.api.Assertions.assertThat(I)Lorg/assertj/core/api/IntegerAssert;

Wenn ich mich in den Lauf-Konfigurationen, die Classpath ist auf das richtige Modul eingestellt (das Modul enthält AssertJ).

Ich habe versucht, Caches ungültig zu machen, aber das hat nicht geholfen.

Ich bin derzeit aus Ideen (kein Wortspiel beabsichtigt). Wer hat das schon mal gesehen? Oder haben Sie eine Anleitung zur Fehlerbehebung?

Antwort

2

Es gefunden.

Ich hatte ein anderes Modul, das eine neuere Version von AssertJ importiert. Und irgendwie (scheint wie ein Fehler in IntelliJ) benutzte meine Laufzeit stattdessen diesen.

Ich werde meinen gemeldeten Fehler verfolgen: https://youtrack.jetbrains.com/issue/IDEA-156718 und Updates posten.

Verwandte Themen