[英]Running Junit test from command line
因此,我編寫了一個名為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
和ItemTest
C:\\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
放在classpath中嗎?
UPD#1
將此路徑放在我的類路徑中不起作用(使用和不使用src
):
C:\Users\User\IdeaProjects\My_project\src>
UPD#2
當我想上課時,我想找他,因為他存儲在文件系統中或放置在什么包中? 因為我沒有軟件包,所以My_project
除了是項目名外,還包括模塊名。
解決了
這是方法-我將以下路徑添加到classpath中:
類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
您必須將.class文件的位置放在類路徑中。 即使您位於同一文件夾中,如果它們不在類路徑中,也不會找到它們。 那是來自DOS x...。
在DOS中,操作系統首先在當前文件夾中查找。 操作系統在其他任何地方都首先在路徑(或Java的類路徑)中查找。
如果Item在com.example.Item包中,並且類在c:\\ users \\ test \\ myproj \\ target \\ com \\ example \\ Item.class中,則必須將c:\\ users \\ test \\ myproj \\ target \\添加到類路徑
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.