使用Maven神火包含在相关性JAR运行JUnit测试使用Maven神火包含在相关性JAR运行JUn

2019-05-13 23:03发布

我在我的Maven仓库一罐包含JUnit测试,应在不同的项目中运行,因为它能够检查项目和测试它的某些功能。 Unforunately神火不拿起包含在一个罐子里测试,该功能要求表演 。

在功能要求,他们提出要解压到被再由神火执行的罐子。

我成功地解开使用Maven的依赖,插件的jar,但所包含的测试没有执行呢。 这是我如何配置Maven的依赖,插件解压我的罐子:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>unpack</id>
            <phase>process-test-classes</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>de.mwx.test</groupId>
                        <artifactId>selenium-test-base</artifactId>
                        <version>0.1</version>
                        <overWrite>true</overWrite>
                          <outputDirectory>
                              ${project.build.directory}/classes
                          </outputDirectory>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>

任何帮助将appriciated。

Answer 1:

还有就是从另一个罐子运行Maven中测试的新方法。 从Maven的万无一失,插件2.15版本,你可以告诉Maven来扫描你的测试罐子测试和运行它们。 你并不需要提取测试罐子。 只需添加一个依赖于你的测试瓶子和:

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.15</version>
        <configuration>
            <dependenciesToScan>
                <dependency>test.jar.group:test.jar.artifact.id</dependency>
            </dependenciesToScan>
        </configuration>
    </plugin>

从把这个东西https://gist.github.com/aslakknutsen/4520226而https://issues.apache.org/jira/browse/SUREFIRE-569



Answer 2:

(这只是重申的是,从上述khmarbaise评论,但因为它是没有澄清,我认为这是值得重申的):

使用测试类目录,而不是类文件夹输出目录:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <executions>
        <execution>
            <id>unpack</id>
            <phase>process-test-classes</phase>
            <goals>
                <goal>unpack</goal>
            </goals>
            <configuration>
                <artifactItems>
                    <artifactItem>
                        <groupId>de.mwx.test</groupId>
                        <artifactId>selenium-test-base</artifactId>
                        <version>0.1</version>
                        <overWrite>true</overWrite>
                          <outputDirectory>
                              ${project.build.directory}/test-classes
                          </outputDirectory>
                    </artifactItem>
                </artifactItems>
            </configuration>
        </execution>
    </executions>
</plugin>


Answer 3:

正如描述的问题,你需要有一个套件,它是包含在你的项目,该项目并不位于试验瓶。



文章来源: Run JUnit Tests contained in dependency jar using Maven Surefire