При обновлении с Surefire 2.6 до Surefire 2.13 я получаю 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)
В JUnit4TestChecker
строка 64 выглядит так:
Annotation runWithAnnotation = testClass.getAnnotation( runWith );
Итак, Surefire проверяет аннотацию @RunWith
, чтобы убедиться, что ее тип действителен. Наши тесты используют Spring, поэтому @RunWith
выглядит так в наших тестовых классах:
@RunWith(SpringJUnit4ClassRunner.class)
Кажется, что Surefire не находит класс SpringJUnit4ClassRunner
. Я не уверен, почему, поскольку в Surefire 2.6 тесты проходят нормально.
Любые идеи?