Zum Beispiel haben wir die @RepeatedTest
:Die @RepeatedTest startet nicht
import org.junit.jupiter.api.RepeatedTest;
import static org.junit.jupiter.api.Assertions.assertEquals;
class SomeClassTest {
@RepeatedTest(3)
public void doSmth() {
String str = "hello";
SomeClass someClass = new SomeClass();
assertEquals(str.substring(0, 2), someClass.doSmth(str));
}
}
Es funktioniert gut, bis wir werden versuchen, aus dem Test Suite wie folgt auszuführen:
import org.junit.platform.runner.JUnitPlatform;
import org.junit.platform.suite.api.SelectClasses;
import org.junit.runner.RunWith;
@RunWith(JUnitPlatform.class)
@SelectClasses({
SomeClassTest.class
})
public class TestSuite {
}
SomeClass
public class SomeClass {
public String doSmth(String str){
return str.length() > 3? str.substring(0,2) : str;
}
}
Keine Fehler in der Konsole. Der Test startet einfach nicht. Warum?
aktualisieren
I aktiviert in SomeClass
anmelden.
public class SomeClass {
private final static Logger log = LoggerFactory.getLogger(SomeClass.class.getName());
public String doSmth(String str){
log.info("in doSmth");
return str.length() > 3? str.substring(0,2) : str;
}
}
Jetzt sehe ich in der log-Datei, dass @RepeatedTest
aus der Test-Suite-3-mal aufgerufen wurde. Aber was passiert später mit dem Test? Warum fällt es?
Kann mir jemand sagen, ob es eine Möglichkeit gibt, die Arbeit der JUnit zu protokollieren?
Welche Version von IntelliJ verwenden Sie? –
Ihr Code funktioniert gut für mich in Eclipse Oxygen 4.7.1a. Es ist also nichts falsch mit dem Setup oder JUnit Jupiter. Daher ist es wahrscheinlich ein Problem mit der von Ihnen verwendeten Version von IntelliJ. –
@SamBrannen danke für die Aufklärung! Ich benutze 'IntelliJ IDEA 2017.2.5 Build # IU-172.4343.14, gebaut am 26. September 2017' mit 'JRE: 1.8.0_152-release-915-b12 amd64; JVM: OpenJDK 64-Bit Server VM von JetBrains sro' – Woland