运行集成测试时,我总是遇到异常:
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上下文没有启动并导致该错误。