PHPUnit对Laravel Framework的覆盖范围吐出HTML而不是运行测试

问题描述:

我遇到了一个奇怪的问题,试图在Mac OS X和Ubuntu上为Laravel Framework 5.4创建测试覆盖率报告。PHPUnit对Laravel Framework的覆盖范围吐出HTML而不是运行测试

我检出了源并获取了依赖关系。

$ git clone https://github.com/laravel/framework.git 
$ cd framework 
$ composer install 

之后,简单的单元测试运行正常。

$ vendor/bin/phpunit --log-junit junit.xml 
PHPUnit 5.7.20 by Sebastian Bergmann and contributors. 

Runtime:  PHP 7.1.5 
Configuration: /Users/egor/framework/phpunit.xml.dist 

............................................................. 61/2668 ( 2%) 
............................................................. 122/2668 ( 4%) 

然而,当我添加了一个覆盖报告,它吐出一串HTML,而不是运行完整测试集。下面是输出的开头:

$vendor/bin/phpunit --log-junit junit.xml --coverage-clover clover.xml 
PHPUnit 5.7.20 by Sebastian Bergmann and contributors. 

Runtime:  PHP 7.1.5 with Xdebug 2.5.4 
Configuration: /Users/egor/framework/phpunit.xml.dist 

<!DOCTYPE html> 
<html lang="en"> 
    <head> 
     <meta charset="utf-8"> 
     <meta http-equiv="X-UA-Compatible" content="IE=edge"> 
     <meta name="viewport" content="width=device-width, initial-scale=1"> 

     <title>Service Unavailable</title> 

     <!-- Fonts --> 
     <link href="https://fonts.googleapis.com/css?family=Raleway:100,600" rel="stylesheet" type="text/css"> 

我用自制的PHP 5.6,7.0和7.1,以及在与PHP 7.1新Laravel家园的流浪汉框试了一下。

我也分叉了项目,并在Travis-CI中运行它。它使用PHP 5.6和7.0,但在PHP 7.1上使用相同的HTML垃圾输出失败。

你可以看到构建失败这里:https://travis-ci.org/egorpe/framework/jobs/241038092

所以,我在这里失踪?这是怎么回事?

这是Laravel有效的错误。通过此拉动请求修复https://github.com/laravel/framework/pull/19609