Framework de teste do Power Query SDK parte 4 - Especificação do formato de teste

Esta referência com várias partes abrange a configuração e a execução de um conjunto padrão de testes para programadores de conectores do Power Query. A referência deve ser feita sequencialmente para garantir que o seu ambiente está configurado para testar o seu conector personalizado.

Agora que configurou o ambiente, carregou os dados de teste e configurou a suite de testes, está pronto para começar a verificar o conector de extensão com a suite de testes. Antes de executar os testes, é necessário compreender os diferentes tipos de ficheiros e formatos dentro do framework de teste.

Nesta secção, pode:

  • Aprenda os tipos de formatos de ficheiro usados no framework de teste e a sua funcionalidade

Especificação para testes no formato PQ/PQOut

Os testes para verificar conectores de extensão com o framework de teste Power Query SDK são escritos em formato PQ/PQOut.

A lista seguinte descreve os tipos de ficheiros de que precisa de estar ciente ao trabalhar com o framework de teste do Power Query SDK:

  • Ficheiro de consulta de teste, também conhecido como ficheiro PQ, com uma extensão .query.pq.
  • Ficheiro de saída, também conhecido como ficheiro PQOut, com uma extensão .query.pqout.
  • Ficheiro opcional de consulta de parâmetros com uma extensão .parameterquery.pq.
  • Ficheiro de definições opcionais com uma extensão .settings.
  • Ficheiro de diagnóstico opcional com extensão .diagnostics.

ficheiro de consulta de teste, também conhecido como ficheiro PQ, com uma extensão .query.pq

O ficheiro de consulta de teste (.query.pq) contém uma única consulta de linguagem de fórmulas Power Query M. A consulta mashup é composta por variáveis, expressões e valores encapsulados por uma let expressão com um nome de fonte de dados de conector personalizado e metadados necessários para executar.

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

Ficheiro de saída, também conhecido como ficheiro PQOut, com uma extensão .query.pqout

O ficheiro de saída (.query.pqout) contém a saída gerada como resultado da execução do comando compare para um teste.

O exemplo seguinte mostra um exemplo de ficheiro de saída (PQOut), por exemplo, SnowflakeFirstNTests.query.pqout:

#table(type table [TIMESTAMP = datetime], {{#datetime(2014, 1, 1, 16, 0, 0.12345)}})

Ficheiro opcional de consulta de parâmetros com uma extensão .parameterquery.pq

Para fazer com que os casos de teste corram independentemente da fonte de dados, o suporte ao ficheiro de consulta PQ/teste pode ser dividido em duas partes: o ficheiro de consulta de parâmetros e o ficheiro de consulta de teste.

A consulta de parâmetros é específica da fonte de dados e recupera dados de teste dessa fonte. Se quiseres fazer os testes para outro conector, então precisas de atualizar este ficheiro para apontar para essa fonte de dados específica.

O exemplo seguinte mostra um exemplo de ficheiro de consulta de parâmetros, por exemplo, 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

Quando o ficheiro opcional de consulta de parâmetros é fornecido, a consulta de teste só precisa de conter transformações nos dados de teste. Estas transformações são as M expressões necessárias para os testes e tornam-nas independentes da fonte de dados. A consulta de teste também precisa de declarar uma função M lambda que recolhe os resultados da consulta de parâmetros e executa a lógica de teste sobre os resultados de entrada.

O exemplo seguinte mostra um exemplo para uma consulta de teste, por exemplo, SnowflakeFirstNTest.query.pq:

(parameter) => 
let
   SelectColumns = Table.SelectColumns(parameter, {"lpep_pickup_datetime"}),
   FirstN = Table.FirstN(SelectColumns, 1)
in
   FirstN

Ficheiro de definições opcionais com extensão .settings

O ficheiro de definições opcional é um ficheiro JSON, que contém os parâmetros de configuração como pares-chave-valor.

O exemplo seguinte mostra um exemplo para um ficheiro de definições quando o ficheiro de consulta de parâmetro opcional é especificado:

{
    'Extension': 'snowflake.mez',
    'ParameterQueryFilePath': 'contoso.parameterquery.pq'
    'QueryFilePath': 'contoso.query.pq',
    'FailOnMissingOutputFile': true
}

Ficheiro de diagnóstico opcional com extensão .diagnostics

O ficheiro de diagnóstico opcional contém atualmente uma lista de texto de comandos que é gerada quando uma Consulta M é dobrada. Use-o para testes de regressão de query folding.

O exemplo seguinte mostra um exemplo para um ficheiro de diagnóstico, por exemplo, SnowflakeFirstNTestSettings.diagnostics:

[
  {
    "Command": "select \"lpep_pickup_datetime\" from \"NYCTAXIDB\".\"PUBLIC\".\"NYCTAXIDATA\" LIMIT 1 OFFSET 0"
  }
]

Conclusion

Esta secção apresentou-lhe vários formatos de ficheiro que precisa de estar familiarizado enquanto trabalha com o framework de teste do Power Query SDK.

Na secção seguinte, cria consultas e definições para trabalhar com a sua fonte de dados para o conector de extensão.

Passos seguintes