测试失败由gitlab-ci运行,但没有在bash中运行

时间:2013-10-01 18:46:01

标签: python unit-testing continuous-integration gitlab

我正在使用gitlab-ci自动构建一个C ++项目并运行用python编写的单元测试(它运行守护进程,然后通过基于网络/套接字的接口进行通信)。

我发现的问题是,当测试由GitLab-CI运行程序运行时,它们会因各种原因而失败(通过一次测试,它会无限期地停止在特定网络操作上,另一方面则无法接收应该已发送的数据包。)

但是:当我打开SSH并手动运行测试时,它们都能成功运行(测试也在我们所有开发人员的机器上成功[linux / windows / OSX])。

此时我一直试图复制gitlab-ci正在使用的足够的构建/测试条件,但我真的不知道任何确切的细节,我的实验都没有重现这个问题。

我非常感谢以下任何一方的帮助:

  • 关于在gitlab-ci之外手动运行测试的指导,但复制其环境以便我可以获得相同的错误/失败并调试守护进程和/或测试,或者
  • 了解GitLab-CI-Runner运行时测试失败的原因

Sidetrack 1: 出于某种原因,并非通常发送到shell的所有(主要是调试)输出都显示在gitlab-ci输出中。

Sidetrack 2: 我也玩jenkins来设置它,但其中一个测试甚至无法连接到守护进程,而其余测试都没问题。

1 个答案:

答案 0 :(得分:0)

-i通常只为转轮使用一个docker容器并在其中运行测试来复制问题,不知道你是否设置了这样的设置=(。 - 通常测试并没有实际失败,如果你登录容器,你会看到他实际上做了所有事情,但没有报告回Gilab CI,不要惊慌它是否工作它只是不说它。

PS:你可以通过检查机器上的进程来查看它是否实际运行。

例如: 我用java和docker运行gitlab ci:

gitlab ci开始做它的东西然后下载,同时我登录容器并检查他是否真的正在工作并设法上传我编译的docker镜像。