When upgrading from Surefire 2.6 to Surefire 2.13, I get a TypeNotPresentExceptionProxy
when running 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 inspects 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)
It seems like Surefire isn't finding the SpringJUnit4ClassRunner
class. I'm not sure why since under Surefire 2.6, the tests run fine.
Any ideas?
maven-surefire-plugin
. – Newcastle