使用命令行更改Maven surefire reportDirectory

时间:2018-07-01 16:16:56

标签: maven testing 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>

但是,我想使用命令行,并且正在尝试这样做:

mvn clean test -Dsurefire.suiteXmlFiles=src\\test\\resources\\api_testng.xml -DreportsDirectory=${project.build.directory}\\apitests\\surefire-reports

但是,它不起作用并将报告保存在通常的../target/surefire-reports文件夹中,也不会引发任何错误。

像这样在maven surefire报告插件中很有可能

mvn surefire-report:report -DoutputDirectory=newpath

有人知道或曾经使用命令行选项在surefire中做到这一点吗?

1 个答案:

答案 0 :(得分:0)

通过-D开关,您可以从CLI覆盖 properties 。因此,定义一个属性并将其用作<reportsDirectory>的值,如下所示:

<properties>
    <surefireReportsDirectory/><!-- Empty means use the default value. -->
</properties>
...
<plugins>
...
<plugin>
    ...
    <artifactId>maven-surefire-plugin</artifactId>
    <configuration>
        <reportsDirectory>${surefireReportsDirectory}</reportsDirectory>
    </configuration>
</plugin>
</plugins>

现在您可以从CLI进行更改:

mvn -DsurefireReportsDirectory=/some/other/dir test