此多部分参考介绍了 Power Query 连接器开发人员的标准测试套件的设置和运行。 引用旨在按顺序完成,以确保环境已设置用于测试自定义连接器。
设置环境、上传测试数据并设置测试套件后,即可开始使用测试套件验证扩展连接器。 在运行测试之前,需要了解测试框架中的不同类型的文件和文件夹。
在本节中,您将:
- 了解测试框架中使用的文件格式的类型及其功能
PQ/PQOut 格式的测试规范
使用 Power Query SDK 测试框架验证扩展连接器的测试以 PQ/PQOut 格式编写。
以下列表描述了在使用 Power Query SDK 测试框架时需要注意的文件类型:
- 测试查询文件,也称为 PQ 文件,扩展名为 .query.pq。
- 输出文件(也称为 PQOut 文件),扩展名为 .query.pqout。
- 具有 .parameterquery.pq 扩展名的可选参数查询文件。
- 具有 .settings 扩展名的可选设置文件。
- 扩展名为 .diagnostics 的可选诊断文件。
测试查询文件,也称为 PQ 文件,扩展名为 .query.pq
测试查询文件 (.query.pq) 包含单个 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/test 查询文件的支持拆分为两部分:参数查询文件和测试查询文件。
参数查询特定于数据源,并从数据源检索测试数据。 如果要为另一个连接器运行测试,则需要更新此文件以指向该特定数据源。
以下示例演示参数查询文件的示例,例如 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 lambda 函数,该函数从参数查询获取结果,并在输入结果上运行测试逻辑。
以下示例演示测试查询的示例,例如 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 测试框架时需要熟悉的各种文件格式。
在下一部分中,将创建查询和设置,以便与扩展连接器的数据源配合使用。
后续步骤
Power Query SDK 测试框架第 5a 部分 - 使用 Visual Studio Code - Power Query SDK 测试框架第 5b 部分 - 使用 PowerShell 测试扩展连接器