独立的maven测试项目,与其他两个项目运行
我有一个分为两个项目的项目。最初的项目,我们称之为project-java6,还有一个新项目,我们称之为project-java8。我需要发布两个工件,一个用于Java6/7用户,一个用于Java8用户 这两个项目是“相同”的,因为Project-java6只是简单地复制到Project-java8,Project-java8中的代码实现了现代化(正如预期的那样,使用了java8构造)。目前,两个项目都有相同的单元测试。Project-java6和Project-java8的“API”是相同的,所以我想把单元测试分开,这样我就不会在两个地方不断更新相同的代码了(这在两个项目中已经足够多了) 因此,我想要如下结构:独立的maven测试项目,与其他两个项目运行,maven,Maven,我有一个分为两个项目的项目。最初的项目,我们称之为project-java6,还有一个新项目,我们称之为project-java8。我需要发布两个工件,一个用于Java6/7用户,一个用于Java8用户 这两个项目是“相同”的,因为Project-java6只是简单地复制到Project-java8,Project-java8中的代码实现了现代化(正如预期的那样,使用了java8构造)。目前,两个项目都有相同的单元测试。Project-java6和Project-java8的“API”是相同的,
Project-java6
Project-java8
测验
其中测试是一个“独立”的maven项目。我的挑战(以及这个问题)是:如何让测试同时针对Project-java6和Project-java8运行?也就是说,当构建父pom时,所有三个项目都被构建,测试分别针对Project-java6和Project-java8运行。我希望这能帮助您 您可以在测试模块中创建一个抽象测试,您将在其中编写主要测试用例。此测试将使用测试中第一个模块中定义的接口 然后,在每个模块Project-java6和Project-java8中,创建一个扩展抽象测试的测试,并调用测试模块中定义的测试方法 关于Maven: 在测试模块中,您必须向Maven指示他必须创建测试包的jar:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<goals>
<goal>test-jar</goal>
</goals>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven jar插件
2.3
试验罐
然后,在每个实现模块中,您必须指出您对这个测试jar库有依赖关系:
<dependency>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>${pom.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
福
酒吧
${pom.version}
试验罐
测试
我刚刚在另一篇帖子上读到了这封信,它似乎对你有好处
如果一切都清楚,请告诉我……很清楚,但这也需要相当多的技巧才能实现目标。在java6和java8模块中可能包含许多“测试”,它们扩展了测试模块中定义的抽象测试。在蚂蚁看来,这是微不足道的;也许我应该在ant中完成,然后从maven调用它。