在Jenkins服务器上使用MySQL DB时无法运行Sping Boot mvn测试用例

6ojccjat  于 2023-04-05  发布在  Mysql
关注(0)|答案(1)|浏览(119)

我是Jenkins服务器的新手,目前正在测试它。然而,我遇到了以下情况的错误:
我有一个带有MySQL数据库的Sping Boot 应用程序,我试图在Jenkins服务器上运行测试用例。不幸的是,Jenkins服务器无法连接到MySQL数据库。
为了解决这个问题,我添加了以下测试步骤:

stage('Run the test cases'){
    steps{
    withCredentials([usernamePassword(credentialsId: '4a632d56-baf5-4455-90fe-21e6823f58f1', passwordVariable: 'password', usernameVariable: 'user')]) {
        sh "mysql connection"
        sh "mysql -h 192.168.112.2 -umaninder -pmaninder"
        sh "connection testing done"
        sh "mvn test"
    }
    }
}

我已经提到了安装MySQL服务器的机器的IP地址,如果我在Jenkins机器终端上使用相同的命令,我可以连接MySQL DB,但不知何故,它在这里失败了。

错误:ERROR 2002(HY 000):无法通过socket '/run/mysqld/mysqld.sock'连接到本地MySQL服务器(2)

任何帮助都是值得的:

balp4ylt

balp4ylt1#

在我看来,也许你的Spring代码试图连接到一些本地MySQL示例?即你的application-test.properties Spring配置没有使用远程服务器?mysql -h与你的mvn test命令无关...
在任何情况下,都不建议连接到外部示例进行测试(确切的原因是-如果数据库因任何原因不可用,则无法部署任何东西)。如果您的Jenkins示例具有可用的Docker,则可以使用TestContainers启动/运行/停止整个数据库服务器作为测试的一部分。
否则,根据您的测试覆盖需求,您可以模拟Spring Repository对象和查询结果,并相信您在运行时真正使用的库将始终做正确的事情。

相关问题