Я столкнулся со странной проблемой, пытаясь создать отчет о тестовом покрытии для Laravel Framework 5.4 в Mac OS X и Ubuntu.
Я проверил источник и получил зависимости.
$ 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, а также в свежем бродячем боксе Laravel Homestead с PHP 7.1.
Я также разработал проект и запустил его в Travis-CI. Он работал с PHP 5.6 и 7.0, но потерпел неудачу с тем же выводом мусора HTML на PHP 7.1.
Вы можете увидеть неудачную сборку здесь: https://travis-ci.org/egorpe/framework/jobs/241038092
Итак, что мне здесь не хватает? В чем дело?
Это была действительная ошибка в Laravel. Исправлено этим запросом https://github.com/laravel/framework/pull/19609
Других решений пока нет …