2025년 1월 8일 22시 10분
Spring Boot 프로젝트에서 테스트 코드를 작성했지만 실행 시 오류 발생.
테스트 코드는 강의 내용을 기반으로 작성했으며, 강의에서는 JUnit4를 사용했으나 최신 Spring Boot는 JUnit5를 기본으로 지원. 이로 인해 JUnit4를 사용하려면 명시적인 설정이 필요.
package jpabook.jpashop;
import org.assertj.core.api.Assertions;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.transaction.annotation.Transactional;
@RunWith(SpringRunner.class)
@SpringBootTest
@Transactional
public class MemberRepositoryTest {
@Autowired
private MemberRepository memberRepository;
@Test
public void testMemberRepository() {
// given
Member member = new Member();
member.setUsername("memberA");
// when
Long saveId = memberRepository.save(member);
Member findMember = memberRepository.find(saveId);
// then
Assertions.assertThat(findMember.getId()).isEqualTo(member.getId());
Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername());
}
}
> Task :compileJava UP-TO-DATE
> Task :processResources UP-TO-DATE
> 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'.
> There were failing tests. See the report at: file:///C:/Users/jisu0/%EB%B0%94%ED%83%95%20%ED%99%94%EB%A9%B4/develop_study/springboot_jpa_basic/jpashop/build/reports/tests/test/index.html
* Try:
> Run with --scan to get full insights.
BUILD FAILED in 1s
4 actionable tasks: 2 executed, 2 up-to-date
build.gradle에 junit설정 추가.
최신 spring boot에는 junit5가 기본이기 때문에 junit4를 쓰려면 설정을 명시적으로 해줘야 함.
IntelliJ IDEA 설정 변경
기본적으로 IntelliJ는 Gradle을 사용하여 테스트를 실행.
하지만 JUnit4를 사용하려면 IntelliJ가 테스트를 실행하는 방식도 변경해야 함.
설정 경로:
File > Settings > Build, Execution, Deployment > Build Tools > Gradle
Run tests using 항목을 IntelliJ IDEA로 변경.