JUnit 4: wie erstelle ich eine suite suites?
Ausführen der junit unten wirft eine exception.
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
import com.prosveta.backend.daoimpl.AllDaoImplTests;
/**
* Short desc.
*
* Longer desc.
*
* @author Jean-Pierre Schnyder
*
*/
@RunWith(Suite.class)
@SuiteClasses({AllDaoImplTests.class,AllServiceImplTests.class})
public class AllBackendTests {
}
Stack-trace
java.lang.ArrayStoreException: sun.reflect.annotation.TypeNotPresentExceptionProxy
at sun.reflect.annotation.AnnotationParser.parseClassArray(AnnotationParser.java:653)
at sun.reflect.annotation.AnnotationParser.parseArray(AnnotationParser.java:460)
at sun.reflect.annotation.AnnotationParser.parseMemberValue(AnnotationParser.java:286)
at sun.reflect.annotation.AnnotationParser.parseAnnotation(AnnotationParser.java:222)
at sun.reflect.annotation.AnnotationParser.parseAnnotations2(AnnotationParser.java:69)
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:52)
at java.lang.Class.initAnnotationsIfNecessary(Class.java:3070)
at java.lang.Class.getAnnotations(Class.java:3050)
at org.junit.runner.Description.createSuiteDescription(Description.java:72)
at org.junit.internal.runners.ErrorReportingRunner.getDescription(ErrorReportingRunner.java:25)
at org.junit.runner.Runner.testCount(Runner.java:38)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestClassReference.countTestCases(JUnit4TestClassReference.java:30)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.countTests(RemoteTestRunner.java:487)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:455)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Danke für deine Antwort !
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich endlich einen Weg gefunden, das zu tun, was ich erreichen wollte mit dem ausführen eines junit-suite 4 Suiten, d.h. laufen alle tests in allen Modulen der multimodule-Projekt. Um das zu tun, verwenden Sie die Johannes Link ClassPathSuite tool.
Laden Sie die jar, installieren Sie es in Ihrem maven-repo, erstellen Sie eine allTests Projekt, das hängt von deinen anderen Projekten, wo Ihr junits befinden, und erstellen Sie eine AllTestClass. Hier sind einige code-und scn-capture zur Veranschaulichung der Lösung:
Installieren Sie das Glas in Ihren maven-repo
Erstellen Sie eine allTests Projekt
die pom ...
Hinzufügen von Abhängigkeiten in Eclipse ...
und hier ist das alle tests der Klasse
dem Sie gerade "ausführen als JUnit".
Wenn Sie eclipse verwenden, Eigenschaften von Projekt (Rechtsklick auf Projekt) /Java Build Path /Projekt /....Fügen Sie Ihre Test-Projekte..und wieder laufen 🙂
Diese Ausnahme ist in der Regel ausgelöst, wenn der test verwendet eine Klasse ist nicht im classpath. Nur stellen Sie sicher, dass der classpath richtig eingestellt ist.
Ich hatte das gleiche problem, als ich versuchte, führen Sie einige tests mit spring framework.
Wenn Sie arbeiten auf einem Maven-Projekt, versuchen Sie diese Abhängigkeit:
Dies ist meine gesamte pom.xml
Diese Konfiguration ordnungsgemäß funktioniert für mich.