迅速な単体テストのために Django のテスト データベースをメモリに保持する
多くの Django 開発者は、データベースの読み込みプロセスが長引くため、単体テストの遅延に直面しています。コードの最適化は重要ですが、構造的なソリューションによりテスト速度を大幅に向上させることができます。考えられる解決策の 1 つは、テスト データベースをメモリ内のみに維持し、ディスク書き込み操作を排除することです。
Django のメモリ内データベース オプション
Django では、MySQL またはテストデータベース用のSQLite。 MySQL はより高度な機能を提供しますが、SQLite はそのシンプルさとメモリベースの機能で有名です。
SQLite のインメモリ テスト データベース用に Django を構成する
「テスト」を利用する' テスト中に SQLite のデータベース エンジンを構成するための settings.py ファイル内の条件。
<code class="python">if 'test' in sys.argv: DATABASE_ENGINE = 'sqlite3'</code>
異なる Django バージョンとの互換性
エンジン構成構文に基づいてエンジン構成を調整するDjango のバージョン:
Django 1.2:
<code class="python">if 'test' in sys.argv: DATABASES['default'] = {'ENGINE': 'sqlite3'}</code>
Django 1.3 および 1.4:
<code class="python">if 'test' in sys.argv: DATABASES['default'] = {'ENGINE': 'django.db.backends.sqlite3'}</code>
South 移行の問題の克服
データベース移行に South を使用する場合は、テスト中に無効にするには次の行を含めます:
<code class="python">SOUTH_TESTS_MIGRATE = False</code>
これらを実装することで設定を変更すると、Django のテスト データベースは単体テスト中に完全にメモリ内に常駐し、パフォーマンスが大幅に向上し、開発サイクルが短縮されます。
以上がインメモリ データベースを使用して Django の単体テストを高速化するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。