Grails 3 + IntelliJ:运行集成测试会产生"没有配置GORM实现。确保GORM已正确初始化"

时间:2018-02-16 09:20:46

标签: grails intellij-idea grails3

我有一个简单的Grails 3.3.2应用程序。我可以使用gradle test integrationTest运行测试。但是当我尝试在IntelliJ中右键单击并运行测试类或单个测试或整个测试套件时,我得到:

  

未配置GORM实施。确保GORM已正确初始化

当我将它们作为jUnit测试运行时会发生这种情况。

如果我尝试运行Grails测试,我会得到:

  

未找到包含

的测试

我试图在IntelliJ中清理构建和重置缓存,但似乎没有任何帮助。不幸的是,我不知道我将Grails + IntelliJ置于这种状态所做的工作。它曾经工作,但现在它没有,我不确定发生了什么变化。

1 个答案:

答案 0 :(得分:8)

我找到了一个“修复”,等等。

我从我的测试类中编辑了@IntegrationTest注释:

@Integration

@Integration(applicationClass = Application.class)

现在再次运作。

有趣的是,如果我将其更改回@Integration,它仍然有效。但如果我跑干净,并重新运行,它就会停止工作。所以这里肯定有点不可思议。

编辑:我写了以下测试用例:

CompilerConfiguration configuration = new CompilerConfiguration()
configuration.setTolerance(1)

println new File("src/integration-test/groovy/my/package/Mytest.groovy").isFile()
// true

def source = new SourceUnit(
    new File("src/integration-test/groovy/my/package/MyTest.groovy"),
    configuration,
    null,
    new ErrorCollector(configuration))

println source
// org.codehaus.groovy.control.SourceUnit@19bbb216
println source.source
// org.codehaus.groovy.control.io.FileReaderSource@6cfac0bd
println source.source.URI
// file:/path/to/my/app/src/integration-test/groovy/my/package/MyTest.groovy
println MainClassFinder.searchMainClass(source.source.URI)
// null

当未设置@Integration属性时,AST转换MainClassFinder.searchMainClass运行applicationClass。所以这似乎表明它由于某种原因无法根据集成测试自动找到我的应用程序的应用程序类。然后,我不确定它在运行时实际获得了哪个源单元,所以我的测试用例可能不太现实。