Java 如何使用runspring引导测试代码解决这个问题?

Java 如何使用runspring引导测试代码解决这个问题?,java,spring,spring-boot,gradle,Java,Spring,Spring Boot,Gradle,这是我在spring boot中的测试代码 import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.test.co

这是我在spring boot中的测试代码

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.web.servlet.MockMvc;
import org.springframework.test.web.servlet.ResultActions;

import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content;
import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status;

import com.myname.pjt.springboot.web.HelloController;

@RunWith(SpringRunner.class)
@WebMvcTest(controllers = HelloController.class)
public class HelloControllerTest {

    @Autowired
    private MockMvc mvc;

    @Test
    public void hello_will_return() throws Exception {
        String hello = "hello";
        mvc.perform(get("/hello")).andExpect(status().isOk()).andExpect(content().string(hello));
    }
}
这是一条错误消息

Testing started at 9:34 PM ...

> Task :compileJava UP-TO-DATE
> Task :processResources NO-SOURCE
> Task :classes UP-TO-DATE
> Task :compileTestJava
> Task :processTestResources NO-SOURCE
> Task :testClasses
> Task :test FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':test'.
> No tests found for given includes: [com.myname.test.springboot.web.HelloControllerTest.hello_will_return](filter.includeTestsMatching)
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
Deprecated Gradle features were used in this build, making it incompatible with Gradle 7.0.
Use '--warning-mode all' to show the individual deprecation warnings.
See https://docs.gradle.org/6.3/userguide/command_line_interface.html#sec:command_line_warnings
BUILD FAILED in 1s
3 actionable tasks: 2 executed, 1 up-to-date

我不知道如何解决这个问题

我试过这些

  • 更改设置>构建、执行、部署>构建工具>渐变>使用>将“渐变(默认)”更改为“IntelliJ IDEA”运行测试

  • @WebMvcTest

  • ->
    @WebMvcTest(controllers=HelloController.class)
    @WebMvcTest(controllers={HelloController.class},secure=false)

    但它仍然不起作用。。。 请帮帮我

    这也是我的
    build.gradle

    buildscript {
        ext {
            springBootVersion = '2.1.7.RELEASE'
        }
        repositories {
            mavenCentral()
            jcenter()
        }
        dependencies {
            classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
        }
    }
    
    apply plugin: 'java'
    apply plugin: 'eclipse'
    apply plugin: 'org.springframework.boot'
    apply plugin: 'io.spring.dependency-management'
    
    group 'com.myname.pjt'
    version '1.0-SNAPSHOT'
    sourceCompatibility = 1.8
    
    repositories {
        mavenCentral()
        jcenter()
    }
    
    dependencies {
        compile('org.springframework.boot:spring-boot-starter-web')
        testCompile('org.springframework.boot:spring-boot-starter-test')
    }
    

    看起来您正在使用JUnit 5运行测试,但是使用JUnit 4注释声明您的测试(
    org.JUnit.test
    vs.
    org.JUnit.jupiter.api.test
    )这就是为什么它在你的测试中不起作用。

    请用进一步的细节解释它。只需按
    公共类HelloControllerTest
    旁边的绿色按钮,如果仍然不起作用,请显示你的gradle构建文件哦,我错过了它。很抱歉,这是我第一次使用stackoverflow。我按下了公共类HelloControllerTest旁边的绿色按钮,出现了错误。非常抱歉,这是我第一次使用gradle。我怎么知道我现在用的是什么?JUnit4还是JUnit5?