でクエリをテストする方法について VS Code
CodeQL クエリで期待される結果が確実に生成されるようにするには、期待されるクエリ結果と実際の結果を比較するテストを実行します。
CodeQL拡張機能は、"テスト" ビューに自動的に登録します。 このビューには、現在のワークスペースで見つかったすべてのテストが表示され、ワークスペースでテストを探索して実行するための UI が使用できます。
CodeQL テストの作成の詳細については、「[AUTOTITLE](/code-security/codeql-cli/using-the-codeql-cli/testing-custom-queries)」を参照してください。
単体テストの実行による詳細な出力を表示するには、 CodeQL テスト ログを開きます。 詳細については、「Visual Studio Code で CodeQL のログにアクセスする」を参照してください。
クエリの結果のテスト
-
Visual Studio Codeで、サイドバーの [テスト] ビューを開きます。 -
特定のテストを実行するには、ファイル名またはフォルダー名の上にマウス ポインターを置き、再生ボタンをクリックします。 ワークスペース内のすべてのテストを実行するには、ビューの上部にある再生ボタンをクリックします。 テストの実行に時間がかかりすぎる場合は、ビューの上部にある停止ボタンをクリックするとテストをキャンセルできます。
![[テスト] ビューのスクリーンショット。[テストの実行] ボタン (すべてのテストを実行) が濃いオレンジ色で囲まれています。](/assets/cb-44333/images/help/security/codeql-for-vs-code-run-all-tests.png)
-
アイコンは、テストが成功したか失敗したかを示します。 失敗した場合は、[テスト結果] 内のテストをクリックして、期待される出力と実際の出力の違いを表示します。
![[テスト結果] ビューのスクリーンショット。テストの期待される出力と実際の出力の違いを表示しています。](/assets/cb-125782/images/help/security/codeql-for-vs-code-test-output.png)
-
結果を比較する テストを実際の出力で更新する場合は、[テスト] ビューでテストを右クリックし、[テスト出力の受け入れ] をクリックします。
クエリのパフォーマンスを監視する
クエリのパフォーマンスは、大規模なデータベースで、または継続的インテグレーション システムの一部としてクエリを実行する場合に重要となります。
クエリのパフォーマンスを調べるには、[実行中のクエリ: デバッグ] 設定を有効にして、タイミングとタプル数を含めるようにします。 これにより、"出力" ビューの CodeQL [クエリ サーバー] タブのログに表示されます。 タプル数は、クエリによって計算された述語のサイズを示すので便利です。 設定変更の詳細については、「設定のカスタマイズ」を参照してください。
クエリが評価されると、クエリ サーバーは計算する対象の述語をキャッシュします。 そのため、2 つの評価のパフォーマンスを比較する場合は、CodeQL実行する必要があります 。キャッシュをクリアして、各実行の前にクエリ サーバーのキャッシュをクリアします。 こうすることで、同等のデータを比較できるようになります。
CodeQL クエリのパフォーマンスの監視の詳細については、[](https://codeql.github.com/docs/writing-codeql-queries/troubleshooting-query-performance/#troubleshooting-query-performance)ドキュメント[の「QL プログラムの](https://codeql.github.com/docs/ql-language-reference/evaluation-of-ql-programs/#evaluation-of-ql-programs)CodeQLと評価のトラブルシューティング」を参照してください。
次のステップ
特定する結果をクエリで見つけられると確信できる場合は、バリアント分析を使用して大規模に実行することもできます。 多数の CodeQLデータベースにわたる大規模な分析の実行については、 マルチリポジトリ バリアント分析を使用した大規模な CodeQL クエリの実行 を参照してください。