[轉]JUnit-4.11使用報java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing錯誤

原文引自: http://blog.csdn.net/castle07/article/details/8553704java

今天嘗試使用JUnit,下載了最新的JUnit版本,是4.11,結果嘗試使用發現老是報java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing這樣的錯誤,上網查了一下,通常的解決方案是,換一個低一點的版本就行了。還有人說,是缺乏hamcrest的包。去官網又看了一下,結果發現這樣一段話:maven

  • junit.jar: Includes the Hamcrest classes. The simple all-in-one solution to get started quickly.Starting with version 4.11, Hamcrest is no longer included in this jar.
  • junit-dep.jar: Only includes the JUnit classes but not Hamcrest. Lets you use a different Hamcrest version.

注意黑色加下劃線的部分。說明4.1.1中沒有hamcrest包了,不知道做者是怎麼想的。ui

 

最好的解決方法是:this

 

使用是導入包的方案:junit.jar + hamcrest-core.jar + hamcrest-library.jarspa

或者是:junit-dep.ajr+hancrest-all.jar.net

這兩種導入方法雖然儘可能避免了導入重複的包,但使用時仍是遇到了衝突。查看包中各種和文檔後發現有些類(例如:斷言is())同時出如今了org.hamcrest.Mathchers和org.hamcrest.core中,則在用到時候引入的時候須要注意。rest

相關文章
相關標籤/搜索