嗨人群情报!
我有不同的测试套件,它们在 teamcity 中以 .cov 文件作为工件进行并行处理,而一个构建配置可以合并代码覆盖。
奇怪的是:用 laravel 的 browser-kit-testing 方法测试的代码是这样的
$this->visitRoute('route.name', ['any'=>'params']);
$this->see('any text');
$this->seeElement('#myContainer');
将在测试套件本身的代码覆盖率中正确显示
但是在将代码覆盖率与其他结果合并后,这些代码将不再被完全覆盖,因为大括号和其他结构代码被标记为未执行
在合并结构代码(如不应计入代码覆盖范围的大括号)后标记为红色
我们的设置:
- 运行 phpunit 9
- 用php7.4
- 和 laravel 6.x
- 在 docker 容器中
- 使用基于 alpine 的自定义图像
- 通过 pcov 进行代码覆盖(比 xdebug 快得多)
- 一开始它在这个星座中工作得很好
- 也许 pcov / phpunit / laravel / browser-kit-testing 中的任何更新导致了这个问题?!
- 但我们不知道为什么它在单个覆盖输出中有效,但在合并中无效
- 通过 phpcov 合并
- 还尝试了 nimut/phpunit-merger - 结果相同
- 使用默认 phpunit-methods 测试的其他代码(例如一些服务类)在合并后也被完美覆盖......似乎只有 browser-kit-testing 覆盖的代码在 .cov-file 中没有明确定义?!
任何有同样问题(或更好:解决方案)的人?