在Maven and Integration Testing页面上显示:
未来有传言称Maven的未来版本将支持 比如集成测试阶段的src / it / java之类的东西 在测试阶段到src / test / java。
但那是在2011-12-11。这件事发生了吗?
在this answer到"Run maven test not in default src/test/java folder"中,它提到设置<testSourceDirectory>
,他们的某种方式只是为了集成测试(即integration-test
阶段)?
我希望使用Maven FailSafe plugin并避免重命名一堆集成测试或使用仍然是实验性的JUnit @Categories
。
答案 0 :(得分:17)
您可以将IT'ss放入不同的文件夹中:
.
|-- pom.xml
`-- src
|-- it
| `-- java
| `-- com
| `-- soebes
| `-- maui
| `-- it
| `-- BitMaskIT.java
|-- main
| `-- java
| `-- com
| `-- soebes
| `-- maui
| `-- it
| `-- BitMask.java
`-- test
`-- java
`-- com
`-- soebes
`-- maui
`-- it
`-- BitMaskTest.java
需要以下内容来使编译器知道文件夹等。
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<id>add-test-source</id>
<phase>process-resources</phase>
<goals>
<goal>add-test-source</goal>
</goals>
<configuration>
<sources>
<source>src/it/java</source>
</sources>
</configuration>
</execution>
</executions>
</plugin>
真正运行IT需要以下内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-failsafe-plugin</artifactId>
<version>2.15</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>
这意味着您可以在同一模块中进行集成,其缺点是运行集成测试使用与单元测试相同的资源。更好的解决方案是创建一个单独的maven模块,您可以将集成测试放入常用文件夹src/test/java
等,并且只配置maven-failsafe-plugin。