Comment installer / utiliser JUnit?

9

J'ai installé JUnit sur mon Ubuntu 11.04

sudo apt-get install junit

Ensuite, créé un fichier de test comme:

import org.junit.*;

public class TestBasicLinkedList {
  @Test public void testCanAdd(String[] args) {
    BasicLinkedList<Integer> list = new BasicLinkedList();
    list.add(new BasicListNode<Integer>(1));
    assertTrue(list.size() == 1);
    assertTrue(list.getFirst().getElement().equals(1));
  }
}

Ensuite, j'ai essayé de courir dans le terminal

java org.junit.runner.JUnitCore TestBasicLinkedList.java

Eu:

Exception in thread "main" java.lang.NoClassDefFoundError: org/junit/runner/JUnitCore
Caused by: java.lang.ClassNotFoundException: org.junit.runner.JUnitCore
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: org.junit.runner.JUnitCore. Program will exit.

Comment utiliser JUnit? Existe-t-il un meilleur moyen plus court de l'utiliser que la commande longue java org.junit.runner.JUnitCore TestBasicLinkedList.java? Peut-être quelque chose comme junit *.Tests.javapeut-être?

Jiew Meng
la source

Réponses:

11

En général, JUnit (comme toute bibliothèque Java) doit être sur votre chemin de classe. Je ne sais pas exactement où Ubuntu stocke junitX.jar, mais vous voulez probablement quelque chose comme ça:

java -cp .:/usr/share/java/junit4-4.10.jar TestBasicLinkedList

Vous devrez d' TestBasicLinkedListabord compiler .

dsaff
la source
2
/usr/share/java/junit.jardes liens vers la dernière version de junit3, tandis que des /usr/share/java/junit4.jarliens vers la dernière version de junit4.
daniel kullmann
13

Pour vous permettre d'être opérationnel, voici un scénario de test de base:

import junit.framework.TestCase;

public class TestBasicLinkedList extends TestCase {
  public void testTrue() {
    assertTrue(true);
  }
}

La classe de test doit étendre TestCase et les méthodes de test doivent commencer par "test", n'accepter aucun argument et renvoyer void.

Compiler:

javac -cp /usr/share/java/junit4.jar TestBasicLinkedList.java

Courir:

java -cp /usr/share/java/junit4.jar:. org.junit.runner.JUnitCore TestBasicLinkedList

C'est pour JUnit 4; JUnit 3 utilise différentes classes pour exécuter des tests (essayez junit.textui.TestRunner).

daniel kullmann
la source
Merci .. java -cp /usr/share/java/junit.jar:. junit.textui.TestRunner TestBasicLinkedListfonctionne pour JUnit3. C'était utile.
Jayesh
Excellente explication pour s'assurer que les bases fonctionnent! Thx a ton
Boris Däppen
1
sudo apt-get install junit4
  • /usr/share/java/junit4.jar est un lien symbolique vers la dernière version de junit4.
  • /usr/share/java/junit.jar est un lien symbolique vers la dernière version de junit3.

Si votre application nécessite que vous définissiez $JUNIT_HOME:

mkdir ~/junit
ln -s /usr/share/java/junit4.jar ~/junit
ln -s /usr/share/java/hamcrest-core.jar ~/junit
export JUNIT_HOME=~/junit

Si votre application l'exige pour l'avoir dans votre $CLASSPATH:

Copiez-le simplement dans l'un des répertoires de chemin de classe de votre application.

Gayan Weerakutti
la source