GitLab tests in the Continuous Integration (CI) context
原文:https://docs.gitlab.com/ee/development/testing_guide/ci.html
GitLab tests in the Continuous Integration (CI) context
Test suite parallelization on the CI
我们当前的 CI 并行化设置如下:
在
prepare阶段的retrieve-tests-metadata作业可确保我们有一个knapsack/report-master.json文件:- 从 S3 提取
knapsack/report-master.json文件,如果不在此处,则使用{}初始化文件. 
- 从 S3 提取
 每个
[rspec|rspec-ee] [unit|integration|system|geo] nm作业均使用knapsack rspec运行,并且应具有均匀分布的测试份额:- 之所以起作用,是因为"默认情况下传递了所有先前阶段的工件"以来,作业可以访问
knapsack/report-master.json. - 作业将自己的报告路径设置为
"knapsack/${TEST_TOOL}_${TEST_LEVEL}_${DATABASE}_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json". - 如果背包正在执行任务,则运行的测试文件应列在
Report specs,而不是"Leftover specs. 
- 之所以起作用,是因为"默认情况下传递了所有先前阶段的工件"以来,作业可以访问
 update-tests-metadata作业(仅在规范项目的预定管道上运行)将所有knapsack/rspec*_pg_*.json文件合并在一起,然后将它们全部合并为一个knapsack/report-master.json文件,然后将其上传到 S3.
之后,下一个管道将使用最新的knapsack/report-master.json文件.
Monitoring
监视 GitLab 测试套件的master分支以及名称中包含rspec-profile任何分支.
公共仪表板可供所有人查看. 随意查看最慢的测试文件并尝试对其进行改进.
CI setup
- 由于性能原因 ,CI 中默认情况下禁用 Rails 日志到
log/test.log. 要覆盖此设置,请提供RAILS_ENABLE_TEST_LOG环境变量.