Laravel 6.12 «Фасад root не установлен». при использовании Log :: - PullRequest
1 голос
/ 26 января 2020

Использование Log в модульных тестах вызывает странную ошибку

Версии: Laravel Framework 6.12.0 php 7.4 phpunit 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.

1 Ответ

2 голосов
/ 26 января 2020

Ваш тестовый пример расширяет неверную базу TestCase.

Просто измените пространство имен на:

use Tests\TestCase;

Вместо:

use PHPUnit\Framework\TestCase;
...