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 文件)
包含单个 Power Query M 公式语言查询的测试查询文件 (.query.pq)。 混合查询由 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/测试查询文件的支持可以分为两部分:参数查询文件和测试查询文件。
参数查询特定于数据源,并从数据源检索测试数据。 如果要为另一个连接器运行测试,则需要更新此文件以指向该特定数据源。
下面显示了参数查询文件的示例,例如 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 测试框架时需要熟悉的各种文件格式。
在下一部分中,将创建查询和设置以使用扩展连接器的数据源。