从IntelliJ运行Grails集成测试

时间:2011-03-08 16:10:51

标签: grails groovy intellij-idea

我正在使用IntelliJ 10.0.2开发Grails项目。从Grails视图中,如果我右键单击MyIntegrationTest.groovy并单独运行它(通过从右键单击菜单中选择“MyIntegration ...”),其中的测试将通过。当我使用“运行Grails目标”功能并指定“test-app”时,此类中的测试也会通过。

但是,如果我右键单击Tests:integration并选择Run“All Tests”,MyIntegrationTest中的某些测试会失败,因为不会注入依赖项。测试运行的速度也表明没有创建Spring应用程序上下文。有没有办法在IntelliJ中运行所有集成测试(或所有集成和单元测试),而无需使用Grails命令行?

提前致谢!

3 个答案:

答案 0 :(得分:4)

如果与我的情况相同,这就是我如何解决它的问题。我有一个使用.ipr项目风格导入到IDEA的grails项目。如果在项目的主目录中有Project.ipr,Project.iws,Project.iml和Project-grailsPlugins.iml文件,则可以检查项目是否为.ipr样式。

关闭IDEA,备份(为安全起见,如果出现问题)并删除这4个文件。然后打开IDEA并选择New Project。选择“从现有源导入grails项目”,选择源并确保选择.idea - 项目样式。 IDEA应该创建新项目。一定要检查项目结构(Ctrl-Shift-Alt-S) - >项目设置 - >模块 - >源。您应该有两个目录test / unit和test / integration标记为绿色作为测试源。

如果一切顺利,您应该能够右键单击测试:集成和测试:单元项目目录。应该运行“Grails tests:integration”和运行“Grails test:unit”选项,这些选项是您缺少的。

答案 1 :(得分:3)

使用Intellij,您可以选择以Grails:integration,Grails:unit tests或以单元测试的形式运行测试。如果您选择运行单元测试,它将仅适用于测试/单元,并且不会为集成创建弹簧上下文。右键单击test / unit并选择Run-> Grails:unit或右键单击test / integration并选择Grails:integration。应安装IDEA的Grails插件。

答案 2 :(得分:1)

我遇到了一个非常类似的问题,但实际上我在Idea 10.5.2中看到了一个略有不同,几乎相反的行为。我有'.ipr'风格的项目设置。如果我右键单击集成测试类或集成测试包,我只能获得标准的'Run MyIntegrationTests。 。 “。选项,它根据海报的错误消息失败(而不是根据海报描述的行为实际启动集成上下文)。但是,如果我右键单击Grails视图中的'Tests:Integration'顶级项目,我会得到'Run'Grails测试:integr ...“选项,它可以很好地工作。

对我来说这很好,我没有必要将我的项目重建为基于“目录”的结构。