Weblate テストの構成と継続的な統合
現在、ほぼすべてのコードにテストの構成があります。新しい機能のテストケースを追加し、検査対象を増やして動作を検証します。
継続的な統合
現在のテスト結果は GitHub Actions から確認でき、検証の対象は Codecov において報告します。
さまざまな側面を検証するためのジョブ:
単体テスト
ドキュメントの作成と外部リンク
対応しているすべてのリリースからの移行テスト
低品質コードの検出
設定の検証(生成された dist ファイルに間違いがなく、テスト済みを保証する)
CI の構成は、.github/workflows
ディレクトリにあります。 ci
ディレクトリに格納されているヘルパー スクリプトを頻繁に使用します。スクリプトは手動でも実行できますが、使用する Django 設定ファイルとデータベース接続を設定するなど、環境変数の設定が必要です。scripts/test-database
に記述された設定例:
# Simple way to configure test database from environment
# Database backend to use postgresql / mysql / mariadb
export CI_DATABASE=${1:-postgresql}
# Database server configuration
export CI_DB_USER=weblate
export CI_DB_PASSWORD=weblate
export CI_DB_HOST=127.0.0.1
# Django settings module to use
export DJANGO_SETTINGS_MODULE=weblate.settings_test
単純な実行例:
. scripts/test-database
./ci/run-migrate
./ci/run-test
./ci/run-docs
ローカル テスト
テストの構成をローカルで実行するコマンド:
DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py test
ヒント
テストには、使用するデータベース(PostgreSQL)サーバーが必要です。デフォルトでは、Django は接頭辞が test_
のデータベースのテストを実行するために、別のデータベースを作成します。そのため、weblate
を使用するように設定している場合、テストには test_weblate
データベースを使用します。設定方法については、Weblate のデータベース設定 を確認してください。
weblate/settings_test.py
は CI 環境でも使用されます(参照: 継続的な統合)。環境変数を用いた設定方法:
# Simple way to configure test database from environment
# Database backend to use postgresql / mysql / mariadb
export CI_DATABASE=${1:-postgresql}
# Database server configuration
export CI_DB_USER=weblate
export CI_DB_PASSWORD=weblate
export CI_DB_HOST=127.0.0.1
# Django settings module to use
export DJANGO_SETTINGS_MODULE=weblate.settings_test
テストを実行する前に、静的ファイルの収集が必要です。テストによっては、静的ファイルの存在に依存しているためです。静的ファイルの収集方法:
DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py collectstatic
実行する個々のテストの指定方法:
DJANGO_SETTINGS_MODULE=weblate.settings_test ./manage.py test weblate.gitexport
ヒント
テストは、開発者の Docker コンテナ内でも実行できます。参照: Docker上でローカルに Weblate の実行。
参考
Django の実行と書き込みテストの詳細については、Django におけるテスト を確認してください。