Ошибка при выполнении модульного тестирования с laravel для загрузки файла пользовательских настроек

Когда я запускаю сервис из браузера, он работает, но если я запускаю тестовый файл, я получаю эту ошибку:

1) Api\Domain\Tests\ServiceTest::testSetUp
RuntimeException: A facade root has not been set.

/WWW/api/vendor/laravel/framework/src/Illuminate/Support/Facades/Facade.php:210
/WWW/api/src/Api/Infrastructure/Domain/Model/SolrBaseRepository.php:30
/WWW/api/src/Api/Infrastructure/Domain/Model/SolrBaseRepository.php:30
/WWW/api/src/Api/Domain/Tests/ServiceTest.php:80

Конфигурация файла: config / solr.php

return array(
'endpoint' => array(
'localhost' => array(
'host' => '192.168.1.100',
'port' => 8080,
'path' => '/solr/clients/',
)
)
);

База данных Solr:

use Illuminate\Support\Facades\Config;

abstract class SolrBaseRepository
protected $client;/**
* SolrBaseRepository constructor.
*/
public function __construct(){
$this->client = new \Solarium\Client(Config::get('solr'));
}
}

если я изменю

$this->client = new \Solarium\Client(Config::get('solr'));

от

$this->client = new \Solarium\Client(array(
'endpoint' => array(
'localhost' => array(
'host' => '192.168.1.100',
'port' => 8080,
'path' => '/solr/clients/',
)
)
));

Тест работает.
СервисТест: Api / Домен / Тесты / СервисТест.php

class ServiceTest extends \PHPUnit_Framework_TestCase{
public function testSetUp()
{
$this->setUp();
$this->solrServicesRepository = New SolrServicesRepository();
}
}

Я попытался решить это добавление от эта страница на мой ServiceTest.php:

use \Illuminate\Container\Container as Container;
use \Illuminate\Support\Facades\Facade as Facade;

/**
* Setup a new app instance container
*
* @var Illuminate\Container\Container
*/
$app = new Container();
$app->singleton('app', 'Illuminate\Container\Container');

/**
* Set $app as FacadeApplication handler
*/
Facade::setFacadeApplication($app);

Но это не работает для ми.

2

Решение

Это было давно, но я нашел ответ, потому что застрял с той же проблемой.

В вашем тесте вам нужно вызвать функцию родительской настройки, так как она инициализируется:

class ExampleTest extends TestCase
{

public function setUp()
{
parent::setUp();
$this->faker = Faker\Factory::create();
// other lines of code that you need
}

public function testWithFacades()
{
//now it works
}
}
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]