Java JUnit5找不到测试(Spring引导)

Java JUnit5找不到测试(Spring引导),java,spring-boot,maven,junit5,Java,Spring Boot,Maven,Junit5,我已经通过SpringInitilZR创建了一个SpringBoot2.2.6应用程序,其中包括JUnit5.6。我使用生成的pom.xml以及一些附加的依赖项和Intellij IDEA 2020.1作为我的IDE 我创建了一个非常简单的测试,看看测试是否有效: package com.hua.geoutils; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import org.spri

我已经通过SpringInitilZR创建了一个SpringBoot2.2.6应用程序,其中包括JUnit5.6。我使用生成的pom.xml以及一些附加的依赖项和Intellij IDEA 2020.1作为我的IDE

我创建了一个非常简单的测试,看看测试是否有效:

package com.hua.geoutils;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
class GeoUtilsTest
{

    @Test
    public void testSplitBoundingBox()
    {
        Assertions.assertEquals(1,1);
    }
}
我执行
mvn test spring boot:run
,在测试生命周期中,我得到以下结果:

[INFO] --- maven-surefire-plugin:2.22.2:test (default-test) @ atlantis-rest ---
[INFO] 
[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] 
[INFO] Results:
[INFO] 
[INFO] Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
似乎maven甚至没有检测到测试的存在,我不明白为什么。你知道这里出了什么问题吗

编辑:

这是我的pom.xml文件:

<?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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.6.RELEASE</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.hua</groupId>
    <artifactId>atlantis-rest</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>atlantis-rest</name>
    <description>Atlantis REST Web Service</description>
    <!-- <packaging>war</packaging> -->

    <properties>
        <java.version>11</java.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-api</artifactId>
            <version>5.6.0</version>
            <scope>test</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
        <dependency>
            <groupId>org.apache.httpcomponents</groupId>
            <artifactId>httpclient</artifactId>
            <version>4.5.11</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.json/json -->
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20190722</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
        <dependency>
            <groupId>com.google.code.gson</groupId>
            <artifactId>gson</artifactId>
            <version>2.8.6</version>
        </dependency>
        <dependency>
            <groupId>com.zaxxer</groupId>
            <artifactId>HikariCP</artifactId>
            <version>3.4.2</version>
            <!-- <type>bundle</type> -->
        </dependency>
        <!-- https://mvnrepository.com/artifact/com.recombee/api-client -->
        <dependency>
            <groupId>com.recombee</groupId>
            <artifactId>api-client</artifactId>
            <version>3.0.0</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-data-jpa</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-oauth2-client</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-quartz</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.session</groupId>
            <artifactId>spring-session-core</artifactId>
        </dependency>
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <scope>runtime</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
            <exclusions>
                <exclusion>
                    <groupId>org.junit.vintage</groupId>
                    <artifactId>junit-vintage-engine</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.springframework.restdocs</groupId>
            <artifactId>spring-restdocs-mockmvc</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.springframework.security</groupId>
            <artifactId>spring-security-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.asciidoctor</groupId>
                <artifactId>asciidoctor-maven-plugin</artifactId>
                <version>1.5.8</version>
                <executions>
                    <execution>
                        <id>generate-docs</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>process-asciidoc</goal>
                        </goals>
                        <configuration>
                            <backend>html</backend>
                            <doctype>book</doctype>
                        </configuration>
                    </execution>
                </executions>
                <dependencies>
                    <dependency>
                        <groupId>org.springframework.restdocs</groupId>
                        <artifactId>spring-restdocs-asciidoctor</artifactId>
                        <version>${spring-restdocs.version}</version>
                    </dependency>
                </dependencies>
            </plugin>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <!-- <configuration>
                    <executable>true</executable>
                </configuration> -->
            </plugin>
        </plugins>
    </build>
</project>

4.0.0
org.springframework.boot
spring启动程序父级
2.2.6.1发布
华康
亚特兰蒂斯休息
0.0.1-快照
亚特兰蒂斯休息
亚特兰蒂斯RESTWeb服务
11
org.junit.jupiter
JUnitJupiter api
5.6.0
测试
org.apache.httpcomponents
httpclient
4.5.11
org.json
json
20190722
com.google.code.gson
格森
2.8.6
com.zaxxer
希卡里普
3.4.2
com.recombee
api客户端
3.0.0
org.springframework.boot
spring引导启动器数据jpa
org.springframework.boot
spring-boot-starter-oauth2-client
org.springframework.boot
弹簧靴起动器石英
org.springframework.boot
弹簧启动安全
org.springframework.boot
弹簧启动启动器验证
org.springframework.boot
SpringBootStarterWeb
org.springframework.session
春季会议核心
mysql
mysql连接器java
运行时
org.springframework.boot
弹簧起动试验
测试
org.junit.vintage
朱尼特老式发动机
org.springframework.restdocs
SpringRestMVC
测试
org.springframework.security
弹簧安全性试验
测试
org.ascidoctor
AscidActor maven插件
1.5.8
生成文档
准备包装
过程ascidoc
html
书
org.springframework.restdocs
弹簧复位器
${spring restdocs.version}
org.springframework.boot
springbootmaven插件
您正在使用JUnit4(
Assert
)和JUnit5(
@Test
)。最初,Maven将尝试决定运行测试需要哪个提供程序,不知何故选择了JUnit4

编辑测试以使用JUnit5(又称Juipiter)断言API。将
org.junit.Assert.assertEquals(…)
更改为
org.junit.jupiter.api.Assertions.assertEquals(…)

不要忘记在所有测试文件中更改
org.junit.Assert.*
org.junit.jupiter.api.Assertions.*

作为起点,我建议添加jupiter引擎作为显式依赖项:

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

有关更多解释,请参见。

注释
@Test
来自哪个软件包?@Nikolas编辑以包含我的导入您是否向junit jupiter引擎添加了依赖项?@khmarbaise检查了它,junit jupiter引擎5.5.2标记为外部依赖项,因此是。请显示您的pom.xml。问题很可能就在那里。很好的捕获,我改变了进口,但这并没有解决我的问题。但我将编辑这篇文章,因为您的观察是正确的。仅使用JUnit4断言不会影响Maven选择测试框架。依赖项和surefire插件配置完成了这一任务。仅添加属性就解决了问题。在此之后,每个测试类都必须标记有
@SpringBootApplication
@springbootest
注释。再次感谢!
<junit-jupiter.version>5.6.0</junit-jupiter.version>