Power Query SDK テスト フレームワーク パート 4 - テスト形式の仕様
このマルチパート リファレンスでは、Power Query コネクタ開発者向けの標準テスト スイートのセットアップと実行について説明します。 このリファレンスは、カスタム コネクタをテストするために環境が確実に設定されるように、順番に行われることを意図しています。
環境の設定、テスト データのアップロード、テスト スイートの設定が完了したため、テスト スイートで拡張コネクタの検証を開始する準備ができました。 テストを実行する前に、テスト フレームワーク内のさまざまな種類のファイルと形式を理解する必要があります。
このセクションでは、次の作業を行います。
- テスト フレームワーク内で使用されるファイル形式の種類とその機能について説明します
PQ/PQOut 形式のテストの仕様
Power Query SDK テスト フレームワークで拡張コネクタを検証するテストは、PQ/PQOut 形式で記述されています。
次のリストでは、Power Query SDK テスト フレームワークの操作時に注意する必要があるファイルの種類について説明します。
- .query.pq 拡張子を持つテスト クエリ ファイル(PQ ファイルとも呼ばれます)。
- .query.pqout 拡張子を持つ出力ファイル(PQOut ファイルとも呼ばれ)。
- .parameterquery.pq 拡張子を持つオプション パラメーター クエリ ファイル。
- .settings 拡張子を持つオプション設定ファイル。
- .diagnostics 拡張子を持つオプション診断ファイル。
.query.pq 拡張子を持つテスト クエリ ファイル(PQ ファイルとも呼ばれます)
テスト クエリ ファイル(.query.pq)には、1 つの Power Query M 数式言語クエリが含まれています。 マッシュアップ クエリは、カスタム コネクタ データ ソース関数名と実行に必要なメタデータを含む let
式によってカプセル化された変数、式、値で構成されます。
let
Source = Snowflake.Databases("POWERBI.snowflakecomputing.com", "DEMO_WH"),
Database = Source{[Name="NYCTAXIDB”, Kind="Database"]}[Data],
Schema = Database{[Name="PUBLIC”, Kind="Schema"]}[Data],
Table = Schema{[Name="NYCTAXIDATA”, Kind="Table"]}[Data],
SelectColumns = Table.SelectColumns(Table, {"lpep_pickup_datetime"}),
FirstN = Table.FirstN(SelectColumns, 1)
in
FirstN
.query.pqout 拡張子を持つ出力ファイル(PQOut ファイルとも呼ばれます)
出力ファイル(.query.pqout)には、テストに「compare」コマンドを実行した結果として生成された出力が含まれます。
次の例では、出力ファイル(PQOut)の例が示されてています(SnowflakeFirstNTests.query.pqout など)。
#table(type table [TIMESTAMP = datetime], {{#datetime(2014, 1, 1, 16, 0, 0.12345)}})
.parameterquery.pq 拡張子を持つオプション パラメーター クエリ ファイル
データ ソースとは別にテスト ケースを実行するには、PQ/テスト クエリ ファイルのサポートを、パラメーター クエリ ファイルとテスト クエリ ファイルの 2 つの部分に分割できます。
パラメーター クエリはデータ ソース固有であり、データ ソースからテスト データを取得します。 別のコネクタのテストを実行する場合、その特定のデータ ソースを指すようにに、このファイルを更新する必要があります。
次の例では、パラメーター クエリ ファイルの例が示されています(Taxi.parameterquery.pq など)。
let
Source = Snowflake.Databases("POWERBI.snowflakecomputing.com", "DEMO_WH"),
Database = Source{[Name="NYCTAXIDB", Kind="Database"]}[Data],
Schema = Database{[Name="PUBLIC", Kind="Schema"]}[Data],
Table = Schema{[Name="NYCTAXIDATA", Kind="Table"]}[Data],
in
Table
オプション パラメーター クエリ ファイルが指定されている場合、テスト クエリはテスト データへの変換のみを含める必要があります。 これらの変換はテストに必要な M 式であり、データ ソースから独立しています。 テスト クエリは、パラメーター クエリから結果を受け取って入力結果にテスト ロジックを実行する M ラムダ関数を宣言する必要もあります。
次の例では、テスト クエリの例が示されています(SnowflakeFirstNTest.query.pq など)。
(parameter) =>
let
SelectColumns = Table.SelectColumns(parameter, {"lpep_pickup_datetime"}),
FirstN = Table.FirstN(SelectColumns, 1)
in
FirstN
.settings 拡張子を持つオプション設定ファイル
オプション設定ファイルは、構成パラメーターがキーと値のペアとして含まれている JSON ファイルです。
次の例では、オプション パラメーター クエリ ファイルが指定されているときの設定ファイルの例を示されています。
{
'Extension': 'snowflake.mez',
'ParameterQueryFilePath': 'contoso.parameterquery.pq'
'QueryFilePath': 'contoso.query.pq',
'FailOnMissingOutputFile': true
}
.diagnostics 拡張子を持ったオプション診断ファイル
現在、オプション診断ファイルは M クエリが折りたたまれたときに生成されるコマンド テキストのリストが含まれています。 クエリ フォールディングの回帰テストに使用します。
次の例では、診断ファイルの例が示されています(SnowflakeFirstNTestSettings.diagnostics など)。
[
{
"Command": "select \"lpep_pickup_datetime\" from \"NYCTAXIDB\".\"PUBLIC\".\"NYCTAXIDATA\" LIMIT 1 OFFSET 0"
}
]
まとめ
このセクションでは、Power Query SDK テスト フレームワークの操作時に理解しておく必要があるさまざまなファイル形式について説明しました。
次のセクションでは、拡張コネクタのデータ ソースを操作するためのクエリと設定を作成します。