Spring Framework
를 사용해서 JUnit
의 테스트 메소드를 작성한 뒤, 해당 테스트 클래스의 main
메소드를 작성하여 실행할 경우 아래와 같이 오류가 발생하였다.
(JUnit
의 버전은 4.7
이다.)
작성한 코드
public static void main(String[] args) { JUnitCore.main("com.study.TestClass"); // 테스트 클래스의 경로를 파라미터로 넘김 }
실행 후 오류
JUnit version 4.7
.E
Time: 0.009
There was 1 failure:
1) initializationError(com.study.TestClass)
java.lang.Exception: No runnable methods
at org.junit.runners.BlockJUnit4ClassRunner.validateInstanceMethods(BlockJUnit4ClassRunner.java:171)
at org.junit.runners.BlockJUnit4ClassRunner.collectInitializationErrors(BlockJUnit4ClassRunner.java:115)
at org.junit.runners.ParentRunner.validate(ParentRunner.java:269)
at org.junit.runners.ParentRunner.(ParentRunner.java:66)
at org.junit.runners.BlockJUnit4ClassRunner.(BlockJUnit4ClassRunner.java:59)
at org.junit.internal.builders.JUnit4Builder.runnerForClass(JUnit4Builder.java:13)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:29)
at org.junit.runner.Computer.getRunner(Computer.java:38)
at org.junit.runner.Computer$1.runnerForClass(Computer.java:29)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:57)
at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:93)
at org.junit.runners.model.RunnerBuilder.runners(RunnerBuilder.java:84)
at org.junit.runners.Suite.(Suite.java:79)
at org.junit.runner.Computer.getSuite(Computer.java:26)
at org.junit.runner.Request.classes(Request.java:69)
at org.junit.runner.JUnitCore.run(JUnitCore.java:117)
at org.junit.runner.JUnitCore.runMain(JUnitCore.java:98)
at org.junit.runner.JUnitCore.runMainAndExit(JUnitCore.java:53)
at org.junit.runner.JUnitCore.main(JUnitCore.java:45)
at com.study.TestClass.main(UserDaoTest.java:42)
FAILURES!!!
Tests run: 1, Failures: 1
Process finished with exit code 1
테스트 메소드 위에 작성한 @Test
Annotation을 사용하기 위하여 올바른 클래스가 import 되었는지 확인한다.
Before
import org.testng.annotations.Test;
After
import org.junit.Test;
이후 다시 main
메소드를 실행하면 콘솔에 아래와 같이 정상적으로 종료되었다는 출력이 조회된다.
JUnit version 4.7
Time: 4.286
OK (1 test)
Process finished with exit code 0
Maven 의존성을 추가하면서 테스트 메소드를 작성하다 보니 의존성이 완전히 추가되기 전에 어노테이션을 사용해서 문제가 발생했던 것 같다.
Annotation을 추가할 때 내가 원하는 path
에 있는지 확인하고 사용해야겠다고 다시 한 번 깨달았다.