Partilhar via


Estrutura de teste do SDK do Power Query, 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 seu ambiente esteja configurado para testar seu conector personalizado.

Agora que você configurou o ambiente, carregou os dados de teste e configurou o conjunto de testes, está pronto para começar a verificar seu conector de extensão com o conjunto de testes. Antes de executar os testes, você precisa entender os diferentes tipos de arquivos e formatos dentro da estrutura de teste.

Nesta secção, pode:

  • Aprenda os tipos de formatos de arquivo usados na estrutura de teste e suas funcionalidades

Especificação para testes em formato PQ/PQOut

Os testes para verificar conectores de extensão com a estrutura de teste do SDK do Power Query são escritos no formato PQ/PQOut.

A lista a seguir descreve os tipos de arquivos que você precisa conhecer ao trabalhar com a estrutura de teste do SDK do Power Query:

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

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

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

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

Arquivo de saída, também conhecido como arquivo PQOut, com extensão .query.pqout

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

O exemplo a seguir mostra um exemplo de um arquivo de saída (PQOut), por exemplo, SnowflakeFirstNTests.query.pqout:

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

Arquivo de consulta de parâmetro opcional com uma extensão .parameterquery.pq

Para fazer com que os casos de teste sejam executados independentemente da fonte de dados, o suporte para o arquivo de consulta PQ/test pode ser dividido em duas partes: o arquivo de consulta de parâmetro e o arquivo de consulta de teste.

A consulta de parâmetro é específica da fonte de dados e recupera dados de teste da fonte de dados. Se você gostaria de executar os testes para outro conector, então você precisa atualizar este arquivo para apontar para essa fonte de dados específica.

O exemplo a seguir mostra um exemplo de um arquivo de consulta de parâmetro, 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 arquivo de consulta de parâmetro opcional é fornecido, a consulta de teste só precisa conter transformações para os dados de teste. Essas transformações são as expressões M necessárias para testes e as tornam independentes da fonte de dados. A consulta de teste também precisa declarar uma função lambda M que obtém os resultados da consulta de parâmetro e executa a lógica de teste nos resultados de entrada.

O exemplo a seguir 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

Arquivo de configurações opcionais com uma extensão .settings

O arquivo de configurações opcionais é um arquivo JSON, que contém os parâmetros de configuração como pares de valores de chave.

O exemplo a seguir mostra um exemplo de um arquivo de configurações quando o arquivo de consulta de parâmetro opcional é especificado:

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

Arquivo de diagnóstico opcional com uma extensão .diagnostics

O arquivo de diagnóstico opcional atualmente contém uma lista de texto de comando que é gerado quando uma consulta M é dobrada. Use-o para testes de regressão de dobragem de consulta.

O exemplo a seguir mostra um exemplo para um arquivo de diagnóstico, por exemplo, SnowflakeFirstNTestSettings.diagnostics:

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

Conclusão

Esta seção apresentou vários formatos de arquivo que você precisa estar familiarizado ao trabalhar com a estrutura de teste do SDK do Power Query.

Na próxima seção, você cria consultas e configurações para trabalhar com sua fonte de dados para o conector de extensão.

Próximos passos

Estrutura de teste do SDK do Power Query, parte 5 - Testando o conector de extensão