2009-02-07 50 views
3

我想在我的grails測試中使用一些JUnit 4功能,但是當前grails測試在JUnit 3下運行。JUnit 4可以使用groovy,但是可以用JUnit 4替換Grails中的JUnit jar一個似乎沒有啓用我正在尋找的功能。在grails中使用junit 4

任何人都知道我可以如何讓我的grails運行我的測試與junit 4?

回答

4

可以爲你使用Groovy 1.5+和Java 5+只要使用JUnit 4的Grails:

http://groovy.codehaus.org/Using+JUnit+4+with+Groovy

+0

嗨,感謝您的回覆,我已經看到了這個鏈接,但我仍然不確定如何讓grails test-app腳本在JUnit 4下運行我的測試。 – Robin 2009-02-07 14:21:24

+0

嗨,我只是將junit4 jar替換爲Grails 1.0.4 lib。我發現它的工作方式與junit3相同,我不能讓junit4功能在那裏工作。 – chanwit 2009-02-07 15:10:12

0

Grails的不支持JUnit 4中他們looking into supporting it in Grails 1.3。您可以強制依賴JUnit 4,但Grails工具可能會忽略您的測試,錯誤地運行它們,或者您可能會看到其他奇怪的副作用。

要強制JUnit 4依賴(需要您自擔風險),請打開您的grails-app/conf/BuildConfig.groovy文件。在該文件中,修改依賴繼承部分包括以下內容:

inherits("globals") { 
    excludes "junit" 
} 

dependencies { 
    test "junit:junit:4.7" 
} 

然後,在SpringSource工具套件,右鍵單擊您的項目,並選擇Grails的工具 - >刷新依賴。這應該用junit替換你的Grails依賴項中的junit 3.8.1。

4

由於Grails的1.3.6,它看起來像JUnit 4中不完全支持。集成測試在Junit 4中很好,但是擴展GrailsUnitTestCase的單元測試僅限於Junit 3. GrailsUnitTestCase擴展了GroovyTestCase,它仍然與Junit 3綁定。

在Groovy文檔中(http://groovy.codehaus.org/使用+ JUnit + 4 + + Groovy)它說支持Junit 4,但注意到「目前,沒有針對JUnit 4的特殊Groovy擴展」。所以你可以使用它,但Groovy測試擴展沒有一個利用它。

這是一個單元測試的殺手,需要使用任何像mockDomain這樣的Grails測試擴展。我繼續假設我有效地堅持使用Junit 3.