Jak zainstalować / korzystać z JUnit?

9

Zainstalowałem JUnit na moim Ubuntu 11.04

sudo apt-get install junit

Następnie utworzył plik testowy, taki jak:

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));
  }
}

Następnie próbował uruchomić się w terminalu

java org.junit.runner.JUnitCore TestBasicLinkedList.java

Dostał:

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.

Jak korzystać z JUnit? Czy istnieje lepszy, krótszy sposób korzystania z niego niż długie polecenie java org.junit.runner.JUnitCore TestBasicLinkedList.java? Może coś takiego junit *.Tests.java?

Jiew Meng
źródło

Odpowiedzi:

11

Ogólnie rzecz biorąc, JUnit (podobnie jak każda biblioteka Java) musi znajdować się w ścieżce klasy. Nie wiem, gdzie dokładnie Ubuntu przechowuje plik junitX.jar, ale prawdopodobnie chcesz czegoś takiego:

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

TestBasicLinkedListNajpierw musisz skompilować .

dsaff
źródło
2
/usr/share/java/junit.jarlinki do najnowszej wersji junit3, a /usr/share/java/junit4.jarlinki do najnowszej wersji junit4.
Daniel Kullmann
13

Aby rozpocząć pracę, jest to podstawowy przypadek testowy:

import junit.framework.TestCase;

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

Klasa testowa powinna rozszerzyć TestCase, a metody testowe powinny zaczynać się od „test”, nie przyjmować żadnych argumentów i zwracać wartość void.

Kompilować:

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

Biegać:

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

To dotyczy JUnit 4; JUnit 3 używa różnych klas do wykonywania testów (spróbuj junit.textui.TestRunner).

Daniel Kullmann
źródło
Dzięki .. java -cp /usr/share/java/junit.jar:. junit.textui.TestRunner TestBasicLinkedListdziała dla JUnit3. To było pomocne.
Jayesh
Świetne wyjaśnienie, aby upewnić się, że podstawy są uruchomione! Dzięki za tonę
Boris Däppen
1
sudo apt-get install junit4
  • /usr/share/java/junit4.jar jest dowiązaniem symbolicznym do najnowszej wersji junit4.
  • /usr/share/java/junit.jar jest dowiązaniem symbolicznym do najnowszej wersji junit3.

Jeśli aplikacja wymaga ustawienia $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

Jeśli aplikacja wymaga, aby mieć go w $CLASSPATH:

Po prostu skopiuj go do jednego z katalogów ścieżki aplikacji.

Gayan Weerakutti
źródło