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