与另外两个项目分开的独立maven测试项目

时间:2014-06-11 08:43:22

标签: maven

我有一个项目分为两个项目。原始项目,我们称之为 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 运行测试

1 个答案:

答案 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>

我刚刚在另一篇文章中读到了这篇文章,它似乎对你有好处..

如果一切都清楚,请告诉我......