Discourse には、コア、プラグイン、テーマの広範なフロントエンドテストがあります。機能するローカル開発環境が整ったら、それらのテストはさまざまな方法でローカルで実行できます。
ブラウザでのテストの実行
コア / プラグイン: 開発環境で /tests にアクセスしてください。
テーマ: 開発環境(または本番環境)で /theme-qunit にアクセスし、テーマを選択してください。
一般的に、コアのテストに取り組む場合は「Skip Plugins」を有効にし、プラグインに取り組む場合はドロップダウンリストから特定のプラグインを選択する(これにより自動的に「Skip Core」が設定されます)べきです。プラグインが有効になっている場合、コアのテストスイートがパスすることは期待されていません(プラグインはコアの動作を意図的に変更することが多いためです)。
残念ながら、執筆時点では、テストにおけるメモリリークのため、ブラウザでスイート全体を実行しようとするとブラウザのメモリ制限に達しがちです。複数のブラウザでスイート全体を並行して実行するには、以下の CLI の例を参照してください。
CLI でのテストの実行
コア
Discourse リポジトリの Ember アプリケーションのルート (app/assets/javascripts/discourse) に移動し、最後にアップストリームの変更を取り込んでから pnpm install を実行したことを確認してください。
そこから、標準の Ember-CLI ツールを使用してテストを実行できます。Ember ガイドの 「テストの実行方法」セクション を確認してください。また、Ember Exam もインストールされており、非常に便利なランダム化および並列化フラグを提供しています。
以下に便利な例をいくつか示します。
# コアのテストスイート全体を、Chrome の 'ヘッドレス' インスタンス 5 つで並行して実行:
pnpm ember exam --parallel 5 --load-balance
# モジュール/テスト名に特定の文字列が含まれるすべてのテストを実行:
pnpm ember exam --filter "Integration | Component | bookmark"
# デバッグを容易にするためにブラウザで読み込むための URL を提供する "server" モードで実行:
pnpm ember exam --filter "somefilter" --server
プラグイン
Discourse のルートディレクトリから:
bin/rake "plugin:qunit" # すべてのプラグインの qunit テストを実行
bin/rake "plugin:qunit[discourse-chat-integration]" # 単一のプラグインの qunit テストを実行
テーマ
Discourse のルートディレクトリから:
bin/rake "themes:qunit[url,\u003ctheme_url\u003e]"
bin/rake "themes:qunit[name,\u003ctheme_name\u003e]"
bin/rake "themes:qunit[id,\u003ctheme_id\u003e]"
このドキュメントはバージョン管理されています - 変更の提案は github でお願いします。