JUnit: 4.8.1 “Impossibile trovare la classe”
Domanda
Ok, io sono come gli altri e nuovi a JUnit e avendo un momento difficile cercando di farlo funzionare. Ho cercato nel forum ma le risposte fornite; Non sto ottenendo. Se qualcuno là fuori mi può dare una mano sarei molto grato.
Permettetemi di fornire le nozioni di base: 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"
posso compilare una classe di test da un file java, tuttavia quando provo a eseguire il test
java org.junit.runner.JUnitCore MyTest.class
ottengo il seguente:
JUnit version 4.8.1
Could not find class: MyTest.class
Time: 0.001
OK (0 tests)
Ora io sono stato nella directory con il MyTest.class
che è solo da qualche parte nel mio file di sistema, ho provato a spostare la cartella di origine alla cartella junit
e la cartella junit/junit4.8.1
e lo stesso risultato. Non riesco nemmeno a eseguire i test che è venuto con JUnit.
Soluzione
È MyTest
davvero nel pacchetto di default? Se no, allora avete bisogno di dare l'intero nome del pacchetto-qualificato. In altre parole, se MyClass ha una dichiarazione
package com.myself;
e vive a
/myproject/src/com/myself/MyClass.java
e si è compilato in
/myproject/classes
poi /myproject/classes
deve essere sul vostro CLASSPATH
e si deve
java org.junit.runner.JUnitCore com.myself.MyTest
Vieni a pensarci bene, vedo adesso che si sta aggiungendo .class
al nome della classe, quindi, anche se si è nel pacchetto di default, si dovrebbe solo dire
java org.junit.runner.JUnitCore MyTest
Altri suggerimenti
Rimuovi .class da MyTest.class cioè java org.junit.runner.JUnitCore MyTest
Non sta avendo problemi a trovare JUnit - si sta trovando che va bene. Non riesce a trovare MyClass, quindi la directory di quella classe (dato che è packageless) ha bisogno di essere nel classpath.