2017-01-19 3 views
3

Как проверить в laravel/phpunit, сколько запросов потребовалось выполнить?Время выполнения тестового запроса в laravel

Возможно ли, что это не зависит от чего-то еще?

+2

Включить ведение журнала базы данных в файле конфигурации базы данных, и он говорит вам, в журнале для каждого отдельного запроса это выполнено. –

ответ

4

Самый старый способ является лучшим выбором:

$start = microtime(true); 
// Execute the query 
$time = microtime(true) - $start; 
+0

В качестве побочного элемента, при тестировании на тестирование, вы никогда не должны касаться своей базы данных. Единичное тестирование предназначено для тестирования небольшой, безгосударственной функциональности. База данных - все о сохранении состояния, поэтому проверьте свою базу данных в тестах интеграции. – Loek

0

Вы могли listen для выполнения запроса, как это и войти результат в storage/logs/laravel.log.

\DB::listen(function ($sql, $bindings, $time) { 
    \Log::info($sql, $bindings, $time); 
}); 

Вы могли бы просто использовать $time только, но я вошел $sql, $bindings, $time для завершения.

Вы можете положить это внутри своего AppServiceProvider.

0

С Laravel 5,2 listen изменилось только за исключением одного аргумента:

\DB::listen(function ($query) { 
    // $query->sql 
    // $query->bindings 
    // $query->time 
}); 

Docs: https://laravel.com/docs/5.2/database