当我将 属性添加到surefire插件配置[duplicate]

问题描述 投票:0回答:1

我正在处理一些旧的旧代码来修复Junit,而这样做却遇到了问题。

以前在pom.xml中有一个类似下面的插件配置

             <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <forkMode combine.self="override">pertest</forkMode>
                </configuration>
            </plugin>

通过上述配置,在成功构建mvn test之后,我可以在/ target / site文件夹中看到jacoco覆盖文件

但是为了解决一些问题,我在上面的配置中添加了一个argLine,如下所示

         <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <configuration>
                <forkMode combine.self="override">pertest</forkMode>
                <argLine>-Djava.security.egd=file:/dev/./urandom</argLine>
            </configuration>
        </plugin>

添加此选项后,mvn test之后在目标目录中没有看到任何覆盖率文件。有人可以告诉原因吗?

maven pom.xml jacoco maven-surefire-plugin jacoco-maven-plugin
1个回答
1
投票

我假设您的pom.xml还包含一些jacoco-maven-plugin配置?

该插件使用argLine属性将jacoco代理传递给surefire和failsafe插件。如果您将自己的内容添加到surefire插件中,那么您将覆盖由jacoco插件在prepare-agent目标中创建的内容。

docs描述了一些解决方案。

((使用argLine作为属性或使用最新的评估语法)

如果您觉得实验性,可以配置用于设置jacoco选项的属性名称,请参见propertyName config。因此,您也可以将该属性添加到surefire参数中。但是上面的两个选项应该更简单。

© www.soinside.com 2019 - 2024. All rights reserved.