2012-07-17 3 views
0

방금 ​​JUnit을 사용하기 시작했습니다.터미널에서 내 Junit 테스트 실행

java -cp /junit4.10/junit-4.10.jar:. /Users/maidini/IdeaProjects/HelloWorld/test/CalculatePriceTest.java 

나는이 오류가 무엇입니까 :

Exception in thread "main" java.lang.NoClassDefFoundError: /Users/maidini/IdeaProjects/HelloWorld/test/CalculatePriceTest/java 
Caused by: java.lang.ClassNotFoundException: .Users.maidini.IdeaProjects.HelloWorld.test.CalculatePriceTest.java 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247) 

당신을합니까를이 코드를 사용하여 터미널 내 테스트를 실행하기 위해 노력하고있어 때 나는 Intelij의 IDEA를 통해 내 테스트를 실행하고 모든 괜찮지 만 터미널에서 내 테스트를 성공적으로 수행하려면 어떻게해야합니까? Mac Lion도 사용하고 있습니다.

답변

4
먼저 javac를 사용하여 코드를 컴파일해야

; 클래스 경로에있는 .java 소스 파일을로드 할 수 없습니다. 단원 테스트 클래스와 테스트중인 실제 클래스를 모두 추가해야합니다. 그리고 그들이 가질 수있는 의존성. 어쩌면 파일을 .jar 파일로 묶어서 명령 줄이 너무 길어지지 않을 수도 있습니다. 또한 코드 나 테스트를 변경할 때마다 다시 컴파일해야합니다.

이 꽤 빨리 털이 얻을 수 있습니다. 대신 Maven과 같은 빌드 도구를 사용하는 것이 좋습니다. 적절한 Maven 빌드를 사용하면 mvn test 만 입력하면 Maven이 종속성, 컴파일 및 테스트 실행을 처리합니다.

당신은 메이븐을 사용하지 않으려면, 당신은 또한 (바람직 Ivy와 함께) Ant에 볼 수 있었다, 또는 Gradle, 또는 다른 Java 빌드 도구입니다.

+0

는 이미 클래스를 컴파일하고 그것을 잘하지만 여전히 – MaryamAyd

+0

메이븐 (또는 다른 빌드 도구)를 사용에 동의 같은 오류가 발생합니다. @MaryamAyd, 당신은 당신이 당신의 명령으로 무엇을하려고 하는지를 알고 있습니까? 클래스를 Java 애플리케이션으로 실행하고 있지만 단위 테스트는 실행하지 않는다. –

+0

@MaryamAyd 또한, 클래스가 정의 된 파일이 아니라 실행하려는 클래스를 참조해야한다. 따라서 클래스가 com.maryamayd 패키지에있다면 '이면,'/ Users/maidini/IdeaProjects/HelloWorld/test/CalculatePriceTest.java' 대신'com.maryamayd.CalculatePriceTest'를 명령 행에 두어야합니다. 비록 'main'메소드가 없기 때문에 아마 작동하지 않을지라도. 올바른 빌드 도구를 사용하십시오. – jqno

관련 문제