我正在使用带有 surefire 插件的 Maven 来运行我的测试。我有几个不同的测试,并且为了运行所有我使用相同的 POM。目前一切正常,但现在我有两个不同的属性文件来获取我的测试用例的一些条目,所以我想为这两个不同的属性一个接一个地运行所有这些测试用例。我的意思是我想为它使用两个不同的测试套件,那么我该如何管理 POM 呢?任何帮助将不胜感激..!!!
使用 - JDK 1.6 和 Maven 3.1
如果您可以一个接一个地启动两个 Maven 构建,那么请尝试以下操作:
<execution>
<id>integration-test</id>
<phase>integration-test</phase>
<goals>
<goal>integration-test</goal>
<goal>verify</goal>
</goals>
<configuration>
<excludes>
<exclude>**/test/**${dontUse}.properties</exclude>
</excludes>
<includes>
<include>**/test/**${use}.properties</include>
</includes>
</configuration>
</execution>
并将 dontUse 和 use 作为参数传递给 maven。或者您可以定义两个配置文件——一个包含第一个,一个包含另一个属性文件——然后使用这两个配置文件开始构建。编辑:使用一个类加载属性文件,您可以在其中检查文件是否存在。无论是第一个还是第二个。像这样的东西:
public Properties load() {
Properties prop = new Properties();
try {
InputStream in;
in = getClass().getResourceAsStream("first.properties");
if (in == null)
in = getClass().getResourceAsStream("second.properties");
prop.load(in);
in.close();
return prop;
} catch (Exception e) {
e.printStackTrace();
}
return prop;
}
为什么不使用标准:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.14.1</version>
<configuration>
<suiteXmlFiles>
<suiteXmlFile>suite1.xml</suiteXmlFile>
<suiteXmlFile>suite2.xml</suiteXmlFile>
</suiteXmlFiles>
</configuration>
</plugin>