在POM中测试多模块Maven项目的内容

时间:2012-03-08 15:54:48

标签: maven unit-testing integration-testing surefire maven-failsafe-plugin

我已阅读here有关使用Surefire插件进行单元测试以及使用Failsafe插件进行集成测试的信息,但我仍然不清楚POM应如何在包含父模块和多个子模块的Maven项目中查看,每个都有自己的POM文件。

问题

  • 有没有人在每个模块中实现集成测试和单元测试?
  • 如果是这样,你会非常友好地展示你的POM,所以我有一个良好的工作配置的例子吗?

2 个答案:

答案 0 :(得分:2)

Apache Stanbol项目使用surefire插件进行单元测试和集成测试。它可以是一个很好的例子。

以下是链接:parent moduleintegration-tests以及Stanbol的其中一个组件,它有自己的单元测试factstore

答案 1 :(得分:1)

请参阅我对问题的回答:How can I switch between two test suites in Maven 2? 我更喜欢maven模块 - 非常容易实现,你不需要了解其他插件。

如果您使用,则可以在父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集成测试运行正常测试