Maven:如何在第三个模块中使用相同的测试来测试两个模块

Jur*_*ass 4 java maven-2 unit-testing

想象一个maven项目,每个模块有3个模块,一个接口模块和两个不同的接口实现.我可以在自己的模块中测试每个实现,但由于相同的接口,测试用例基本相同.

有没有办法在第四个maven模块中收集测试用例并使用此模块测试这两个实现?

parent
|-interface
|-impl a
|-impl b
|-tests
Run Code Online (Sandbox Code Playgroud)

因此,如果我构建impl a,maven知道从测试模块运行测试以对抗构建.

谢谢.

Rom*_*las 5

关于Java:

如何abstract在测试模块中创建测试,您将在其中编写主要测试用例.此测试将使用测试中第一个模块中定义的接口.

然后,每个模块中impl aimpl b,您创建一个扩展的测试abstract试验,并调用中定义的测试方法tests模块.

关于Maven:

tests模块中,您必须向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>
Run Code Online (Sandbox Code Playgroud)

然后,在每个实现模块中,您必须指示您对此test-jar库具有依赖性:

    <dependency>
        <groupId>foo</groupId>
        <artifactId>bar</artifactId>
        <version>${pom.version}</version>
        <type>test-jar</type>
        <scope>test</scope>
    </dependency>
Run Code Online (Sandbox Code Playgroud)