Personal Space/오류와 예외(Error & Exception)

org.junit.runners.model.InvalidTestClassError

잇트루 2022. 12. 15. 00:18
반응형
import org.junit.runner.RunWith;
import org.junit.jupiter.api.Test;
...

@RunWith(SpringRunner.class)
@SpringBootTest
public class OrderServiceTest {

    @Autowired
    OrderService orderService;
    
    @Test
    public void 상품주문() throws Exception {
        //given
        Member member = new Member();
        member.setName("회원");
        ...
    }
}
org.junit.runners.model.InvalidTestClassError: Invalid test class 'com.service.OrderServiceTest':
  1. No runnable methods
	at org.junit.runners.ParentRunner.validate(ParentRunner.java:525)
	at org.junit.runners.ParentRunner.<init>(ParentRunner.java:92)
	at org.junit.runners.BlockJUnit4ClassRunner.<init>(BlockJUnit4ClassRunner.java:74)
	...

 

오류 원인

테스트 코드를 작성하다가 만날 수 있는 에러이다.

junit4와 junit5에서 제공하는 기능을 혼용하여 사용하면서 발생한 것이 원인이다.

 

junit4에서는 @RunWith 어노테이션을 지원하고,

junit5에서는 @ExtendWith 어노테이션을 지원한다.

 

또한, @Test 어노테이션도 다르다.

 

junit4 환경에서는 @RunWith 어노테이션과 org.junit.Test의 @Test를 사용해야 한다.

import org.junit.runner.RunWith;
import org.junit.Test; // 변경
...

@RunWith(SpringRunner.class)
@SpringBootTest
public class OrderServiceTest {

    @Autowired
    OrderService orderService;
    
    @Test
    public void 상품주문() throws Exception {
        //given
        Member member = new Member();
        member.setName("회원");
        ...
    }
}

 

junit5에서는 @ExtendWith 어노테이션과 org.junit.jupiter.api의 @Test 어노테이션을 사용해야 한다.

import org.junit.jupiter.api.Test;
import org.junit.jupiter.api.extension.ExtendWith;
...

@ExtendWith(SpringExtension.class) // 변경
@SpringBootTest
public class OrderServiceTest {

    @Autowired
    OrderService orderService;
    
    @Test
    public void 상품주문() throws Exception {
        //given
        Member member = new Member();
        member.setName("회원");
        ...
    }
}

 

반응형