如何在 windows 上从命令行 运行 Junit 测试没有包?
How to run Junit tests from command line on windows with no package?
我有一个名为 learning
的文件夹(这是我 运行 正在执行所有命令的地方)。在这个文件夹中,我有两个文件,一个叫做 Driver.java
,它是一个简单的 main class,带有一个简单的 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.access0(Unknown Source)
at java.net.URLClassLoader.run(Unknown Source)
at java.net.URLClassLoader.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?它就在同一个文件夹中吗?
您只是将当前目录添加到类路径中进行编译。这也需要为测试调用完成,即。 ;.
在 windows :.
在 linux
java -cp junit-4.13-beta-1.jar;. org.junit.runner.JUnitCore DriverTest
我有一个名为 learning
的文件夹(这是我 运行 正在执行所有命令的地方)。在这个文件夹中,我有两个文件,一个叫做 Driver.java
,它是一个简单的 main class,带有一个简单的 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.access0(Unknown Source)
at java.net.URLClassLoader.run(Unknown Source)
at java.net.URLClassLoader.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?它就在同一个文件夹中吗?
您只是将当前目录添加到类路径中进行编译。这也需要为测试调用完成,即。 ;.
在 windows :.
在 linux
java -cp junit-4.13-beta-1.jar;. org.junit.runner.JUnitCore DriverTest