如何将JUnit结果添加到Tycho Built JAR

时间:2017-09-25 05:50:31

标签: maven tycho

我们正在使用Maven,有时使用Tycho,我想将JUnit测试的结果放入生成的JAR中。

使用Maven,这很容易。我刚刚将以下内容添加到 pom.xml

<resources>
    <resource>
        <directory>target/</directory>
        <includes>
            <include>surefire-reports/*.*</include>
        </includes>
    </resource>
</resources>

test阶段在package阶段之前,所以一切都很顺利。

然而,对于Tycho,测试在package阶段之后执行(因为它们由于某种原因在verify阶段执行)。阶段也不能改变(参见bug 440094)。

所以唯一的选择是在verify阶段后构建另一个JAR:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>3.0.2</version>
    <executions>
        <execution>
            <phase>post-integration-test</phase>
            <goals>
                <goal>jar</goal>
            </goals>
            <configuration>
                <classifier>verification-doc</classifier>
                <includes>
                    <include>**/surefire-reports/*.*</include>
                </includes>
            </configuration>
        </execution>
    </executions>
</plugin>

然而,它不起作用。文件夹和文件都没有添加。我的猜测是因为include标记指向源文件夹,所以我尝试了:

<include>${project.build.outputDirectory}/../surefire-reports/*.*</include>
<include>${project.build.directory}/surefire-reports/*.*</include>

哪个也不起作用?

那么如何将JUnit测试结果添加到Tycho构建的JAR中呢?

1 个答案:

答案 0 :(得分:0)

您可以像这样更改maven-bundle-plugin的目录:

<configuration>
    <classesDirectory>${project.build.directory}</classesDirectory>
    <includes>
        <include>surefire-reports/*</include>
    </includes>
</configuration>