使用H2服务器模式进行Grails集成测试

使用H2服务器模式进行Grails集成测试,grails,groovy,h2,Grails,Groovy,H2,我想在服务器模式下尝试用户H2 db进行grails集成测试,但有一个问题:H2GrailsPlugin:startedTCP server-args:-TCP,-tcpPort,8043 错误pool.ConnectionPool-无法创建池的初始连接。 消息:连接断开:“java.net.ConnectException:连接被拒绝:localhost:8043” 现在,我使用grails h2插件运行h2服务器,并在Config.groovy中进行下一次配置: plugins { h2 {

我想在服务器模式下尝试用户H2 db进行grails集成测试,但有一个问题:
H2GrailsPlugin:startedTCP server-args:-TCP,-tcpPort,8043
错误pool.ConnectionPool-无法创建池的初始连接。
消息:连接断开:“java.net.ConnectException:连接被拒绝:localhost:8043”

现在,我使用grails h2插件运行h2服务器,并在Config.groovy中进行下一次配置:

plugins {
h2 {
    tcpserver {tcpPort = 8043;}
}
}
这是我的数据源:

    test {
    dataSource_one {
        pooled = true
        driverClassName = "org.h2.Driver"
        username = "sa"
        password = ""

        dbCreate = "update"
        //url = "jdbc:h2:mem:testDb;MVCC=TRUE;LOCK_TIMEOUT=10000;DB_CLOSE_ON_EXIT=FALSE"
        url = "jdbc:h2:tcp://localhost:8043/testDb"
    }
我还尝试在Bootstrap.groovy中直接运行服务器:

import grails.util.Environment
import org.h2.tools.Server

class BootStrap {

    Server server
def init = { servletContext ->

    println "INIT"

    if(Environment.current == Environment.TEST){
        server = Server.createTcpServer('-tcpPort', '8043').start()
    }
}
def destroy = {
    server.stop()
}
}

但由于之前引发了异常,所以未执行此代码。如果有人能帮我解决这个问题,那就太好了。

为什么要在8043上使用h2?您是否测试了8043上是否有h2可用的连接。我建议首先尝试删除插件{h2{tcpserver{tcpPort=8043;}}}},并使用grails附带的默认设置正常运行它。我需要多个连接功能,正如我所知,只有服务器模式提供了它,而不是默认的嵌入式。