2014-10-17 2 views
1

터미널에서 Java를 실행하는 데 익숙하며 현재 터미널에서 JUnit 테스트 클래스를 실행하려고합니다. 내 Java 클래스의 기본 구조는터미널에서 JUnit 테스트 실행

JavaProject 
    Queue.java 
    QueueTests.java 
    junit.jar 
    RunTests 

입니다. RunTests는 다음 코드의 스크립트입니다. 나는이 프로그램을 실행할 때

#!/bin/sh 
javac Queue.java 
CLASSPATH=".:junit.jar:"; export CLASSPATH 
javac QueueTests.java 
java org.junit.runner.JUnitCore QueueTests 

그러나, 나는 항상 마지막 줄에서 "스레드에서 예외"기본 "java.lang.NoClassDefFoundError가"오류가 발생합니다. 마지막 줄을 주석 처리하면 오류가 없습니다. 따라서 QueueTests.class를 찾을 수없는 것 같습니다. 그러나 폴더를 살펴보면 Queue.class와 QueueTests.class가 모두있는 스크립트를 실행하면 분명합니다. 내가 뭘 잘못하고 있는지 모르겠다. 어떤 도움이라도 정말로 감사 할 것입니다.

+0

가능한 중복 HTTP : //stackoverflow.com/q/2235276/1161025. – maciek

답변

0

JavaProject 폴더에서 다음 명령을 실행합니다, 그 것이 스크립트를 적용하기 위해

java -cp .:./junit.jar org.junit.runner.JUnitCore QueueTests 

#!/bin/sh 
javac Queue.java QueueTests.java 
CLASSPATH=".:junit.jar:" 
java -cp $CLASSPATH org.junit.runner.JUnitCore QueueTests 

도 참조 다음과 같은 질문 :의 How to run JUnit test cases from the command line

+2

이렇게하면 똑같은 문제가 발생합니다. thread "main"의 예외 java.lang.NoClassDefFoundError – user3684980

관련 문제