我有一个项目分为两个项目。原始项目,我们称之为 Project-java6 ,以及一个新项目,我们称之为 Project-java8 。我需要发布两个工件,一个用于Java 6/7用户,另一个用于Java 8用户。
这两个项目是相同的",其中 Project-java6 只是复制到 Project-java8 和 Project中的代码-java8 现代化(正如预期的那样,使用Java 8构造)。目前,两个项目都有相同的单元测试。 " API" Project-java6 和 Project-java8 是完全相同的,所以我想将单元测试分开,所以我不会在两个地方不断更新相同的代码(两个项目已经足够了)。
所以,我想要以下结构:
Project-java6
Project-java8
Tests
其中测试是一个独立的" maven项目。我的挑战(也就是这个问题)是:如何让测试对 Project-java6 和 Project-java8 进行运行?这意味着,当构建父 pom时,将构建所有三个项目,并分别针对 Project-java6 和 Project-java8 运行测试
答案 0 :(得分:1)
我希望这可以帮助你...
您可以在测试模块中创建抽象测试,您将在其中编写主要测试用例。此测试将使用测试中第一个模块中定义的接口。
然后,在每个模块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>
然后,在每个实现模块中,您必须指示您对此test-jar库具有依赖性:
<dependency>
<groupId>foo</groupId>
<artifactId>bar</artifactId>
<version>${pom.version}</version>
<type>test-jar</type>
<scope>test</scope>
</dependency>
我刚刚在另一篇文章中读到了这篇文章,它似乎对你有好处..
如果一切都清楚,请告诉我......