2009-02-07 71 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.