2

ブラウザからサービスを実行すると動作しますが、テスト ファイルを実行すると次のエラーが発生します。

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/',
                )
            )
        ));

テストは機能します。ServiceTest: API/ドメイン/Tests/ServiceTest.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);

しかし、これはmiには機能しません。

4

1 に答える 1