Como instalar / usar o JUnit?

9

Eu instalei o JUnit no meu Ubuntu 11.04

sudo apt-get install junit

Em seguida, criou um arquivo de teste como:

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

Então tentei rodar no terminal

java org.junit.runner.JUnitCore TestBasicLinkedList.java

Obteve:

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.

Como uso o JUnit? Existe uma maneira melhor e mais curta de usá-lo do que o comando long java org.junit.runner.JUnitCore TestBasicLinkedList.java? Talvez algo como junit *.Tests.javatalvez?

Jiew Meng
fonte

Respostas:

11

Em geral, o JUnit (como qualquer biblioteca Java) precisa estar no seu caminho de classe. Não sei exatamente onde o Ubuntu armazena o junitX.jar, mas você provavelmente deseja algo como isto:

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

Você precisará compilar TestBasicLinkedListprimeiro.

dsaff
fonte
2
/usr/share/java/junit.jarlinks para a versão mais recente do junit3, enquanto /usr/share/java/junit4.jarlinks para a versão mais recente do junit4.
Daniel kullmann 11/04/12
13

Para colocar você em funcionamento, este é um caso de teste básico:

import junit.framework.TestCase;

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

A classe de teste deve estender o TestCase e os métodos de teste devem começar com "test", não aceitar argumentos e retornar nulos.

Compilar:

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

Para correr:

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

Isto é para a JUnit 4; O JUnit 3 usa classes diferentes para executar testes (tente junit.textui.TestRunner).

daniel kullmann
fonte
Obrigado .. java -cp /usr/share/java/junit.jar:. junit.textui.TestRunner TestBasicLinkedListtrabalha para JUnit3. Isso foi útil.
Jayesh
Ótima explicação para garantir que o básico esteja sendo executado! Thx a ton
Boris Däppen
1
sudo apt-get install junit4
  • /usr/share/java/junit4.jar é um link simbólico para a versão mais recente do junit4.
  • /usr/share/java/junit.jar é um link simbólico para a versão mais recente do junit3.

Se o seu aplicativo exigir que você defina $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

Se seu aplicativo exigir que ele esteja no seu $CLASSPATH:

Basta copiá-lo em um dos diretórios do caminho de classe do seu aplicativo.

Gayan Weerakutti
fonte