Laravel/phpunitでクエリの実行にかかった時間をテストする方法は?
他に依存しないようにすることは可能ですか?
最も古い方法が最良の方法です。
$start = microtime(true);
// Execute the query
$time = microtime(true) - $start;
Laravel 5.2から、listen
は1つの引数を除いてのみに変更されました:
\DB::listen(function ($query) {
// $query->sql
// $query->bindings
// $query->time
});
このようなクエリを実行してlisten
を実行し、結果をstorage/logs/laravel.log
に記録できます。
\DB::listen(function ($sql, $bindings, $time) {
\Log::info($sql, $bindings, $time);
});
$time
のみを使用することもできますが、完了のために$sql, $bindings, $time
を記録しました。
これをAppServiceProvider
に入れることができます。
UPDATE:
Laravel version> 5.5では、このアプローチは listing for query events ;)としてドキュメントに記載されています
Laravel 6.xから始まるddd($someVar)
ヘルパーを使用できます。
Queries
タブがあり、ddd()
までに実行される各クエリについて説明します