Bagaimana cara menginstal / menggunakan JUnit?

9

Saya telah menginstal JUnit di Ubuntu 11.04 saya

sudo apt-get install junit

Kemudian buat file uji seperti:

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

Kemudian mencoba berjalan di terminal

java org.junit.runner.JUnitCore TestBasicLinkedList.java

Punya:

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.

Bagaimana cara saya menggunakan JUnit? Apakah ada cara yang lebih pendek dan lebih baik daripada menggunakan perintah panjang java org.junit.runner.JUnitCore TestBasicLinkedList.java? Mungkin sesuatu seperti junit *.Tests.javamungkin?

Jiew Meng
sumber

Jawaban:

11

Secara umum, JUnit (sama seperti perpustakaan Java lainnya) perlu berada di classpath Anda. Saya tidak tahu di mana tepatnya Ubuntu menyimpan junitX.jar, tetapi Anda mungkin menginginkan sesuatu seperti ini:

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

Anda harus melakukan kompilasi TestBasicLinkedListterlebih dahulu.

dsaff
sumber
2
/usr/share/java/junit.jartautan ke versi junit3 terbaru, sementara /usr/share/java/junit4.jartautan ke versi junit4 terbaru.
daniel kullmann
13

Untuk membuat Anda aktif dan berjalan, ini adalah ujian dasar:

import junit.framework.TestCase;

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

Kelas tes harus memperluas TestCase, dan metode pengujian harus dimulai dengan "test", tidak menerima argumen dan mengembalikan batal.

Untuk mengkompilasi:

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

Untuk berlari:

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

Ini untuk JUnit 4; JUnit 3 menggunakan kelas yang berbeda untuk menjalankan tes (coba junit.textui.TestRunner).

daniel kullmann
sumber
Terima kasih .. java -cp /usr/share/java/junit.jar:. junit.textui.TestRunner TestBasicLinkedListberfungsi untuk JUnit3. Ini sangat membantu.
Jayesh
Penjelasan yang bagus untuk memastikan bahwa dasar-dasar berjalan! Thx a ton
Boris Däppen
1
sudo apt-get install junit4
  • /usr/share/java/junit4.jar adalah symlink ke versi junit4 terbaru.
  • /usr/share/java/junit.jar adalah symlink ke versi junit3 terbaru.

Jika aplikasi Anda mengharuskan Anda untuk mengatur $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

Jika aplikasi Anda mengharuskan untuk memilikinya di $CLASSPATH:

Cukup salin ke salah satu direktori classpath aplikasi Anda.

Gayan Weerakutti
sumber