【发布时间】:2018-04-11 22:30:54
【问题描述】:
所以我的项目带有单元测试,当我在 GitLab 中配置 CI 系统后执行合并请求时,它们很好地显示为绿色或红色圆圈。
但现在我也有一些集成测试,它们驻留在一个单独的存储库中(为什么要问?因为我有多个需要一起测试的微服务,每个微服务都有自己的存储库)。
当我对此集成测试的存储库执行合并请求时,它们显示得很好,但我需要它让这些测试显示在其他存储库的合并请求上。
我确实设法使用 GitLab CI 给我的 URL/命令从微服务的存储库中触发它们,例如:curl -X POST -F token=... -F ref=master https://gitlab.com/api/v4/projects/.../trigger/pipeline
但是在微服务的存储库中,它总是显示为绿色圆圈,表示它已成功启动集成测试,但我不知道如何显示测试结果(或者至少它们是否损坏) .
谁能给我指出正确的文档(如果有的话),或者只是向我解释如何去做以及是否可能?
我能想到的最佳解决方案是将我的集成测试创建为一个库,然后我会在所有其他项目中导入并使用该库,但我绝对宁愿避免这种情况,因为它会迫使我使用与项目相同的编程语言编写集成测试(假设它们相同)或进行一些修改以在其他语言上运行它。
谢谢。
【问题讨论】:
-
如果你有多个 repo,但每个 repo 只能在 everything 通过时合并,那么你比 mono-repo 有什么优势?
-
所有微服务的优点:团队可以独立工作;项目可以用不同的编程语言编写;等等。另外,多个存储库的决定不值得讨论:/(Ps.:不是我的决定)。
-
那是微服务,不是多仓库。基本上,听起来你被要求构建一个零散的单一存储库。但是,是的,我想这超出了问题的范围;)
-
通常每个微服务都在单独的存储库中创建,特别是如果您想单独扩展它们或支持多种语言。
标签: continuous-integration gitlab integration-testing