在通过 Maven 执行 Citrus 集成测试时是否可以传递像 citrus xml 文件名模式这样的环境变量

while executing Citrus integration tests through maven is it possible to pass environmental variables like citrus xml file name pattern

我有集成测试 class,它在特定文件夹中执行 xml 个测试用例 我正在执行 xml 个像这样的测试用例

mvn integration-test -Dtest=test name 

我想在执行上面的 maven 命令时传递 citrus xml 文件名模式我如何传递它假设 citrus 默认采用 //*IT.xml 或 //*Test.xml 我想更改模式名称,例如 *something.xml 我想通过 maven 命令实现此目的。

您需要在 Maven failsafe 插件中设置 属性(如果您使用此插件,则一定会成功):

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-failsafe-plugin</artifactId>
  <version>${failsafe.plugin.version}</version>
  <configuration>
    <systemProperties>
      <citrus.xml.file.name.pattern>**/*Foo.xml</citrus.xml.file.name.pattern>
    </systemProperties>
  </configuration>
  ...
</plugin>

如果您想将此参数设置为 Maven 命令行参数,您还需要引入一个新项目 属性:

<properties>
  <filename.pattern>**/*Foo.xml</filename-pattern>
</properties>

...

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-failsafe-plugin</artifactId>
  <version>${failsafe.plugin.version}</version>
  <configuration>
    <systemProperties>
      <citrus.xml.file.name.pattern>${filename.pattern}</citrus.xml.file.name.pattern>
    </systemProperties>
  </configuration>
  ...
</plugin>

现在可以打电话了

mvn integration-test -Dfilename.pattern=**/*Something.xml