Codeception远程覆盖率include/exclude文件配置不生效如何解决?
该需求完全可以实现,配置不生效的核心原因是未开启远程覆盖率专属配置项,本地默认的include/exclude规则不会作用于远程覆盖率数据,同时原通配符规则也存在匹配范围问题,按以下步骤操作即可解决:
第一步:修正codeception.yml的coverage配置
你需要在coverage配置段新增远程覆盖率开关,同时调整通配符规则实现递归匹配+后缀过滤,修改后的配置示例:
coverage: enabled: true # 关键配置:开启远程覆盖率后,本地的include/exclude规则才会作用于远程返回的覆盖率数据 remote: true # 若远程服务器的项目路径和本地路径结构不同,需补充远程根目录路径,结构一致则可省略 # remote_path: /var/www/your_project_root include: # ** 代表递归所有子目录,仅匹配.php后缀文件,自动排除所有非PHP文件 - api_base/api/web/**/*.php exclude: - api_base/system/config.php # 可批量排除不需要的目录/文件类型 - vendor/**/* - tests/**/* - '*.md' - '*.json' - '*.lock'
注:原配置中
api_base/api/web/*仅匹配该目录下的一级文件,不会递归子目录,调整为**/*.php既可以覆盖所有子目录的PHP文件,又能直接过滤非PHP后缀的文件。
第二步:验证c3.php可访问
确保放在项目根目录的c3.php可以通过http://new-project.local/c3.php正常访问,Codeception会自动通过该文件拉取远程覆盖率数据。
第三步:重新执行测试生成报告
原执行命令无需修改,直接运行即可:codecept run acceptance --no-colors --coverage-html coverage
如果执行后仍有不符合预期的文件被纳入,可在命令后加-vvv参数查看调试日志,确认路径匹配规则是否和实际文件路径一致。
内容的提问来源于stack exchange,提问作者CJ Dennis
相关产品推荐
相关产品推荐

