org.junit.platform.commons.JUnitException: ID가 ‘junit-jupiter’인 TestEngine이 테스트를 감지할 수 없습니다.

쉬운 목차

문제

Spring Boot를 공부하고 테스트를 작성하는 동안 다음과 같은 오류가 발생했습니다.


아래는 제가 작성한 테스트입니다.

package com.ewok.study.springboot.web;

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import org.springframework.test.web.servlet.MockMvc;

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;

@ExtendWith(SpringExtension.class)
@WebMvcTest(controllers = HomeController.class)
public class HomeControllerTest {

    @Autowired
    private MockMvc mvc;

    @Test
    public void hello가_리턴된다() throws Exception {
        String hello = "hello";

        mvc.perform(get("/hello"))
                .andExpect(status().isOk())
                .andExpect(content().string(hello));
    }
}

build.gradle

plugins {   // 이 3개는 자바와 스프링부트를 사용하기 위한 필수 플러그인
    id 'org.springframework.boot' version '2.4.1' // RELEASE 삭제

    // 스프링 부트의 의존성들을 관리해주는 플러그인
    id 'io.spring.dependency-management' version '1.0.10.RELEASE'
    id 'java'
}

group 'com.ewok.study'
version '1.0.4-SNAPSHOT-'+new Date().format("yyyyMMddHHmmss")
sourceCompatibility = 1.8

repositories {  // 각종 의존성(라이브러리)들을 어떤 원격 저장소에서 받을지
    mavenCentral()
//    jcenter() 현재 지원중단
}

dependencies {
    implementation('org.springframework.boot:spring-boot-starter-web')
    testImplementation('org.springframework.boot:spring-boot-starter-test')

    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'
}

test {
    useJUnitPlatform()
}

해결하다

testImplementation 'org.junit.jupiter:junit-jupiter-api:5.8.1'
testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine:5.8.1'

위의 두 코드를 제거하고 문제가 해결되었습니다.


https://github.com/jojoldu/freeelec-springboot2-webservice/issues/585#issuecomment-818407043

(Error) p.63 HelloControllerTest Error · Issue #585 · jojoldu/freeelec-springboot2-webservice

이전에 게시된 질문이 아닌지 먼저 검색하세요! 최고의 팁 p.105 @PutMapping(“/api/v1/posts”) p.111 Posts.update 무엇이 오류인가요? 오류 설명: HelloControllerTest 테스트 코드 실행 시 테스트 오류 메시지

github.com