2017-09-26 37 views
0

我無法使用JUnit編譯測試。當我嘗試這樣做,我得到這個錯誤:Java未處理JUnit jar

package org.junit.jupiter.api does not exist 

我得到這個錯誤編譯即使我把的.jar在同一目錄並編譯如下測試:

javac -cp junit4-4.12.jar Tests.java 

的Test.java的內容是:

import static org.junit.jupiter.api.Assertions.assertEquals; 

import org.junit.jupiter.api.Test; 

public class Tests { 

... several tests ... 

這不是很清楚,我的問題是什麼,據我所知,它應該與工作的.jar - 這是從/ usr /共享/一java,它在我安裝時安裝的地方JUnit的。

+2

錯誤的junit版本。我相信jupiter是在第五版中引入的。 – DwB

+0

我應該在我使用的版本上使用什麼?或者,我可以在哪裏找到junit v5 jar? – user3859096

+0

想象一下,您可以及時向後行駛到1925年的情況。1925年,藍莓編程語言不存在,因此您嘗試編譯藍莓程序將失敗。 Jupiter類不存在於junit 4中,因爲junit 4是1925年,Jupiter類是藍莓編程語言。嘗試谷歌搜索「maven junit 5」,然後從maven central下載junit 5 jar。 – DwB

回答

0

由於@DwB已經提到你有錯誤的junit版本。

以下是JUnit中的jupiter:http://junit.org/junit5/docs/current/user-guide/#overview-what-is-junit-5 簡而言之,JUnit Jupiter API是一組新類,它們僅在junit 5版本中編寫和引入。並試圖使用4版本。

而且我想澄清一些觀點。

even if I put the .jar in the same directory and compile as follows

不要緊,實際上是在同一個目錄或不是你的文件。它的一切都是關於它的道路。如果您僅通過jar文件的名稱來設置jar(與您一樣),那麼您的路徑將相對於您執行javac命令的當前目錄。您可以使用絕對路徑並從您想要的每個目錄運行此命令。

https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html(這一個是窗戶,但對於其他操作系統有路徑書面只有輕微的變化)

如果你得到像包錯誤不存在,ClassNotFound的或類似的話那麼這種類型的錯誤幾乎總是意味着你的類路徑或依賴關係有問題。在你的情況下,你只是有錯誤的版本。

現在關於找到必要的代表。在Java世界中,依賴關係的主要場所之一是maven central。幾乎每個開源庫都可以在那裏找到,默認情況下,maven使用這個庫來從那裏查找和加載依賴關係(在你的情況下這些是jar)。您也可以使用它通過簡單地使用它的UI(https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api/5.0.0)手動獲取必要的罐子。有下載jar按鈕。

現在,如果你知道包或類,但不知道它所在的依賴性(jar爲簡單起見)。在這種情況下,您可以使用http://grepcode.com或其他資源,這些資源允許在可用的源代碼中搜索不同的存儲庫。在大多數情況下這項工作。隨着juniper我沒有設法找到smth那裏,但在其他情況下,這可能會有所幫助)或者最簡單的情況只是谷歌包,並在大多數情況下,它也將有助於定義入口點。

現在解決你的問題。看起來你需要像API一樣的實現。你肯定會需要這個https://mvnrepository.com/artifact/org.junit.jupiter/junit-jupiter-api/5.0.0,但你似乎也需要juniper-engine。首先嚐試添加API,然後根據錯誤添加必要的庫。你可以添加多個罐子到cp(從oracle讀取提供的類路徑指南)。