运行集成测试时,我总是遇到异常:

import grails.testing.mixin.integration.Integration
import grails.transaction.Rollback
import org.springframework.beans.factory.annotation.Autowired
import spock.lang.Specification

@Integration
@Rollback
class EmailSpec extends Specification {


    @Autowired
    EmailService service

//    def setup() {
//    }
//
//    def cleanup() {
//    }

    def 'test send email'() {
        when: 'email gets sent'
        def sendMailCalled = false
        service.metaClass.sendTestEMail = {
            sendMailCalled = true
        }
        service.sendTestEMail("test@myprovider.de")

        then:
        sendMailCalled == true
    }
}

结果:
"C:\Program Files\Java\jdk1.8.0_112\bin\java" -ea -Didea.test.cyclic.buffer.size=1048576 "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.4\lib\idea_rt.jar=49498:C:\Program Files\JetBrains\IntelliJ IDEA 2017.2.4\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\user\AppData\Local\Temp\classpath.jar com.intellij.rt.execution.junit.JUnitStarter -ideVersion5 -junit4 "de.mypackeage.EmailSpec,test send email"

java.lang.IllegalStateException: No GORM implementations configured. Ensure GORM has been initialized correctly

    at org.grails.datastore.gorm.GormEnhancer.findSingleDatastore(GormEnhancer.groovy:380)
    at org.grails.datastore.gorm.GormEnhancer.findSingleTransactionManager(GormEnhancer.groovy:399)
    at de.mypackeage.EmailSpec.test send email(EmailSpec.groovy)




Process finished with exit code -1

该测试已经成功运行,但是我真的不知道为什么它不再运行。任何帮助都将受到赞赏。

该项目使用Grails 3.3.1进行设置

最佳答案

问题是我在IntelliJ中将测试作为JUnit测试执行。因此grails上下文没有启动并导致该错误。

09-27 14:40
查看更多