Laravel 6.12 "A facade root has not been set." 使用 Log::
Laravel 6.12 "A facade root has not been set." when using Log::
在单元测试中使用 Log
会导致奇怪的错误
版本:
Laravel 框架 6.12.0
php 7.4
php单元 8.5.2
<?php
namespace Tests\Unit;
use Illuminate\Support\Facades\Log;
use PHPUnit\Framework\TestCase;
class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
Log::info('hellowli');
$this->assertTrue(true);
}
}
我运行:
$ php7.4 vendor/bin/phpunit tests/Unit/ExampleTest.php
$ php7.4 vendor/bin/phpunit tests/Unit/ExampleTest.php
PHPUnit 8.5.2 by Sebastian Bergmann and contributors.
E 1 / 1 (100%)
Time: 49 ms, Memory: 6.00 MB
There was 1 error:
1) Tests\Unit\ExampleTest::testBasicTest
RuntimeException: A facade root has not been set.
/home/toskan/IdeaProjects/apartments/laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:258
/home/toskan/IdeaProjects/apartments/laravel/tests/Unit/ExampleTest.php:17
ERRORS!
Tests: 1, Assertions: 0, Errors: 1.
您的测试用例扩展了错误的基础 TestCase。
只需将命名空间更改为:
use Tests\TestCase;
而不是:
use PHPUnit\Framework\TestCase;
在单元测试中使用 Log
会导致奇怪的错误
版本: Laravel 框架 6.12.0 php 7.4 php单元 8.5.2
<?php
namespace Tests\Unit;
use Illuminate\Support\Facades\Log;
use PHPUnit\Framework\TestCase;
class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
Log::info('hellowli');
$this->assertTrue(true);
}
}
我运行:
$ php7.4 vendor/bin/phpunit tests/Unit/ExampleTest.php
$ php7.4 vendor/bin/phpunit tests/Unit/ExampleTest.php
PHPUnit 8.5.2 by Sebastian Bergmann and contributors.
E 1 / 1 (100%)
Time: 49 ms, Memory: 6.00 MB
There was 1 error:
1) Tests\Unit\ExampleTest::testBasicTest
RuntimeException: A facade root has not been set.
/home/toskan/IdeaProjects/apartments/laravel/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:258
/home/toskan/IdeaProjects/apartments/laravel/tests/Unit/ExampleTest.php:17
ERRORS!
Tests: 1, Assertions: 0, Errors: 1.
您的测试用例扩展了错误的基础 TestCase。
只需将命名空间更改为:
use Tests\TestCase;
而不是:
use PHPUnit\Framework\TestCase;