Compartilhar via


Estrutura de teste do SDK do Power Query, parte 4 – Especificação de formato de teste

Esta referência com várias partes aborda a configuração e a execução de um conjunto padrão de testes para desenvolvedores do conector do Power Query. A referência deve ser seguida em sequência para garantir que o ambiente seja configurado para o teste do 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 diferentes tipos de arquivos e formatos dentro da estrutura de teste.

Nesta seção, você vai:

  • Aprender os tipos de formatos de arquivo usados na estrutura de teste e sua funcionalidade

Especificação para testes no formato PQ/PQOut

Os testes para a verificação dos 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ê conhecer para 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 arquivo de consulta de teste (.query.pq) contém uma única consulta de linguagem de fórmula do Power Query M. A consulta de mashup é composta de variáveis, expressões e valores encapsulados por uma expressão let com o nome da função da fonte de dados do conector personalizado e os 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 uma 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 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 os dados de teste da fonte de dados. Para executar os testes para outro conector, é necessário atualizar esse arquivo para que aponte 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 precisa conter somente transformações nos dados de teste. Essas transformações são as expressões M necessárias para os testes e os 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 de 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 chave-valor.

O exemplo a seguir mostra um exemplo para 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 gerada quando uma consulta M é dobrada. Use-o para testes de regressão de dobragem de consultas.

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 conhecer ao trabalhar com a estrutura de teste do SDK do Power Query.

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

Próximas etapas

Estrutura de teste do SDK do Power Query, parte 5 – Testar o conector de extensão