1

嗨人群情报!

我有不同的测试套件,它们在 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 中没有明确定义?!

任何有同样问题(或更好:解决方案)的人?

4

0 回答 0