Patrick
Patrick

Reputation: 3684

JUnit: 4.8.1 "Could not find class"

Ok, I am like other and new to jUnit and having a difficult time trying to get it working. I have searched the forum but the answers provided; I am just not getting. If anyone out there could lend me a hand I would greatly appreciate it.

Let me provide the basics: OS: mac OS X.6

export JUNIT_HOME="/Developer/junit/junit4.8.1"
export CVSROOT="/opt/cvsroot"
export PATH="/usr/local/bin:/usr/local/sbin:/usr/localmysql/bin:/opt/PalmSDK/Current/bin/:/usr/local/mysql/bin:$PATH:$JUNIT_HOME:$CVSROOT"
export CLASSPATH="$CLASSPATH:$JUNIT_HOME/junit-4.8.1.jar:$JUNIT_HOME"

I can compile a test class from a java file, however when I try to then run the test

java org.junit.runner.JUnitCore MyTest.class 

I get the following:

JUnit version 4.8.1
Could not find class: MyTest.class

Time: 0.001

OK (0 tests)

Now I have been in the directory with the MyTest.class which is just somewhere in my file system, I tried moving the source folder to the junit folder and the junit/junit4.8.1 folder and the same result. I cannot even run the tests that came with junit.

Upvotes: 4

Views: 12744

Answers (3)

Jonathan Feinberg
Jonathan Feinberg

Reputation: 45324

Is MyTest really in the default package? If not, then you need to give the entire package-qualified name. In other words, if MyClass has a statement

package com.myself;

and lives in

/myproject/src/com/myself/MyClass.java

and you compiled into

/myproject/classes

then /myproject/classes must be on your CLASSPATH and you must

java org.junit.runner.JUnitCore com.myself.MyTest

Come to think of it, I see now that you're appending .class to the class name, so even if it's in the default package, you should just say

java org.junit.runner.JUnitCore MyTest

Upvotes: 8

ezmia
ezmia

Reputation: 31

Remove .class from MyTest.class i.e. java org.junit.runner.JUnitCore MyTest

Upvotes: 2

Kathy Van Stone
Kathy Van Stone

Reputation: 26291

It is not having problems finding JUnit -- it is finding that okay. It can't find MyClass, so the directory of that class (given that it is packageless) needs to be in the classpath.

Upvotes: 0

Related Questions