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

Essa referência de várias partes aborda a instalação e a execução de um conjunto padrão de testes para desenvolvedores do conector 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 o 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ê:

  • Conheça os tipos de formatos de arquivo usados na estrutura de teste e suas funcionalidades

Especificação para testes no formato PQ/PQOut

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

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

  • Arquivo de consulta de teste, também conhecido como um arquivo PQ, com uma extensão .query.pq.
  • Arquivo de saída, também conhecido como um 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 opcional com uma extensão .settings.
  • Arquivo de diagnóstico opcional com uma extensão .diagnostics.

Arquivo de consulta de teste, também conhecido como um 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 M Power Query. A consulta de mashup é composta por variáveis, expressões e valores encapsulados por uma let expressão com um nome de função de fonte de dados do conector personalizado 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 um 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 fazer com que os casos de teste sejam executados independentemente da fonte de dados, o suporte para o arquivo de consulta PQ/teste 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ê quiser executar os testes para outro conector, precisará atualizar esse 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 nos dados de teste. Essas transformações são as expressões M necessárias para testes e a tornam independente da fonte de dados. A consulta de teste também precisa declarar uma função M lambda 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 opcional com uma extensão .settings

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

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 que é gerada quando uma consulta M é dobrada. Use-o para teste de regressão da 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"
  }
]

Conclusion

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

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

Próximas Etapas