the*_*rar 5 testing maven maven-surefire-plugin
我希望将生成的报告保存到我的每个测试套件的自定义位置(例如,../target/api/surefire-reports、../target/ui/surefire-reports)
我可以通过在 pom.xml 中添加以下行来做到这一点
<configuration>
<reportsDirectory>${project.build.directory}/api/surefire-reports</reportsDirectory>
<suiteXmlFiles>
<suiteXmlFile>src/test/resources/api_testng.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
Run Code Online (Sandbox Code Playgroud)
但是,我想使用命令行,并且正在尝试这个:
mvn clean test -Dsurefire.suiteXmlFiles=src\\test\\resources\\api_testng.xml -DreportsDirectory=${project.build.directory}\\apitests\\surefire-reports
Run Code Online (Sandbox Code Playgroud)
但是,它不起作用并将报告保存在通常的 ../target/surefire-reports 文件夹中,并且也不会抛出任何错误。
这在 maven surefire 报告插件中很有可能,就像这样
mvn surefire-report:report -DoutputDirectory=newpath
Run Code Online (Sandbox Code Playgroud)
有谁知道或已经使用命令行选项在万无一失中做到这一点?
该开关允许您从 CLI-D覆盖属性。因此,定义一个属性并将其用作 的值<reportsDirectory>,如下所示:
<properties>
<surefireReportsDirectory/><!-- Empty means use the default value. -->
</properties>
...
<plugins>
...
<plugin>
...
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<reportsDirectory>${surefireReportsDirectory}</reportsDirectory>
</configuration>
</plugin>
</plugins>
Run Code Online (Sandbox Code Playgroud)
现在您可以从 CLI 更改它:
mvn -DsurefireReportsDirectory=/some/other/dir test
Run Code Online (Sandbox Code Playgroud)