Issue
I'm trying to compile my java file 'check4PrimeTest.java' using the command prompt with the following command:
javac -classpath .:junit.jar check4PrimeTest.java
I get the following error:
error: package junit.framework does not exist import junit.framework.*;
I'm not sure why i get this error as i have import junit.framework.* in my program.
below is my code:
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
Solution
You are getting this error because you're trying to import a package without telling your system where the package is located. Here are instructions on telling your system where the package is located:
Your javac target doesn't specify anything apart from the source and target directory - it doesn't add any classpath entries; you'll need to add an entry for the appropriate JUnit jar file. See the javac task documentation for more details. You may want to specify the path to JUnit as a classpath attribute, a nested element, or a reference to a path declared elsewhere.
Source: problem running JUnit tests with Ant in Eclipse. Beginner question
prompt> javac -classpath .;$JUNIT_HOME\junit4.x.x.jar test.java
EDIT: JUNIT INSTALLATION (from here):
Windows
To install JUnit on Windows, follow these steps:
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)
To install JUnit on Unix, follow these steps:
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`
Answered By - weberc2
Answer Checked By - Candace Johnson (JavaFixing Volunteer)