2016-12-20 7 views
1

У меня есть эластичный поиск, работающий не в тестовой среде. Однако, когда я создаю модель в тесте по какой-то причине, она не работает. Я попытался запустить его с очередью и без очереди. Я вижу, что задание создано и что задание выполняется до совершения вызова. Тем не менее, я могу вытащить вещи, которые уже находятся в базе данных в тестовом коде. Любые идеи, почему это не будет работать при тестировании?Laravel Scout и Elastic Search Не работают в тестах

Это мой тестовый код

$user = $this->newLoggedInUser(); 
$invoice = factory(App\Invoice::class)->create(['account_id' => $user->account_id]); 


$this->get($this->url() . '?q=' . $invoice->title, $this->userAuthHeader($user)) 
     ->seeJson([ 
      'Title'  => 'Invoice: ' . $invoice->number . ($invoice->title ? ' - ' . $invoice->title : ''), 
      'Description' => 'Customer: ' . $invoice->customer->name, 
      'Type'  => 'Invoice', 
     ]) 
     ->assertResponseStatus(200); 

ответ

-1

я обнаружил, что я должен был добавить небольшую задержку на вызов получить как индекс не был обновлен до звонка. Поэтому я добавил sleep(1) и исправил его. Кроме того, я обнаружил, что лучше всего указать отдельный индекс для тестовой среды в конфиге.

$user = $this->newLoggedInUser(); 
$invoice = factory(App\Invoice::class)->create(['account_id' => $user->account_id]); 

sleep(1); 

$this->get($this->url() . '?q=' . $invoice->title, $this->userAuthHeader($user)) 
     ->seeJson([ 
      'Title'  => 'Invoice: ' . $invoice->number . ($invoice->title ? ' - ' . $invoice->title : ''), 
      'Description' => 'Customer: ' . $invoice->customer->name, 
      'Type'  => 'Invoice', 
     ]) 
     ->assertResponseStatus(200); 
Смежные вопросы