JUnit: 4.8.1 „Kann nicht gefunden Klasse“
Frage
Ok, ich bin wie andere und neue zu jUnit und eine schwierige Zeit versucht, es zum Laufen zu bringen. Ich habe im Forum gesucht aber die Antworten zur Verfügung gestellt; Ich bin einfach nicht bekommen. Wenn jemand da draußen mir eine Hand geben könnte, würde ich es sehr schätzen.
Lassen Sie mich die Grundlagen liefern: Betriebssystem: 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"
Ich kann eine Test-Klasse aus einer Java-Datei kompilieren, aber wenn ich versuche, dann führen Sie den Test
java org.junit.runner.JUnitCore MyTest.class
Ich erhalte die folgende:
JUnit version 4.8.1
Could not find class: MyTest.class
Time: 0.001
OK (0 tests)
Jetzt mit dem MyTest.class
im Verzeichnis gewesen, die nur irgendwo in meinem Dateisystem Ich habe, habe ich versucht, den Quellordner in den junit
Ordner zu verschieben und die junit/junit4.8.1
Ordner und das gleiche Ergebnis. Ich kann nicht einmal die Tests ausführen, die mit junit kam.
Lösung
Ist MyTest
wirklich in dem Standard-Paket? Wenn nicht, dann müssen Sie das gesamte Paket qualifizierten Namen geben. Mit anderen Worten, wenn MyClass hat eine Erklärung
package com.myself;
und lebt in
/myproject/src/com/myself/MyClass.java
und Sie zusammengestellt in
/myproject/classes
dann muss /myproject/classes
auf Ihrem CLASSPATH
sein und Sie müssen
java org.junit.runner.JUnitCore com.myself.MyTest
Kommen Sie, daran zu denken, ich sehe jetzt, dass Sie .class
den Klassennamen sind anhängen, so dass selbst wenn es in dem Standard-Paket ist, sollten Sie nur sagen,
java org.junit.runner.JUnitCore MyTest
Andere Tipps
Entfernen .class- von MyTest.class d java org.junit.runner.JUnitCore MyTest
Es ist nicht mit Problemen JUnit zu finden - es ist das okay findet. Es kann nicht MyClass finden, so das Verzeichnis der Klasse (vorausgesetzt, dass sie gehäuse ist) muss im Classpath sein.