当前位置: 首页 > 知识库问答 >
问题:

Surefire 2.22.2在删除提供程序依赖项后找不到junit测试

慎建本
2023-03-14

第一次发帖!我已经试着翻阅了所有关于surefire问题的其他帖子,但没有任何效果,所以任何帮助都将非常感谢。

我目前正在尝试处理我的项目中的“junit-platform-surefire-provider has been deprecated”警告。surefire的2.22.2版本正在使用,我们项目中的所有junit jupiter测试都在该版本中找到。

警告:junit-platform-surefire-provider已被弃用,并计划在JUnit platform1.4中删除。请改用Maven Surefire>=2.22.0中的内置支持。https://junit.org/junit5/docs/current/user-guide/#running-tests-build-maven

发现55项测试的测试结果

当我试图从插件中删除junit-platform-surefire-provider和jupiter-engine依赖项时,出现了这个问题。

        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>2.22.2</version>
            <dependencies>
                <dependency>
                    <groupId>org.junit.platform</groupId>
                    <artifactId>junit-platform-surefire-provider</artifactId>
                    <version>1.3.2</version>
                </dependency>

                <dependency>
                    <groupId>org.junit.jupiter</groupId>
                    <artifactId>junit-jupiter-engine</artifactId>
                    <version>${junit-jupiter.version}</version>
                </dependency>
            </dependencies>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-failsafe-plugin</artifactId>
            <version>2.22.2</version>
        </plugin>

这个提供程序将被弃用,我正试图摆脱它。我遵循https://junit.org/junit5/docs/current/user-guide/#running-tests-build-maven的文档,尝试使用Maven Surefire中的内置支持。除了删除这两个依赖项之外,我还在POM文件的部分中添加了以下两个依赖项。

<dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-api</artifactId>
        <version>5.6.2</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>org.junit.jupiter</groupId>
        <artifactId>junit-jupiter-engine</artifactId>
        <version>5.6.2</version>
        <scope>test</scope>
    </dependency>

一旦我这样做了,构建将完成,但它不再找到任何测试。

没有找到任何测试的测试结果

是不是我漏了什么?

共有1个答案

贝浩歌
2023-03-14

我遇到了一个类似的问题,我需要用JUnit5运行JUnit4.12测试。在添加JUnit5测试之后,我得到了下一个错误:

