我想用2个不同的配置文件运行我的测试,每个配置文件都会导致我的scala测试代码以不同的方式执行。
我尝试配置maven-surefire和maven-scalatest插件:
<plugin>
<groupId>org.scalatest</groupId>
<artifactId>scalatest-maven-plugin</artifactId>
<version>1.0</version>
<configuration>
<systemProperties>
<spark.master>local</spark.master>
</systemProperties>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<configuration>
<systemPropertyVariables>
<spark.master>local</spark.master>
</systemPropertyVariables>
</configuration>
</plugin>
但看起来它们不起作用,在执行System.getProperty(“spark.master”)时,结果仍然为null。我该怎么做才能启用此设置?
// --------------------------------------------- -
对第一个答案的回应:
我已将surefire配置更改为以下内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<executions>
<execution>
<id>test</id>
<goals>
<goal>test</goal>
</goals>
<systemPropertyVariables>
<spark.master>${spark.master}</spark.master>
</systemPropertyVariables>
</execution>
</executions>
<configuration>
<forkCount>1</forkCount>
</configuration>
</plugin>
但显然是在错误的地方。 Maven给了我这个错误:
[ERROR] Malformed POM /home/peng/git/datapassport/pom.xml: Unrecognised tag: 'systemPropertyVariables' (position: START_TAG seen ...</goals>\n <systemPropertyVariables>... @170:50) @ /home/peng/git/datapassport/pom.xml, line 170, column 50 -> [Help 2]
答案 0 :(得分:1)
(a)如果您使用JUnit - 将其版本升级到4.7或更高版本并指定显式提供程序:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.18.1</version>
<dependencies>
<dependency>
<groupId>org.apache.maven.surefire</groupId>
<artifactId>surefire-junit47</artifactId>
<version>2.18.1</version>
</dependency>
</dependencies>
(b)在surefire插件配置中指定
<forkCount>1</forkCount>
(c)使用plugun的执行maven机制来运行两个不同的配置文件
<executions>
<execution>
<id>tests-1</id>
<goals><goal>test</goal></goals>
<configuration>
<systemProperyVariables ... />
</configuration>
</execution>
<execution>
<id>tests-2</id>
<goals><goal>test</goal></goals>
<configuration>
<systemProperyVariables ... />
</configuration>
</execution>