I am not able to figure out how to correctly install JUnit onto my mac. I know I am supposed to add it to the path environmental variable, and I have tried a few tutorials I
Preliminary checks:
first check your JRE is installed ok. You should be able to open a terminal and type javac
without getting any errors, and see the usage options:
Usage: javac <options> <source files>
where possible options include:
...
Also typing whereis javac
will give you the path of where your java compiler is installed. When I type this on my OSX installation, I get /usr/bin/javac
. You should get some path shown to you with no errors. Assuming that all checks out, let's install jUnit. Follow the steps below.
junit.jar
. Find the row for the latest stable release then under the downloads column click 'jar' link. This will download a file junit-X.Y.jar
. Repeat this again and download the latest stable release for hamcrest: download hamcrest-core-XX.YY.jar
java
folder in your home directory by running cd && mkdir java
. Then running cp ~/Downloads/{junit-X.Y.jar,hamcrest-core-XX.YY.jar} ~/java/
to copy the two .jars there. (replace X
, Y
, XX
, YY
accordingly). [Note: If the folder placement becomes an inconvenience, don't worry, you can change the jUnit folder at any later date].Edit your classpath. We now need to edit our .bash_profile
file to add these files to our classpath (if you are using zsh edit your .zshrc
file).
export JUNIT_HOME="$HOME/java"
export PATH="$PATH:$JUNIT_HOME"
export CLASSPATH="$CLASSPATH:$JUNIT_HOME/junit-X.Y.jar:$JUNIT_HOME/hamcrest-core-XX.YY.jar"
Test it works. Restart your terminal. Run echo $CLASSPATH
, there should be no errors that complain that files are unable to be found. Now create a test file with a trivial test case. In your java
folder, create a file called TestBasic.java
with:
import junit.framework.TestCase;
public class TestBasic extends TestCase {
public void testTrue() {
assertTrue(true);
}
}
Now cd into the java
directory run javac TestBasic.java
followed by java org.junit.runner.JUnitCore TestBasic
. If everything is ok, then you will get an output like:
JUnit version 4.11
.
Time: 0.006
OK (1 test)
Type command:
open .bash_profile
A textfile will be opened: Paste this command in it
CLASSPATH=$CLASSPATH:"path where junit4.11 is saved"/\junit4.11/junit-4.11.jar:"path where junit4.11 is saved"/\junit4.11/junit-dep-4.11.jar export CLASSPATH
save the textfile and close it.
Come back to the terminal and type commands:
cd /"path where junit4.11 is saved"/junit4.11 java org.junit.runner.JUnitCore org.junit.tests.AllTests
You should see the success message.
I did not have to add it to path. I downloaded the file and added it manually to my libraries.
If you are using IntelliJ IDEA go to the root folder of your project > Open Modules and Settings > Libraries > New Project Library > Java > and select where your junit file is located.
Creating a .bash_profile did not work for me, but the following commands did, after following steps 1 and 2 of James's Lawson's post above.
javac -cp .:junit-X.Y.jar TestBasic.java
followed by
java -cp .:junit-4.XX.jar:hamcrest-core-XX.YY.jar org.junit.runner.JUnitCore TestBasic
JUnit doesn't have to be installed. It's a Java library, like all the other libraries, that you can use in your code. The PATH must not be changed to use it. You just need it in the classpath, like all the other Java libraries:
javac -cp junit.jar ...
to compile, and
java -cp junit.jar ...
to run.