[INFO]  T E S T S 16:28:24 [INFO]
------------------------------------------------------- 
16:28:26 [INFO]  
16:28:26 [INFO] Results: 
16:28:26 [INFO]  
16:28:26 [INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 
16:28:26 [INFO]  
16:28:26 [INFO]
------------------------------------------------------------------------ 
16:28:26 [INFO] BUILD SUCCESS 
16:28:26 [INFO]
------------------------------------------------------------------------

我读到了

<dependency>
    <groupId>org.junit.platform</groupId>
    <artifactId>junit-platform-surefire-provider</artifactId>
    <version>1.3.2</version>
</dependency>

我可以解决我的问题,但当我尝试运行我的测试时,我收到了下一条消息

 [INFO]  T E S T S
    16:12:57 [INFO] -------------------------------------------------------
    16:12:58 
    16:12:58  +-------------------------------------------------------------------------------+
    16:12:58  | WARNING:                                                                      |
    16:12:58  | The junit-platform-surefire-provider has been deprecated and is scheduled to  |
    16:12:58  | be removed in JUnit Platform 1.4. Please use the built-in support in Maven    |
    16:12:58  | Surefire >= 2.22.0 instead.                                                   |
    16:12:58  | » https://junit.org/junit5/docs/current/user-guide/#running-tests-build-maven |
    16:12:58  +-------------------------------------------------------------------------------+
    16:12:58 

最后下一个pom设置为我修复了它:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    .... More code here non relevant

    <dependencies>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
      
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.6.0</version>
             <scope>test</scope>
        </dependency>
      
        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>5.5.2</version>
        </dependency>
    
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.6.0</version>
        </dependency>

    .... More code here non relevant

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.22.1</version>
                <configuration>
                    <dependenciesToScan>
                        <dependency>${group.id}:${test.project.name}</dependency>
                    </dependenciesToScan>
                    <encoding>UTF-8</encoding>
                    <inputEncoding>UTF-8</inputEncoding>
                    <outputEncoding>UTF-8</outputEncoding>
                    <argLine>-Dfile.encoding=UTF-8</argLine>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

现在,当我尝试运行JUnit4.12测试时,它们被发现并执行了。

我注意到log4j日志的一些问题,它只显示异常堆栈跟踪。Junit5也停止工作。因此,经过更多的测试,我的pom文件的最终版本。

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    .... More code here non relevant

    <dependencies>

        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.6.0</version>
        </dependency>

        <dependency>
            <groupId>org.junit.vintage</groupId>
            <artifactId>junit-vintage-engine</artifactId>
            <version>5.5.2</version>
        </dependency>
      
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

    .... More code here non relevant

    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>3.0.0-M3</version>
                <configuration>
                    <dependenciesToScan>
                        <dependency>${group.id}:${test.project.name}</dependency>
                    </dependenciesToScan>
                    <encoding>UTF-8</encoding>
                    <inputEncoding>UTF-8</inputEncoding>
                    <outputEncoding>UTF-8</outputEncoding>
                    <argLine>-Dfile.encoding=UTF-8</argLine>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>
 类似资料:
  • 我和我的朋友正在做一个Java maven项目,它的设置和我们从Git得到的项目是一样的。在我的设置中,Maven正确地导入了所有依赖项,但对于我的朋友,它找不到任何依赖项。 我们尝试过的事情: 右键单击project,单击maven并单击Reimport。 我们都可以上网,所以这也不是问题。而且,Maven在IntelliJ中设置为自动导入。

  • 我对Clojure和Leiningen是新来的。刚开始工作一个现有的项目。我拉了回购并执行了Lein运行的命令。它抱怨说: “在clojars中找不到项目arcType:service.jose:jar:0.1.0-快照(https://repo.clojars.org/)无法将项目arcType:service.jar:0.1.0-快照从/传输到enonic(https://repo.enoni

  • 我已经从https://howtodoinjava.com/spring-batch/java-config-multiple-steps/'复制了Spring批处理程序。 我从https://docs.spring.io/spring-batch/docs/current/reference/html/testing.html创建了以下JUnit测试用例: 我的Maven pom文件是: 谢谢

  • 问题内容: 我们的工具包具有15000多个JUnit测试,并且已知许多测试会在其他测试失败的情况下失败。例如,如果方法X.foo()使用Y.bar()中的功能并且YTest.testBar()失败,则XTest.testFoo()也将失败。显然,由于特定于X.foo()的问题,XTest.testFoo()也可能会失败。 尽管这很好并且我仍然希望两个测试都能运行,但是如果可以用指向XTest.te

  • 问题内容: 我正在尝试将Entity Framework与MySQL配合使用,但出现上述错误。我安装了最新的MySQL连接器。 完整错误为: 但是,我找不到任何建议说明您如何在“ entityFramework”部分中进行注册的内容。 其他一些帖子(例如)建议将提供程序添加到该 部分中,如下所示: 但这不起作用,因为它声称名称是重复的。而且,如果我实际上遍历了,我可以看到最后一个是MySQL提供程

  • 我一直在使用gradle作为Springboot,它过去很好,但gradle的构建突然停止了工作。我不断收到错误,说找不到依赖项 这是分级代码: 我得到的错误是: 无法解析组织。springframework。启动:spring启动依赖项:2.4。1.无法解析io。关键的。Spring云:spring云服务依赖项:2.4。1.无法解析组织。springframework。云:spring云依赖项: