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

How to Add JUnit Results to Tycho Built JAR

我们使用 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 中?

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

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