Тест Laravel не работает при запуске всего набора тестов, ReflectionException: Конфигурация класса не существует - PullRequest
0 голосов
/ 20 ноября 2018

В настоящее время я разрабатываю набор тестов для моего lumen API.Я использую люмен 5.6 с phpunit 7.

У меня есть следующий тест:

use PHPUnit\Framework\TestCase;

class ExportControllerTest extends TestCase
{

    public function testGetHeader()
    {
        $controller = app()->make("App\Http\Controllers\ExportController");
        $header = $controller->getHeader();
        self::assertNotNull($header);

        self::assertEquals($header[0], "title");
    }

 }

С TestCase.php:

namespace Tests;

abstract class TestCase extends \Laravel\Lumen\Testing\TestCase
{
    /**
     * Creates the application.
     *
     * @return \Laravel\Lumen\Application
     */
    public function createApplication()
    {
        return require __DIR__.'/../bootstrap/app.php';
    }

}

Когда я запускаю тест по отдельностисо следующим он отлично работает:

phpunit --bootstrap path_to_project \ bootstrap \ app.php --configuration path_to_project \ phpunit.xml path_to_project \ tests \ app \ Http \ Controllers \ ExportControllerTest.php

B, но когда я пытаюсь запустить весь набор тестов с помощью:

phpunit --bootstrap path_to_project \ bootstrap \ app.php --configuration path_to_project \ phpunit.xml path_to_project \tests

Я получаю следующую ошибку:

ReflectionException : Class config does not exist
 path_to_project\vendor\laravel\framework\src\Illuminate\Container\Container.php:767
 path_to_project\vendor\laravel\framework\src\Illuminate\Container\Container.php:646
 path_to_project\vendor\laravel\framework\src\Illuminate\Container\Container.php:601
 path_to_project\vendor\laravel\lumen-framework\src\Application.php:223
 path_to_project\vendor\laravel\framework\src\Illuminate\Container\Container.php:1210
 path_to_project\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php:259
 path_to_project\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php:89
 path_to_project\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php:65
 path_to_project\vendor\laravel\framework\src\Illuminate\Database\DatabaseManager.php:327
 path_to_project\vendor\laravel\framework\src\Illuminate\Support\Facades\Facade.php:223
 path_to_project\app\Services\RawQueryService.php:114
 path_to_project\app\Services\RawQueryService.php:81
 path_to_project\app\Services\RawQueryService.php:37
 path_to_project\app\Services\SearchService.php:56
 path_to_project\app\Http\Controllers\ExportController.php:83
 path_to_project\tests\app\Http\Controllers\ExportControllerTest.php:19

Где конфиг phpunit.xml:

<?xml version="1.0" encoding="UTF-8"?>
<phpunit backupGlobals="false"
         backupStaticAttributes="false"
         bootstrap="bootstrap/app.php"
         colors="true"
         convertErrorsToExceptions="true"
         convertNoticesToExceptions="true"
         convertWarningsToExceptions="true"
         processIsolation="false"
         stopOnFailure="false">
    <testsuites>
        <testsuite name="Application test Suite">
            <directory suffix="Test.php">./tests</directory>
        </testsuite>
    </testsuites>
    <filter>
        <whitelist processUncoveredFilesFromWhitelist="true">
            <directory suffix=".php">./app</directory>
        </whitelist>
    </filter>
    <php>
        <env name="APP_ENV" value="testing"/>
        <env name="CACHE_DRIVER" value="array"/>
        <env name="QUEUE_DRIVER" value="sync"/>
        <env name="DB_PORT" value="11009"/>
        <env name="DB_DATABASE" value="test"/>
        <env name="DB_HOST" value="localhost"/>
        <env name="DB_USERNAME" value="null"/>
        <env name="DB_PASSWORD" value="null"/>
    </php>
</phpunit>

Ни одно из свойств в моем .env файл содержит пробелы, как я заметил, это часто указывается в качестве причины этой ошибки.

Кто-нибудь знает, что может вызвать эту проблему?

Заранее спасибо!

...