Laravel 5.2 上的 phpunit 覆盖率

Coverage phpunit on Laravel 5.2

我执行PhPUnit,无法生成覆盖率报告, Laravel版本:5.2 Php 版本:7.3.11。 日志输出为:

PHPUnit 4.8.36 by Sebastian Bergmann and contributors. .

Time: 1.51 seconds, Memory: 22.00MB

OK (1 test, 1 assertion)

Generating code coverage report in HTML format ...count(): Parameter must be an array or an object that implements Countable

我不知道这里有什么问题? 这是我的测试源:

<?php
use Illuminate\Foundation\Testing\WithoutMiddleware;
use Illuminate\Foundation\Testing\DatabaseMigrations;
use Illuminate\Foundation\Testing\DatabaseTransactions;
use Illuminate\Http\Response;

class TravelControllerTest extends TestCase
{
    /**
     * A basic functional test example.
     *
     * @return void
     */
    public function testBasicExample()
    {
         $response = $this->json('GET', '/v1/abc', ['id' => 'Sally']);
         $response->assertSessionHas('temporary_id', $value = 'Sally');
    }
}

升级 PHPUnit 和 PhpCodeCoverage 包将是解决方案。你的包裹太过时了!这是旧版本中的错误。

这里有一些关于这个话题的讨论:

https://github.com/Codeception/Codeception/issues/4703

https://github.com/sebastianbergmann/php-code-coverage/issues/551