如何安装/使用 JUnit?

如何安装/使用 JUnit?

我已经在 Ubuntu 11.04 上安装了 JUnit

sudo apt-get install junit

然后创建一个测试文件,如:

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

然后尝试在终端中运行

java org.junit.runner.JUnitCore TestBasicLinkedList.java

得到:

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.

我如何使用 JUnit?有没有比长命令更好的更短的方法来使用它java org.junit.runner.JUnitCore TestBasicLinkedList.java?也许像junit *.Tests.java也许?

答案1

为了让您快速启动并运行,这是一个基本的测试用例:

import junit.framework.TestCase;

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

测试类应该扩展 TestCase,测试方法应该以“test”开头,不接受参数并返回 void。

编译:

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

跑步:

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

这是针对 JUnit 4 的;JUnit 3 使用不同的类来执行测试(尝试 junit.textui.TestRunner)。

答案2

一般来说,JUnit(就像任何 Java 库一样)需要位于您的类路径中。我不知道 Ubuntu 究竟将 junitX.jar 存储在哪里,但您可能需要类似这样的内容:

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

您需要TestBasicLinkedList先进行编译。

答案3

sudo apt-get install junit4
  • /usr/share/java/junit4.jar是指向最新 junit4 版本的符号链接。
  • /usr/share/java/junit.jar是指向最新 junit3 版本的符号链接。

如果您的应用程序要求您设置$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

如果您的应用程序需要它,则$CLASSPATH

只需将其复制到应用程序的一个类路径目录中即可。

相关内容