When upgrading from Surefire 2.6 to Surefire 2.13, I get TypeNotPresentExceptionProxy when I run my unit tests.
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 line 64 looks like this:
Annotation runWithAnnotation = testClass.getAnnotation( runWith );
So, Surefire checks the @RunWith annotation to make sure its type is valid. Our tests use Spring, so @RunWith looks like this in our test classes:
@RunWith(SpringJUnit4ClassRunner.class)
Surefire does not seem to find the SpringJUnit4ClassRunner class. I'm not sure why, since in Surefire 2.6, tests pass fine.
Any ideas?
java maven exception junit surefire
gangsta Feb 01 '13 at 23:02 2013-02-01 23:02
source share