首先,确保您的测试实际上以预期格式生成覆盖率报告并将其输出到控制台,因为这是 GitLab CI 从中获取覆盖率百分比的地方。
如果测试套件已经输出覆盖率报告,那么问题可能是您正在使用的正则表达式。
coverage:
关键字 需要一个与包含覆盖率报告的作业日志中的行相匹配的正则表达式。
我不确定
coverage: ^TOTAL.+?(\d+\%)$
:^
(在行的开头断言位置)通常是启动正则表达式,而不是在正则表达式的中间。尝试专注于 TOTAL
,而不是之前的内容)
例如:
run tests:
stage: test
coverage: '/TOTAL.+?(\d+\%)/'
正则表达式
'/TOTAL.+?(\d+\%)/'
将匹配包含“TOTAL”后跟任意数量的字符 (.+?
) 和以“%”结尾的数字 (\d+\%
) 的行。如果您的测试生成的覆盖率报告不遵循此格式,您将需要相应地调整您的正则表达式。
请记住,您的正则表达式应与作业日志中显示覆盖率百分比的行精确匹配。对于不同的测试工具,它可能会有所不同。这是
pytest-cov
的示例:
run tests:
stage: test
coverage: '/TOTAL\s+(\d+\%)/'
您可以使用作业日志测试您的正则表达式,以确保它与覆盖率信息正确匹配。