【发布时间】:2014-05-30 11:51:53
【问题描述】:
所以我编写了一个名为 Item 的类,并使用 Junit 编写了一个名为 ItemTest 的测试,我想从命令行执行我的测试。这是我遵循的步骤:
-
设置路径,运行 java.exe 并将类路径设置为库
...> set path="C:\Program Files (x86)\Java\jdk1.7.0_40\bin" ...> set classpath=C:\Program Files (x86)\Java\hamcrest-core-1.3.jar; C:\Program Files (x86)\Java\junit-4.11.jar -
然后我只需运行 org.junit.runner.JUnitCore 以查看添加的库是否在类路径中
...>java org.junit.runner.JUnitCore输出是
JUnit version 4.11 Time: 0,001 OK (0 tests) -
然后我编译没有错误
Item和ItemTestC:\Users\User\IdeaProjects\My_project\src>javac .\main\java\Item.java .\test\java\ItemTest.java -
然后尝试 ro 运行这些类
C:\Users\User\IdeaProjects\My_project\src>java org.junit.runner.JUnitCore main.java.Item test.java.ItemTest -
最后我得到了这个
JUnit version 4.11 Exception in thread "main" java.lang.NoClassDefFoundError: main/java/Item (wrong name: Item) at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:792) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:14 2) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:424) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:190) at org.junit.runner.JUnitCore.runMain(JUnitCore.java:86) at org.junit.runner.JUnitCore.runMainAndExit(JUnitCore.java:47) at org.junit.runner.JUnitCore.main(JUnitCore.java:40)如何解决这个问题?我应该把
Item放在类路径中吗?
UPD#1
将此路径放在我的类路径中不起作用(有和没有src):
C:\Users\User\IdeaProjects\My_project\src>
UPD#2
当我想在他存储在文件系统或他放置的包中时运行我向他讲授的课程时?因为我没有包,所以My_project除了是项目名之外就是模块名。
已解决
这就是方式 - 我将下一个路径添加到类路径:
-
类
Item的路径:C:\Users\User\IdeaProjects\My_project\src\main\java\; -
测试类
ItemTest的路径:C:\Users\User\IdeaProjects\My_project\src\test\java\; -
然后简单地运行:
...>java org.junit.runner.JUnitCore ItemTest
【问题讨论】:
标签: java unit-testing command-line junit hamcrest