次のコマンドを使用して、コマンド プロンプトを使用して Java ファイル「check4PrimeTest.java」をコンパイルしようとしています。
javac -classpath .:junit.jar check4PrimeTest.java
次のエラーが発生します:
エラー: パッケージ junit.framework が存在しません。import junit.framework.*;
プログラムに import junit.framework.* が含まれているのに、なぜこのエラーが発生するのかわかりません。
以下は私のコードです:
package check4prime;
// check4PrimeTest.java
//Imports
import junit.framework.*;
public class check4PrimeTest extends TestCase {
//Initialize a class to work with.
private check4Prime check4prime = new check4Prime();
//constructor
public check4PrimeTest (String name) {
super(name);
}
//Main entry point
public static void main(String[] args) {
System.out.println("Starting test...");
junit.textui.TestRunner.run(suite());
System.out.println("Test finished...");
} // end main()
//Test case 1
public void testCheckPrime_true() {
assertTrue(check4prime.primeCheck(3));
}
//Test cases 2,3
public void testCheckPrime_false() {
assertFalse(check4prime.primeCheck(0));
assertFalse(check4prime.primeCheck(1000));
}
//Test case 7
public void testCheck4Prime_checkArgs_char_input() {
try {
String [] args= new String[1];
args[0]="r";
check4prime.checkArgs(args);
fail("Should raise an Exception.");
} catch (Exception success) {
//successful test
}
} //end testCheck4Prime_checkArgs_char_input()
//Test case 5
public void testCheck4Prime_checkArgs_above_upper_bound() {
try {
String [] args= new String[1];
args[0]="10001";
check4prime.checkArgs(args);
fail("Should raise an Exception.");
} catch (Exception success) {
//successful test
}
} // end testCheck4Prime_checkArgs_upper_bound()
//Test case 4
public void testCheck4Prime_checkArgs_neg_input() {
try {
String [] args= new String[1];
args[0]="-1";
check4prime.checkArgs(args);
fail("Should raise an Exception.");
} catch (Exception success) {
//successful test
}
} // end testCheck4Prime_checkArgs_neg_input()
//Test case 6
public void testCheck4Prime_checkArgs_2_inputs() {
try {
String [] args= new String[2];
args[0]="5";
args[1]="99";
check4prime.checkArgs(args);
fail("Should raise an Exception.");
} catch (Exception success) {
//successful test
}
} // end testCheck4Prime_checkArgs_2_inputs
//Test case 8
public void testCheck4Prime_checkArgs_0_inputs() {
try {
String [] args= new String[0];
check4prime.checkArgs(args);
fail("Should raise an Exception.");
} catch (Exception success) {
//successful test
}
} // end testCheck4Prime_checkArgs_0_inputs
//JUnit required method.
public static Test suite() {
TestSuite suite = new TestSuite(check4PrimeTest.class);
return suite;
} //end suite()
} //end check4PrimeTest
ベストアンサー1
このエラーは、パッケージの場所をシステムに通知せずにパッケージをインポートしようとしているために発生します。パッケージの場所をシステムに通知する手順は次のとおりです。
javac ターゲットは、ソース ディレクトリとターゲット ディレクトリ以外は何も指定しません。クラスパス エントリは追加されません。適切な JUnit jar ファイルのエントリを追加する必要があります。詳細については、javac タスクのドキュメントを参照してください。JUnit へのパスを、クラスパス属性、ネストされた要素、または他の場所で宣言されたパスへの参照として指定することもできます。
ソース:EclipseでAntを使用してJUnitテストを実行する際の問題。初心者の質問
prompt> javac -classpath .;$JUNIT_HOME\junit4.x.x.jar test.java
編集: JUNITのインストール(ここ):
ウィンドウズ
Windows に JUnit をインストールするには、次の手順に従います。
1. Unzip the junit.zip distribution file to a directory referred to as %JUNIT_HOME%. 2. Add JUnit to the classpath (type the following into a command line shell): `set CLASSPATH=%CLASSPATH%;%JUNIT_HOME%\junit.jar`
Unix (bash)
Unix に JUnit をインストールするには、次の手順に従います。
1. Unzip the junit.zip distribution file to a directory referred to as $JUNIT_HOME. 2. Add JUnit to the classpath (type the following into terminal): `export CLASSPATH=$CLASSPATH:$JUNIT_HOME/junit.jar`