본문 바로가기
스터디/JAVA

[JAVA] Junit InvalidTestClassError 오류 원인과 해결 방법

by zoodi 2024. 1. 29.
728x90

 

 

목차

     

     

     

    1. InvalidTestClass Error

    테스트 코드를 작성하다가 InvalidTestClassError 를 보게되었습니다.

     

    • 작성한 코드
    import org.junit.jupiter.api.Test;
    ...
    
    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = TestApplication.class)
    @ActiveProfiles(resolver = TestProfileLoader.class, inheritProfiles = true)
    @Transactional
    @Rollback
    public class TestCode {
    
    	@Test
    	public void test() {
    		...
    	}
    }

     

    • 에러 메시지
    org.junit.runners.model.InvalidTestClassError:Invalid test class
    ...(이하 생략)

     

    코드 상으로는 틀린 부분이 없어 보였는데 왜 에러가 발생했는지 원인을 찾아보았습니다.

     

    2. 오류 원인

     

    사용하는 Junit 의 버전과 @Test 어노테이션 관련해서 import 한 모듈이 달라 발생하는 오류입니다.

    위 코드에서는 Junit4 를 사용하여 tc 를 작성했지만 import 한 모듈은 Junit5에서 지원하는 @Test 어노테이션의 모듈을 import 해와서 발생하였습니다.

     

     

    3. 해결 방법

    Junit4

    import org.junit.Test;

     

    Junit5

    import org.junit.jupiter.api.Test;

    단일 jar였던 Junit4 와 다르게 Junit5는 Junit plat form, Junit Jupiter, Junit Vintage 3가지로 이루어져있습니다. 따라서 Junit 버전에 맞게 Test를 import 해야됩니다.

     

    4. 그 외

    이렇게 수정했는데도 오류가 발생한다면 public 을 빠트렸는지 확인해봅니다.

    • public class
    • public void {method_name}
    728x90

    댓글