2012-05-21 39 views
3

的Eclipse 3.7.2在Eclipse的JUnit運行使用JUnit @rule

我剛剛實施了一些JUnit 4次測試的@Rule,但是當我在Eclipse中運行他們MethodRule方法不會被調用。這就像在Eclipse測試運行不承認@Rule實現,並沒有做什麼特別的事情與被註解爲@Rule領域。

我甚至嘗試使用像「org.junit.rules.TestName」這樣的「Standard」MethodRule,但它不能正常工作(測試的名稱未填充到實例中)。在Eclipse中運行時,即使在JavaDoc TestName中的示例測試也失敗。

是否有一些竅門? Eclipse是否僅支持JUnit Rules

回答

4

原來,有人已經列入有關項目的運行時類路徑看似「必需的」 JAR。 JAR嵌入了JUnit包,除此之外,它不應該嵌入!所以有這個JAR,命名爲無害的東西像our_runtime_library.jar,有一些特定的應用程序代碼使用JUnit,春天的一些未知的(但舊)版本一起,誰知道還有什麼。以單元測試的形式運行項目時,Eclipse在該JAR中選擇JUnit而不是它自己的版本(因爲它應該,特定於項目的庫始終優先),這是項目所針對的(Eclipse)版本。

什麼亂七八糟的;現在要弄清楚這個人應該有50個捆綁帶。

2

它應該工作,至少在我的Eclipse(在嵌入式的JUnit 4.8)。 所以你可以顯示你的代碼。

另外,JavaDoc說:Note that MethodRule is now deprecated, you should be using TestRule instead.