如何让maven cobertura和surefire插件一起工作?

发布于 2025-01-06 19:16:06 字数 1252 浏览 0 评论 0原文

我将 Surefire 和 cobertura 插件放入我的 pom.xml 中,但我无法将它们配置为正常工作。或者 cobertura 不运行或者测试执行两次。

那么,我如何配置这些插件,让它们一起运行并且只运行一次呢?

如果我以这种方式配置,cobertura 不会运行:

<plugin>
<groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
</plugin>

如果我以这种方式配置,测试将执行两次:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <version>2.5.1</version>
    <executions>
        <execution>
            <phase>test</phase>
            <goals>
                <goal>cobertura</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
</plugin>

I put the surefire and cobertura plugins in my pom.xml, but I can't configure them to work fine. Or cobertura doesn't run or the tests are executes twice.

So, how could I configure the plugins for they run together and just one time?

If I configure in this way, cobertura doesn't run:

<plugin>
<groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
<version>2.5.1</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
</plugin>

If I configure in this way, the tests are executes twice:

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>cobertura-maven-plugin</artifactId>
    <version>2.5.1</version>
    <executions>
        <execution>
            <phase>test</phase>
            <goals>
                <goal>cobertura</goal>
            </goals>
        </execution>
    </executions>
</plugin>
<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-surefire-plugin</artifactId>
    <version>2.12</version>
</plugin>

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

墟烟 2025-01-13 19:16:06

测试将运行两次 - 就是这样。请参阅Samuel的评论使用maven运行junits和cobertura

The tests will run twice - it is just the way it is. See Samuel's comment running junits and cobertura with maven

能怎样 2025-01-13 19:16:06

这就是我如何让它在 cobertura 打开和 Surefire 关闭的情况下进行测试。
将其添加到您的 pom 中,或放入 -DuseSystemClassLoader=false 的 mvn 选项

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <useSystemClassLoader>false</useSystemClassLoader>
                <testFailureIgnore>true</testFailureIgnore>
            </configuration>
        </plugin>

This is how I got it to work for tests with cobertura on and surefire off.
Add this to your pom, or put in mvn options for -DuseSystemClassLoader=false

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.19.1</version>
            <configuration>
                <useSystemClassLoader>false</useSystemClassLoader>
                <testFailureIgnore>true</testFailureIgnore>
            </configuration>
        </plugin>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文