2013-02-01 11 views
48

Beim Upgrade von Surefire 2.6 auf Surefire 2.13 erhalte ich einen TypeNotPresentExceptionProxy beim Ausführen meiner Komponententests.TypeNotPresentExceptionProxy

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.getAnnotation(Class.java:3029) 
    at org.apache.maven.surefire.common.junit4.JUnit4TestChecker.isValidJUnit4Test(JUnit4TestChecker.java:64) 

In JUnit4TestChecker, Zeile 64 sieht wie folgt aus:

Annotation runWithAnnotation = testClass.getAnnotation(runWith); 

So todsichere die @RunWith Anmerkung prüft seine Art, um sicherzustellen, gültig ist. Unsere Tests verwenden Spring, so @RunWith wie dies in unserer Testklasse aus:

@RunWith(SpringJUnit4ClassRunner.class) 

Es scheint, wie todsichere ist nicht die SpringJUnit4ClassRunner Klasse zu finden. Ich bin mir nicht sicher, warum die Tests unter Surefire 2.6 gut laufen.

Irgendwelche Ideen?

+1

Klingt wie ein Fehler. Kannst du bitte einen [Fehlerbericht] (http://jira.codehaus.org/browse/SUREFIRE) erstellen, wenn es noch keinen gibt. –

+1

Danke für Ihre Eingabe. Ich werde versuchen, ein neues, einfacheres Projekt zu erstellen, das dasselbe Problem aufzeigt. Dann öffne einen Fehlerbericht. – gangsta

+5

Haben Sie in der Zwischenzeit eine neuere Version überprüft, weil wir bei 2.18.1 sind? – khmarbaise

Antwort

2

Run mvn Abhängigkeit: beheben

jede 3.x-Version von JUnit ausschließen, die in eingeschlichen haben können

Achten Sie darauf, keine TestNG Abhängigkeiten sind, wenn es es TestNG Annotationen geladen werden kann und nicht die. JUnit diejenigen, die Sie brauchen.