我有一个名为learning
的文件夹(我在其中运行所有命令)。在此文件夹中,我有两个文件,一个称为Driver.java
,这是一个带有简单hello world方法的简单主类。另一个文件是DriverTest.java
,其代码如下所示。
import static org.junit.Assert.*;
import org.junit.Test;
public class DriverTest {
@Test
public void test() {
fail("Not yet implemented");
}
}
除此之外,我在同一learning
文件夹中有JUnit 4.13-beta jar。
现在,我在Windows中打开命令行,然后转到learning
文件夹位置并运行此命令。
javac -cp junit-4.13-beta-1.jar;hamcrest-core-2.1-rc4.jar;. *.java
它没有给我任何错误,因此它已经编译了Driver
和DriverTest
Java文件。
现在,我正在尝试使用此命令运行JUnit测试。
java -cp junit-4.13-beta-1.jar;hamcrest-core-2.1-rc4.jar;. org.junit.runner.JUnitCore DriverTest
但是我收到此错误:
JUnit version 4.13-beta-1
Exception in thread "main" java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at org.junit.runner.Computer.getSuite(Computer.java:28)
at org.junit.runner.Request.classes(Request.java:77)
at org.junit.runner.JUnitCommandLineParseResult.createRequest(JUnitCommandLineParseResult.java:116)
at org.junit.runner.JUnitCore.runMain(JUnitCore.java:77)
at org.junit.runner.JUnitCore.main(JUnitCore.java:36)
Caused by: java.lang.ClassNotFoundException: org.hamcrest.SelfDescribing
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 17 more
为什么找不到我的HamCrest
罐子?它在同一文件夹中吗?
答案 0 :(得分:0)
您仅将当前目录添加到类路径进行编译。对于测试调用,也需要这样做。在Linux的Windows ;.
中的:.
java -cp junit-4.13-beta-1.jar;. org.junit.runner.JUnitCore DriverTest