このマルチパート リファレンスでは、Power Query コネクタ開発者向けの標準のテスト スイートのセットアップと実行について説明します。 このリファレンスは、カスタム コネクタのテスト用に環境が設定されていることを確認するために順番に行われることを目的としています。
Note
この記事では、Visual Studio Code テスト エクスプローラーを使用したテストについて説明します。 PowerShell ユーティリティメソッドについては、「Power Query SDK テスト フレームワーク パート 5b - PowerShell を使用した拡張機能コネクタのテストを参照してください。
ここまでで、次の手順を完了しました。
- 環境をセットアップする
- テスト データをアップロードしました
- テスト スイートをダウンロードしました
- さまざまなファイル形式とその機能について学習しました
これで、テスト スイートを使用して拡張機能コネクタの検証を開始する準備が整いました。 このセクションでは、テストの検出、実行、デバッグのための豊富な UI を提供する、Visual Studio Codeで統合された Test Explorer の使用に焦点を当てます。 この統合では、Visual Studio Code Testing API を使用し、PQTest ユーティリティの run-compare コマンドを使用してテストを実行します (PQTest の実行比較のドキュメントを参照)。
このセクションでは、次の操作を行います。
- テスト エクスプローラーのワークスペースを構成する
- テスト設定ファイルを作成して構成する
- UI を使用してテストを検出して実行する
- テスト結果の表示と出力の比較
前提条件
テスト エクスプローラーの統合を使用するには、次の前提条件があることを確認します。
Visual Studio Code: バージョン 1.100 以降。
Power Query SDK 拡張機能: Power Query SDK 拡張機能がインストールされ、バージョン 0.7.0 以降に更新されていることを確認します。 コネクタ プロジェクトは、プロジェクト タスクを表示するエクスプローラー ウィンドウの Power Query SDK セクションで示されているように、Power Query SDK によって認識されます。
コンフィギュレーション
テスト エクスプローラーでテストを検索して実行できるようにするには、1 つ以上の特定のテスト設定ファイルとVisual Studio Code ワークスペース設定を構成する必要があります。
1. テスト設定ファイル (.testsettings.json)
.testsettings.json ファイルによってテスト検出が実行されます。 このファイルは、テスト形式の仕様で導入された 設定ファイル (.settings) と機能的には同じですが、テスト エクスプローラーによる明示的な識別に .testsettings.json 拡張子を使用します。
新しい .testsettings.json ファイルを作成するか、 .testsettings.json 拡張子を使用するように名前を変更して既存の設定ファイルを移行できます。 必要な構成を含むファイルをプロジェクト ( Settings フォルダーなど) に配置します。
大事な:.testsettings.json ファイル内で指定されたパス (QueryFilePath、DiagnosticsPathなど) は、設定ファイル自体の場所に対して相対的である必要があります。
.testsettings.json例:
{
"QueryFilePath": "../TestSuites/contoso.query.pq",
"ParameterQueryFilePath": "../ParameterQueries/contoso.parameterquery.pq",
"DiagnosticsPath": "../Diagnostics",
"FailOnMissingOutputFile": true
}
2. 拡張機能を構成する
テスト設定の場所、コネクタ拡張機能ファイル、および PQTest ユーティリティを使用して、Power Query SDK を構成する必要があります。
Visual Studio Codeで設定を開きます。
- ワークスペースの設定 (プロジェクト固有のパスの場合): コマンド パレットを開き (Ctrl + Shift + P または Cmd + Shift + P)、「 Preferences: Open Workspace Settings (JSON)」 と入力して選択します。
- ユーザー設定 (グローバル パスの場合): コマンド パレットを開き、「 Preferences: Open User Settings (JSON)」 と入力して選択します。
次の構成を追加します。
-
powerquery.sdk.tools.location: PQTest インストール フォルダー (PQTest.exeを含む) への絶対パス。 この設定は、 ユーザー 設定または ワークスペース 設定で定義できます。- 例:
"C:\\Users\\<username>\\.vscode\\extensions\\powerquery.vscode-powerquery-sdk-<version>\\.nuget\\Microsoft.PowerQuery.SdkTools.<version>\\tools"
- 例:
-
powerquery.sdk.test.settingsFiles: 検出するテスト設定ファイルの一覧。 1 つのファイル パス、ディレクトリ パス (内部のすべての.testsettings.jsonファイルを検出する)、またはファイル/ディレクトリ パスの配列を受け入れます。 (ワークスペースの 設定) -
powerquery.sdk.test.ExtensionPaths: テストするコネクタ拡張機能 (.mez) ファイルの一覧。 1 つのファイル パスまたはパスの配列を受け入れます。 指定しない場合、SDK はpowerquery.sdk.defaultExtension(1 つのパスをサポート) を使用します。 (ワークスペースの 設定)
-
.vscode/settings.json例:
{
"powerquery.sdk.tools.location": "C:\\Users\\<username>\\.vscode\\extensions\\powerquery.vscode-powerquery-sdk-0.7.0-win32-x64\\.nuget\\Microsoft.PowerQuery.SdkTools.2.150.3\\tools",
"powerquery.sdk.test.settingsFiles": [
"${workspaceFolder}/Tests/Settings/MyConnector.testsettings.json"
],
"powerquery.sdk.test.ExtensionPaths": [
"${workspaceFolder}/bin/AnyCPU/Debug/MyConnector.mez"
]
}
ヒント
${workspaceFolder}などの変数を使用して、プロジェクト ルートを基準にしたパスを作成できます。
settings.jsonの相対パスは、ワークスペース ルートを基準にして解決されます。
3. 資格情報を構成する
コネクタで認証が必要な場合は、テストを実行する前に有効な資格情報を格納する必要があります。 Power Query SDK には、Visual Studio Code UI から直接資格情報を管理するタスクが用意されています。
詳細な手順については、Power Query SDK の概要の「Set credential」セクションを参照してください。
テスト検出
構成したら、テスト エクスプローラー ビューでテストを検出できます。
Visual Studio Codeで Testing ビューを開きます (アクティビティ バーの beaker アイコンを選択します)。
テスト設定ファイルが一覧表示されます。
ノードを展開して、検出されたテストを確認します。 階層はフォルダー構造を反映します。
テストの更新
新しいテストを追加したり、設定を変更したり、何らかの理由でテスト検出が失敗したりした場合は、検出を更新できます。
[すべてのテストを更新]: [テスト エクスプローラー] ウィンドウの上部にある [ すべてのテストの更新 ] ボタン (円形の矢印アイコン) を選択して、すべての設定ファイルのテストを再検出します。
テスト設定ファイルによって参照されるテストの更新: 特定のテスト設定ファイルにカーソルを合わせ、[ テストの更新 ] ボタン (循環矢印アイコン) を選択して、そのファイルのテストのみを再検出します。
テストの実行
UI から直接、さまざまなレベルの粒度でテストを実行できます。
[すべて実行]: ウィンドウの上部にある [テストの実行 ] (再生アイコン) を選択します。
グループ/フォルダーの実行: フォルダーまたは設定項目にカーソルを合わせ、[ テストの実行 ] ボタンを選択します。
個々のテストを実行する: 特定のテスト項目にカーソルを合わせ、[ テストの実行 ] ボタンを選択します。
Note
まだ検出されていない設定項目を実行すると、拡張機能はテストを実行する前に自動的に検出します。
テストが実行されると、状態アイコンがリアルタイムで更新され、進行状況 (実行中、成功、または失敗) が表示されます。
結果の表示とデバッグ
(既定では下部のパネルにある) [テスト結果 ] ウィンドウには、PQTest またはエラー メッセージからの生のテスト結果が表示されます。 また、最後の実行履歴も一覧表示され、成功したテストと失敗したテストが表示されます。
エラーの差分ビュー
出力が予期した結果と一致しなかったためにテストが失敗した場合、テスト エクスプローラーには組み込みの差分ビューが表示されます。 [テスト結果] ウィンドウでエラーを選択すると、 実際 の出力と 予想される 出力の比較が並べて表示されます。
クエリ フォールディング診断
テスト構成で ( DiagnosticsPathを指定して) クエリ フォールディング検証を有効にした場合、拡張機能は生成された診断を予想されるベースラインと比較します。
診断の不一致が原因でテストが失敗した場合は、[テスト結果] ウィンドウでエラーを選択することで、 実際 の診断ファイルと 予期される 診断ファイルの差分を表示できます。
期待される出力を表示する
テストに必要な出力ファイル (.pqout) をすばやく表示できます。 テストの上にマウス ポインターを置いたときに表示される [必要なテスト出力の表示 ] アイコン (クリップボード) を選択するか、テスト項目を右クリックし、コンテキスト メニューから [ 必要なテスト出力の表示 ] を選択します。 この操作により、エディターで対応する .pqout ファイルが開きます。
Troubleshooting
問題が発生した場合は、Power Query SDK 出力チャネルでログを確認します。 これは、実行中の PQTest run-compare コマンドを検証し、予期しない動作を特定するのに役立ちます。
一般的な問題
-
PQTest.exe 見つかりません:
powerquery.sdk.tools.location設定が PQTest インストール フォルダーの正しい絶対パスをポイントしていることを確認します。 -
無効な QueryFilePath またはテストが検出されていません: テスト設定ファイル内のパスが正しいことを確認します。
QueryFilePathは、有効な.query.pqファイルまたはそれらを含むディレクトリを指す必要があります。.testsettings.jsonの相対パスは、設定ファイル自体に対する相対パスであることに注意してください。 - 設定ファイルを展開しても何も行われません:テスト エクスプローラーでノードを展開してもテストが表示されない場合は、[テストの 更新 ] コマンド (設定項目をインラインで更新アイコン) を使用して検出を再度トリガーしてみてください。
Conclusion
このセクションでは、Visual Studio Code テスト エクスプローラーを使用して、コネクタ テストを効率的に検出、実行、デバッグする方法について説明しました。 この UI 駆動型のアプローチでは、コマンド ライン ツールに代わる合理化された代替手段が提供されます。
次のセクションでは、独自のカスタム テストをフレームワークに追加する方法について説明します。