我试图使用名为testVar的系统属性的不同值多次执行下面的插件。我的pom.xml中有以下插件:
<插件> <&的groupId GT;有机….
你有几个 execution maven-surefire-plugin配置中的标签,即目标 test 在默认阶段执行多次 test 。实际上,您的插件配置会导致 3 测试执行:
execution
test
mvn test 与Maven 3.5.4:
mvn test
------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.example.app.ExampleTest getProperty:null Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.078 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-surefire-plugin:2.14.1:test (before-run) @ app --- [INFO] ... ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.example.app.ExampleTest getProperty:aaa Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.078 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-surefire-plugin:2.14.1:test (main-run) @ app --- [INFO] ... ------------------------------------------------------- T E S T S ------------------------------------------------------- Running com.example.app.ExampleTest getProperty:bbb Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.078 sec Results : Tests run: 1, Failures: 0, Errors: 0, Skipped: 0 [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------
考虑重写 default-test 执行以便正确应用您的配置。例:
default-test
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.14.1</version> <executions> <execution> <id>before-run</id> ... </execution> <execution> <id>default-test</id> ... </execution> </executions>
您正在以错误的方式使用系统属性。您可以在下面查看如何使用。
https://maven.apache.org/surefire/maven-surefire-plugin/examples/system-properties.html
请看一个例子:
<systemPropertyVariables> <!-- Appium's VM Variables --> <target>${target}</target> <mobile>${mobile}</mobile> <deviceType>${deviceType}</deviceType> </systemPropertyVariables>
无需多次 的 systemPropertyVariables 强> 标签。我不知道 的 执行 强> tag可以在maven surefire插件中使用。
现在用来访问系统属性。
System.getProperty("target"); System.getProperty("mobile"); System.getProperty("deviceType");
如何在Maven命令中使用
mvn test -Dtarget=Native -Dmobile=Android -DdeviceType=RealDevice
希望它能解决你的问题。