java - 未找到测试 - 在准系统 Spring Boot Maven 项目上运行 jUnit 5 测试用例时出现空测试套件
问题描述
所以我们得到了消息
Process finished with exit code 0
Empty test suite.
当尝试在我们的多模块项目上运行 Junit5 测试用例时,为了测试问题的根源,我决定从头开始尝试一个新项目(我使用的是 IntelliJ IDEA 2018.2.4)。
我在以下简单项目 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>
<groupId>com.org.bu.dep.app</groupId>
<artifactId>demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>demo</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
<relativePath/>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<version>2.0.5.RELEASE</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>com.vaadin.external.google</groupId>
<artifactId>android-json</artifactId>
</exclusion>
<exclusion>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.3.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>5.3.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
我尝试使用/不使用 junit-vintage-engine 相同的结果。
以下是测试类:
package com.org.bu.dep.app.demo;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
@SpringBootTest
public class DemoApplicationTests {
@Test
public void contextLoads() {
Assertions.assertTrue(true);
}
}
在“运行”窗口中,它显示No tests were found
。
我尝试了许多变体,例如带/不带@SpringBootTest
注释,我也尝试过@ExtendWith(SpringExtension.class)
但无济于事。
我已经用谷歌搜索了,大多数结果/SackOverflow 的答案似乎来自 2016/2017 年,重点是旧版本的 IntelliJ,它与 Junit 5 有问题,这似乎不相关。
请问,有什么建议吗?如果我们花太多时间,它将被迫恢复到 4,我非常不希望这样做:)
解决方案
就我而言,我有一个private
测试方法——应该是public
.
推荐阅读
- apache-superset - 如何使通过 SQL 实验室创建的 CTAS 和 CVAS 表和视图自动刷新
- python - 在 Raspbian Buster 上的 Raspberry Pi 4 上使用带有 wakeonlan 的 Python 脚本时出现权限错误
- laravel - laravel 7 中的可选 hasOne 用于关系混乱不起作用
- docker - 如何从 Azure Data Studio 与 Docker 中托管的 SQL Server 2019 容器进行通信
- javascript - 在 vuejs 中找不到这些依赖项
- ssl - 无法启动 Kestrel
- python - 使用 Streamlit 的多项 Logistic 回归
- flutter - 当父小部件给出不同的值时如何重新初始化?
- discord - avatarURL 对用户有一个奇怪的问题
- python - Selenium 入门