【发布时间】:2018-12-17 01:32:49
【问题描述】:
我有一个名为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 jar?它就在同一个文件夹中吧?
【问题讨论】:
-
你是从好文件夹运行它吗?
-
好文件夹?如果您的意思是我所有代码所在的同一个文件夹,是的。所有这些文件和所有命令都在同一个文件夹中运行。没有任何包裹。
-
benjamintan.io/blog/2014/10/14/…你的代码编译了吗?
-
是的。正如我在问题中提到的,我正在使用
javac -cp junit-4.13-beta-1.jar;. *.java来编译我的代码。我还可以看到Driver.class和DriverTest.class文件都在编译步骤之后创建。现在我缺少任何 jar 文件吗?
标签: java testing junit path classpath