Power Query SDK テスト フレームワーク パート 4 - テスト形式の仕様

このマルチパート リファレンスでは、Power Query コネクタ開発者向けの標準のテスト スイートのセットアップと実行について説明します。 このリファレンスは、カスタム コネクタをテストするために環境が確実にセットアップされるように、順番に行われることを目的としています。

環境のセットアップ、テスト データのアップロード、テスト スイートのセットアップが完了したので、テスト スイートを使用して拡張機能コネクタの検証を開始する準備ができました。 テストを実行する前に、テスト フレームワーク内のさまざまな種類のファイルと形式を理解する必要があります。

このセクションでは、次の操作を行います。

  • テスト フレームワーク内で使用されるファイル形式の種類とその機能について説明します

PQ/PQOut 形式のテストの仕様

Power Query SDK テスト フレームワークを使用して拡張機能コネクタを検証するためのテストは、PQ/PQOut 形式で記述されています。

次の一覧では、Power Query SDK テスト フレームワークの操作時に注意する必要があるファイルの種類について説明します。

  • .query.pq 拡張子を持つテスト クエリ ファイル (PQ ファイルとも呼ばれます)。
  • 出力ファイル 。PQOut ファイルとも呼ばれ、拡張子は .query.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

出力ファイル 。PQOut ファイルとも呼ばれ、拡張子は .query.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"
  }
]

Conclusion

このセクションでは、Power Query SDK テスト フレームワークの使用に慣れている必要があるさまざまなファイル形式について説明しました。

次のセクションでは、拡張機能コネクタのデータ ソースを操作するためのクエリと設定を作成します。

次のステップ