【发布时间】:2018-05-01 14:55:00
【问题描述】:
我现在遇到了一个奇怪的问题。
我目前正在构建一个 Laravel 包,它位于 Github 上的 https://github.com/matthewbdaly/laravel-error-snapshot。我正在使用 Orchestra Testbench package 来单独测试这个包以及它的 BrowserKit 扩展。
当我在本地运行测试套件时,它运行良好。但是,在 Travis CI 中,它会抛出以下错误:
Error: Class 'Route' not found in /home/travis/build/matthewbdaly/laravel-error-snapshot/src/routes.php on line 3
所以我尝试在routes.php 中显式导入Route 外观。同样它只在本地工作,但它返回了不同的错误消息:
PHP Fatal error: Uncaught RuntimeException: A facade root has not been set. in /home/travis/build/matthewbdaly/laravel-error-snapshot/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:218
我真的不确定为什么它在一种环境中工作,但在另一种环境中却不行。任何人都可以对此有所了解吗?据我所知,这似乎不是 Travis CI 的临时问题,但我不确定还有什么问题。
编辑:这很有趣...
如果我安装 Xdebug 并在启用覆盖率的情况下运行测试,我可以在本地重现错误:
PHP Fatal error: Uncaught Error: Class 'Route' not found in /home/matthew/Projects/laravel-error-snapshot/src/routes.php:3
Stack trace:
#0 /home/matthew/Projects/laravel-error-snapshot/vendor/phpunit/php-code-coverage/src/CodeCoverage.php(1097): include_once()
#1 /home/matthew/Projects/laravel-error-snapshot/vendor/phpunit/php-code-coverage/src/CodeCoverage.php(269): SebastianBergmann\CodeCoverage\CodeCoverage->initializeData()
#2 /home/matthew/Projects/laravel-error-snapshot/vendor/phpunit/phpunit/src/Framework/TestResult.php(659): SebastianBergmann\CodeCoverage\CodeCoverage->start(Object(Tests\Feature\SnapshotTest))
#3 /home/matthew/Projects/laravel-error-snapshot/vendor/phpunit/phpunit/src/Framework/TestCase.php(894): PHPUnit\Framework\TestResult->run(Object(Tests\Feature\SnapshotTest))
#4 /home/matthew/Projects/laravel-error-snapshot/vendor/phpunit/phpunit/src/Framework/TestSuite.php(744): PHPUnit\Framework\TestCase->run(Object(PHPUnit\Framework\TestResult))
#5 /home/matthew/Projects/laravel-error-snapshot/vendor/phpunit/ in /home/matthew/Projects/laravel-error-snapshot/src/routes.php on line 3
我认为这与 Route 外观没有以某种方式解决有关。
【问题讨论】: