2

我试图将一个虚拟机参数传递给Maven,特别是一套由失败保护运行的测试。虚拟机参数与maven-failsafe插件

我的pom.xml看起来是这样的:

... 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-failsafe-plugin</artifactId> 
    <configuration> 
    <argLine>-Dtest.data=true</argLine> 
    </configuration> 
    <version>2.7.2</version> 
    <executions> 
    <execution> 
     <id>integration-test</id> 
     <goals> 
     <goal>integration-test</goal> 
     </goals> 
    </execution> 
    <execution> 
     <id>verify</id> 
     <goals> 
     <goal>verify</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 
... 

当我运行依赖于test.data命令mvn clean verify测试被设置为true失败了。但是,当我运行命令mvn -Dtest.data=true clean verify时,测试全部通过。我需要在我的CI环境中为pom设置参数。

我失去了一些东西在这里?

由于提前,

皮特

+0

第一个建议是更新到Maven-FailSafe-Plugin 2.8。你是否要求JVM? – khmarbaise 2011-04-06 16:25:45

+0

我已更新到2.8,仍然无法正常工作。我如何知道我是否分叉JVM?我不相信我。 – Caps 2011-04-07 09:28:00

+0

默认说你是分叉的。 – khmarbaise 2011-04-07 12:08:34

回答

0

好吧,事实证明,我试图运行的集成测试需要将此参数传递给Tomcat插件而不是Failsafe插件。谢谢你们的帮助!

+0

我看到同样的问题,但因为我不是使用Tomcat我无法通过这种方式修复它。 Finnaly我调整了我的Jenkins作业,并在Build部分指定: clean test -Dsun.net.http.allowRestrictedHeaders = true – Maksim 2016-07-15 15:25:17

2

使用<systemPropertyVariables>元素to set system properties(我看不出<argLine>的文档,你在哪里找到它提到?):

<configuration> 
    <systemPropertyVariables> 
     <test.data>true</test.data> 
    </systemPropertyVariables> 
</configuration> 
+0

我试过这个,但仍然无法正常工作。 在源代码中,但我没有检查文档。 – Caps 2011-04-07 09:28:54

+0

这里是maven-failsafe-plugin的文档:http://maven.apache.org/plugins/maven-failsafe-plugin/integration-test-mojo.html – khmarbaise 2011-04-07 12:08:13