小编gan*_*sta的帖子

TypeNotPresentExceptionProxy

从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)
Run Code Online (Sandbox Code Playgroud)

JUnit4TestChecker,第64行看起来像这样:

Annotation runWithAnnotation = testClass.getAnnotation( runWith );
Run Code Online (Sandbox Code Playgroud)

所以Surefire检查@RunWith注释以确保其类型有效.我们的测试使用Spring,所以@RunWith在我们的测试类中看起来像这样:

@RunWith(SpringJUnit4ClassRunner.class)
Run Code Online (Sandbox Code Playgroud)

似乎Surefire没有找到这个SpringJUnit4ClassRunner班级.我不确定为什么因为在Surefire 2.6下,测试运行良好.

有任何想法吗?

java junit exception surefire maven

51
推荐指数
1
解决办法
7579
查看次数

占位符如何在Flyway中运作?

我正在评估Flyway在我的项目中使用.我们当前的SQL脚本包含诸如URL之类的占位符,这些URL将根据环境(dev,qa,prod)具有不同的域名.

具体来说,我们可能有INSERT语句

INSERT INTO FEED VALUES ('app.${env.token}.company.org/feed1', 'My Feed');
Run Code Online (Sandbox Code Playgroud)

$ {env.token}需要替换为'dev','qa'或'prod'.

我们有大约50种可能需要在SQL脚本中替换的不同属性.这些属性都驻留在一个或两个属性文件中.

有没有办法运行Flyway Ant迁移任务,以便从属性文件中提取替换标记和值?什么东西沿着Ant过滤器任务?

flyway

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

exception ×1

flyway ×1

java ×1

junit ×1

maven ×1

surefire ×1