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

Aug*_*aas 4 grails intellij-idea grails3

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

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

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

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

没有给出包括的测试

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

Aug*_*aas 9

我找到了一个"修复",有点像.

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

@Integration
Run Code Online (Sandbox Code Playgroud)

@Integration(applicationClass = Application.class)
Run Code Online (Sandbox Code Playgroud)

现在又恢复了.

有趣的是,如果我将它改回到正义@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
Run Code Online (Sandbox Code Playgroud)

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