2013-05-30 3 views
1

Eclipse를 사용하여 Junit 테스트 케이스를 작성했는데 정상적으로 작동합니다. 커맨드 라인을 사용하여 컴파일하려고하지만이를 수행 할 수 없습니다.Windows 8에서 Junit 컴파일 명령 행 오류

java -cp "E:/Android ADT/adt-bundle-windows-x86_64-20130219/eclipse/plugins/org.junit_4.8.2.v4_8_2_v20110321-1705/junit.jar;." org.junit.runner.JUnitCore SchedulerTest 

:

JUnit version 4.8.2 
Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/SelfDesc 
ribing 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClass(Unknown Source) 
     at java.security.SecureClassLoader.defineClass(Unknown Source) 
     at java.net.URLClassLoader.defineClass(Unknown Source) 
     at java.net.URLClassLoader.access$100(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     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) 
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.net.URLClassLoader$1.run(Unknown Source) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
     at java.lang.ClassLoader.loadClass(Unknown Source) 
     ... 18 more 

내가 사용하고 그것을 실행하려면 :

나는 내가 다음과 같은 오류가 그것을 실행하려고하면 지금 fine..but "컴파일"할 수 있었다 컴파일은 잘 작동하고, 컴파일 내가 사용 : 컴파일이 잘 작동하지만 당신은 java.lang.NoClassDefFoundError을 얻을 때

javac -cp "E:/Android ADT/adt-bundle-windows 
-x86_64-20130219/eclipse/plugins/org.junit_4.8.2.v4_8_2_v20110321-1705/junit.jar 
;." SchedulerTest.java 
+0

'junit.jar '안에 hamcrest 번들을 사용하고 있습니까? 아니면 별도의 의존성이 있습니까? – janos

+0

그렇게 생각하지 마십시오. 내가 가져올 유일한 것은 : 'import static org.junit.Assert. *; import org.junit.Test;' – user1411893

답변

0

거릴 때 g 코드는 대개 누락 된 런타임 종속성을 나타냅니다. 이 경우와 마찬가지로 org.hamcrest.SelfDescribing은 컴파일시에는 사용되지 않지만 런타임에는 필요합니다.

hamcrest

는 보통 그러나, junit.org에서 다운로드 할 수 있습니다 E:/Android ADT/adt-bundle-windows-x86_64-20130219/eclipse/plugins/org.junit_4.8.2.v4_8_2_v20110321-1705/junit.jar 그것을 가지고하지 않는 공식 junit.jar 내에서 번들로 제공됩니다. Android ADT 플러그인 디렉토리 E:/Android ADT/adt-bundle-windows-x86_64-20130219/eclipse/plugins/에서 hamcrest 항아리를 찾고 응용 프로그램을 실행할 때 classpath에 포함 시키십시오. 다음과 같이 실행이다

: hamcrest 당신이 단위 테스트를 실행하는 기본 클래스 경로의 부분이 있기 때문에 마지막으로, 단위 테스트 이클립스에서 잘 작동

java -cp "E:/Android ADT/adt-bundle-windows-x86_64-20130219/eclipse/plugins/PATH_TO_HAMCREST.jar;E:/Android ADT/adt-bundle-windows-x86_64-20130219/eclipse/plugins/org.junit_4.8.2.v4_8_2_v20110321-1705/junit.jar;." org.junit.runner.JUnitCore SchedulerTest 

.

관련 문제