В настоящее время я разрабатываю набор тестов для моего 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
файл содержит пробелы, как я заметил, это часто указывается в качестве причины этой ошибки.
Кто-нибудь знает, что может вызвать эту проблему?
Заранее спасибо!