2017-02-04 7 views
1

私はlaravelアプリで多くのテストを受けています。データベース移行を使用するlaravelのunittestsをスピードアップするにはどうすればよいですか?

彼らはPOST/GET要求を行い、応答を確認します。

すべてのテストは、DatabaseMigrations特性を使用して実行されます。

私のラップトップでは、すべてのテストが完了するまでに約20秒かかります。

さまざまなタイプのクエリに異なるrepositoriesを書きたくないので、あとでそれらをモックすることができます(余分な作業)。

もっと良い解決策がありますか?

答えて

1

あなたはin memory testing using SQLiteを使用する必要があります。

'testing' => [ 
    'driver' => 'sqlite', 
    'database' => ':memory:', 
    'prefix' => '', 
], 

この場合、移行とシーダーは本当に速いデータ埋めテーブルを作成します。

+0

このソリューションの欠点は何ですか?たとえば、異なるタイプのデータのためにいくつかのテストが失敗することがあります。 – changer