我正在将我的ant构建移动到新的Jenkins服务器上。它可以访问SVN,编译等等。一切都很好,直到它开始运行单元测试。一些测试需要访问数据库才能执行。
我已登录Jenkins运行的服务器,并且通过在数据库端口上使用telnet,我可以看出该路径是打开的。 (IT人员也说道路是开放的)。我知道这是一个数据库问题,因为当我搞乱配置文件时,我可以在本地重现该问题,因此构建无法找到数据库。
我的问题是这个。我真的需要Jenkins告诉我为什么它无法连接到数据库。我一直无法弄清楚如何做到这一点。控制台输出只是显示它永远尝试测试。任何和所有建议都表示赞赏。
答案 0 :(得分:0)
您是否将数据库参数从Ant传递到junit目标?如果是这样,请将-v
参数添加到jenkins配置中的ant build步骤,以获得额外的日志记录。因此,请查看正在设置的数据库参数。
或者,您的测试是否自己加载数据库参数?根据它们的读取方式,您可能会遇到类路径或路径问题。在这种情况下,请记录测试中的路径,类路径和任何其他相关变量。
请记住,如果您不希望它永久挂起,则可以设置一个timeout
参数。
最后,您可以登录jenkins主机并从执行测试中触发线程转储。这是通过向java进程(在* nix上)发送kill -3
信号来完成的,或者,如果您在Windows上运行jenkins并且您的JVM不是太旧,则可以执行jstack。生成的堆栈跟踪(应该出现在Jenkins构建日志中)可能会带来一些洞察力。