我试图改变输出文件夹的XML文件得到生成的surefire插件在一个maven项目。我在report-plugin和maven-site-plugin(在documentation中提到)的配置括号中声明了目标输出文件夹。我还尝试在报告块中声明maven-site-plugin,但似乎不起作用。我的XML文件总是被写入默认的surefire-reports文件夹。
我的pom.xml
有以下条目:
<reporting>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-report-plugin</artifactId>
<version>2.22.0</version>
<configuration>
<showSuccess>true</showSuccess>
<outputDirectory>${basedir}/pb-reporting/test-output</outputDirectory>
<!--<skipSurefireReport>true</skipSurefireReport>-->
</configuration>
</plugin>
</plugins>
</reporting>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<!--<executable>/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.95-2.6.4.0.el7_2.x86_64/bin/javac</executable>-->
<compilerArguments>
<endorseddirs>${endorsed.dir}</endorseddirs>
</compilerArguments>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-site-plugin</artifactId>
<version>3.7.1</version>
<configuration>
<outputDirectory>${basedir}/pb-reporting/test-output</outputDirectory>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.0</version>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
</plugins>
</build>
项目层次结构如下所示:
3条答案
按热度按时间mec1mxoz1#
在surefire-reports-plugin和maven-site-plugin中配置输出目录是不够的。解决方案是在构建块中的maven-surefire-plugin中声明reportsDirectory:
3qpi33ja2#
根据文档,您必须使用reportsDirectory而不是不存在的
outputDirectory
。qq24tv8q3#
如果你可以在你的pom.xml中硬编码你的报表输出目录,这绝对足够了:
但是,如果您需要动态设置您的报告输出目录,例如在CI/CD管道中使用bash命令,您可以执行以下操作。
1.在pom. xml文件中使用占位符配置
maven-surefire-plugin
的reportsDirectory选项:1.在执行
mvn test
之前,请将pom.xml
文件中的占位符替换为所需的报告输出目录。这个例子适用于类unix shell,例如:bash
。这里我将
<reportsDirectory>set-in-pipeline</reportsDirectory>
替换为<reportsDirectory>${project.basedir}/desiredReportsOutputDirectory</reportsDirectory>
。我使用
=
作为sed
命令的扩展,如this Stackoverflow question所示。备注:
-DreportsDirectory
=>设置reportsDirectory变量并没有改变它,但是产生了一个警告,说这个变量是read-only
mvn surefire-report:report -DoutputDirectory=newpath