我已阅读here有关使用Surefire插件进行单元测试以及使用Failsafe插件进行集成测试的信息,但我仍然不清楚POM应如何在包含父模块和多个子模块的Maven项目中查看,每个都有自己的POM文件。
问题:
答案 0 :(得分:2)
Apache Stanbol项目使用surefire插件进行单元测试和集成测试。它可以是一个很好的例子。
以下是链接:parent module,integration-tests以及Stanbol的其中一个组件,它有自己的单元测试factstore。
答案 1 :(得分:1)
请参阅我对问题的回答:How can I switch between two test suites in Maven 2? 我更喜欢maven模块 - 非常容易实现,你不需要了解其他插件。
如果您使用testng,则可以在父pom中定义(仅限一个地方):
<profile>
<id>normal</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<excludedGroups>integration</excludedGroups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>integration</id>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<includedGroups>integration</includedGroups>
</configuration>
</plugin>
</plugins>
</build>
</profile>
通过以下方式注释所有集成测试:
@Test(groups="integration")
如果您使用junit,请参阅Category
您通过mvn clean install
mvn -Pintegration clean install
集成测试运行正常测试