2010-03-18 6 views
4

Ok, je suis comme les autres et nouveau à jUnit et avoir du mal à essayer de le faire fonctionner. J'ai cherché sur le forum mais les réponses fournies; Je ne reçois tout simplement pas. Si quelqu'un pouvait me prêter main-forte, je l'apprécierais grandement.JUnit: 4.8.1 "Ne peut pas trouver la classe"

Permettez-moi de fournir les éléments de 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" 

Je peux compiler une classe de test à partir d'un fichier java, mais lorsque je tente de lancer le test

java org.junit.runner.JUnitCore MyTest.class 

Je reçois le texte suivant:

JUnit version 4.8.1 
Could not find class: MyTest.class 

Time: 0.001 

OK (0 tests) 

maintenant, je suis dans le répertoire avec le MyTest.class qui est juste quelque part dans mon système de fichiers, j'ai essayé de déplacer le dossier source vers le dossier junit et le dossier junit/junit4.8.1 et le même résultat. Je ne peux même pas exécuter les tests fournis avec junit.

+0

Est-ce que vous essayez d'ajouter le répertoire courant à CLASSPATH ? C'est à dire. export CLASSPATH =.: $ CLASSPATH: [etc ...] –

+0

Merci de poster, non je ne devrais pas en avoir besoin. Il s'est avéré être une erreur de frappe simple – Patrick

Répondre

7

est MyTest vraiment dans le package par défaut? Si ce n'est pas le cas, vous devez indiquer le nom complet du package. En d'autres termes, si MyClass a une déclaration

package com.myself; 

et vit à

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

et vous compilez dans

/myproject/classes 

alors /myproject/classes doit être sur votre CLASSPATH et vous devez

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

Venez y penser, je vois maintenant que vous annexant .class au nom de la classe, même si elle est dans le package par défaut, vous devez simplement dire

java org.junit.runner.JUnitCore MyTest 
+0

Oui, y compris le ".class" faisait partie de mon problème car il n'utilisait pas le bon étui. Une fois j'ai réparé que j'étais ok. Je n'ai pas eu besoin de m'inquiéter du classpath puisque c'est juste dans le paquet par défaut. – Patrick

+0

Merci, cet ancien post a aussi résolu mon problème. Incluant le .fichiers de classe dans le chemin de la classe a fait l'affaire! – janhink

0

Il n'a pas de problème à trouver JUnit - il trouve que ça va. Il ne peut pas trouver MyClass, donc le répertoire de cette classe (étant donné qu'il est sans emballage) doit être dans le classpath.

+0

C'est à ce moment-là que je pensais mais il s'est avéré que c'était mon erreur. Merci pour le conseil. – Patrick

2

Supprimer .class de MyTest.class savoir java org.junit.runner.JUnitCore MyTest

+0

Honnêtement, je me sens un peu bête, on dirait que mon problème était d'oublier que la commande java est sensible à la casse. Une fois que je l'ai tapé avec le bon cas, cela a bien fonctionné. Merci à tous ceux qui m'ont répondu si rapidement! J'apprécie toute votre aide et je vais certainement me référer à ce sujet lorsque j'essaie de tester un projet plus complexe. Merci encore Patrick – Patrick

Questions connexes