[java] JUnit 테스트를 실행할 때 클래스를 찾을 수 없음 예외

Eclipse에서 JUnit 테스트를 실행할 때이 오류가 발생합니다.

Class not found com.myproject.server.MyTest
java.lang.ClassNotFoundException: com.myproject.server.MyTest
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:423)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:356)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClass(RemoteTestRunner.java:693)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.loadClasses(RemoteTestRunner.java:429)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)

JUnitmaven을 사용하고 있지만 클래스 경로에 라이브러리를 추가하려고 시도 했으며 JUnit 라이브러리는 POM 종속성에 있습니다.

이미 프로젝트 정리를 시도하고 Eclipse 용 JUnit 플러그인을 사용하여 새 JUnit 테스트 케이스를 만들었지 만 여전히 동일한 오류가 발생합니다.



답변

이것은 사용할 때 소스 코드 만 컴파일되기 때문에 발생하는 것으로 보입니다 mvn clean compile(maven 3.1.0을 사용하고 있으므로 항상 이와 같이 작동하는지 확실하지 않습니다).

를 실행 mvn test하면 테스트 코드도 컴파일되지만 테스트를 실행합니다 (Eclipse를 통해 실행하려는 경우 즉시 바람직하지 않을 수 있음).이 문제를 해결하는 방법은 test-compile언제든지 Maven 명령 시퀀스에 추가 하는 것입니다. 당신은 mvn clean. 예를 들어 mvn clean compile test-compile.


답변

내 테스트와 비슷한 문제가 있었고 웹 어딘가에서 프로젝트 속성의 Build Path 로 이동하여 Maven Dependencies를 JRE System Library 위로 이동 해야한다는 것을 발견했습니다 . 그것은 나를 위해 일한 것 같습니다.


답변

나는 같은 문제에 직면했고 @slomek의 대답을 사용하여 해결할 수 있었지만 그 후 문제가 다시 나타났습니다.

마지막으로 프로젝트의 출력 폴더를 JUnit 테스트의 실행 구성에 추가하여 수정했습니다. 단계는 다음과 같습니다.

  • 프로젝트의 출력 폴더 찾기 Project properties -> Java Build Path -> Default output folder
    • 보통 이것은 <project-folder>/bin
  • 이동 Run -> Run Configurations...
  • 단위 테스트의 실행 구성을 클릭하고 Classpath탭을 클릭 하십시오.
  • User Entries프로젝트가 이미 포함 된 경우에도

    아래에 프로젝트의 출력 폴더를 명시 적으로 추가합니다.

    • Advanced -> Add folder출력 폴더를 추가하려면를 클릭하십시오.

이 문제는 Eclipse의 이상한 프로젝트 설정 때문일 수 있습니다. 예를 들어 단일 프로젝트 / 폴더로 가져온 중첩 된 Maven 프로젝트가있는 소스 폴더 (적어도 내 프로젝트가 설정되는 방식).


답변

Eclipse에서만이 문제가 발생하는 경우 선택한 프로젝트에서 Project-> Clean … 명령을 실행하면 도움이 될 수 있습니다.


답변

개선없이 여기에서 모든 것을 시도한 후 Eclipse를 다시 시작하여 문제를 해결했습니다.


답변

maven 업데이트를 실행하여 문제를 해결했습니다. 프로젝트 프로젝트> Maven> 프로젝트 업데이트를 마우스 오른쪽 단추로 클릭하십시오.


답변

제 경우에는 maven 디렉토리 구조가 잘못되었습니다.

다음과 같아야합니다.

/ src / test / java / com.myproject.server.MyTest

내가 그것을 고친 후-모든 것이 매력처럼 작동했습니다.