2

我在 travis-ci 上为 php 7.0 和 7.2 运行 php 构建矩阵。

https://travis-ci.org/uawcob/course-overrides/jobs/242630482

在 7.0 上,测试全部通过并且代码覆盖率生成良好。

php 7 截图通过了伟大的

在 7.2 上,您可以看到所有测试都运行并通过了相同的测试,但是生成代码覆盖率报告会引发异常,从而导致整个构建失败

截图 php 7.2 代码覆盖异常

为什么是这样?

后代的完整错误堆栈:

Generating code coverage report in HTML format ...PHP Fatal error:  Uncaught Illuminate\Contracts\Container\BindingResolutionException: Target [Illuminate\Contracts\Debug\ExceptionHandler] is not instantiable. in /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php:895
Stack trace:
#0 /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php(735): Illuminate\Container\Container->notInstantiable('Illuminate\\Cont...')
#1 /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php(608): Illuminate\Container\Container->build('Illuminate\\Cont...')
#2 /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php(575): Illuminate\Container\Container->resolve('Illuminate\\Cont...')
#3 /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(728): Illuminate\Container\Container->make('Illuminate\\Cont...')
#4 /home/travis/build/uawcob/cour in /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 895
Fatal error: Uncaught Illuminate\Contracts\Container\BindingResolutionException: Target [Illuminate\Contracts\Debug\ExceptionHandler] is not instantiable. in /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 895
Illuminate\Contracts\Container\BindingResolutionException: Target [Illuminate\Contracts\Debug\ExceptionHandler] is not instantiable. in /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 895
Call Stack:
    3.7921    6622616   1. Illuminate\Foundation\Bootstrap\HandleExceptions->handleException() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:0
    3.7921    6622616   2. Illuminate\Foundation\Bootstrap\HandleExceptions->getExceptionHandler() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:80
    3.7921    6622616   3. Illuminate\Foundation\Application->make() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:155
    3.7921    6622616   4. Illuminate\Foundation\Application->make() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:728
    3.7921    6622616   5. Illuminate\Foundation\Application->resolve() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php:575
    3.7921    6622616   6. Illuminate\Foundation\Application->build() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php:608
    3.7921    6622728   7. Illuminate\Foundation\Application->notInstantiable() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php:735
PHP Fatal error:  Uncaught Illuminate\Contracts\Container\BindingResolutionException: Target [Illuminate\Contracts\Debug\ExceptionHandler] is not instantiable. in /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php:895
Stack trace:
#0 /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php(735): Illuminate\Container\Container->notInstantiable('Illuminate\\Cont...')
#1 /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php(608): Illuminate\Container\Container->build('Illuminate\\Cont...')
#2 /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php(575): Illuminate\Container\Container->resolve('Illuminate\\Cont...')
#3 /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Foundation/Application.php(728): Illuminate\Container\Container->make('Illuminate\\Cont...')
#4 /home/travis/build/uawcob/cour in /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 895
Fatal error: Uncaught Illuminate\Contracts\Container\BindingResolutionException: Target [Illuminate\Contracts\Debug\ExceptionHandler] is not instantiable. in /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 895
Illuminate\Contracts\Container\BindingResolutionException: Target [Illuminate\Contracts\Debug\ExceptionHandler] is not instantiable. in /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php on line 895
Call Stack:
    3.7929    6633672   1. Illuminate\Foundation\Bootstrap\HandleExceptions->handleShutdown() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:0
    3.7938    6641592   2. Illuminate\Foundation\Bootstrap\HandleExceptions->handleException() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:119
    3.7938    6641592   3. Illuminate\Foundation\Bootstrap\HandleExceptions->getExceptionHandler() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:80
    3.7938    6641592   4. Illuminate\Foundation\Application->make() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Foundation/Bootstrap/HandleExceptions.php:155
    3.7938    6641592   5. Illuminate\Foundation\Application->make() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Foundation/Application.php:728
    3.7938    6641592   6. Illuminate\Foundation\Application->resolve() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php:575
    3.7939    6641592   7. Illuminate\Foundation\Application->build() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php:608
    3.7939    6641704   8. Illuminate\Foundation\Application->notInstantiable() /home/travis/build/uawcob/course-overrides/vendor/laravel/framework/src/Illuminate/Container/Container.php:735
4

1 回答 1

2

查看您的代码以获取确切的错误消息,上游建议的修复./app/Http/routes.php是从代码覆盖中排除该文件:

...
<whitelist processUncoveredFilesFromWhitelist="true">
    <directory suffix=".php">./app</directory>
        <exclude>
            <file>./app/Http/routes.php</file>

            <!-- ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^  -->

...

这是通过快速查看失败的构建的项目源,表明这尚未在phpunit.xml.dist文件中设置。我不能说为什么这只发生在 PHP 7.2 版本中。因此,希望这可以揭示更多的信息,也许这会敲响警钟(例如,不同的 Phpunit 版本)。

于 2017-06-19T11:33:48.767 回答