Framework de teste do Power Query SDK parte 5b - Testar o seu conector de extensão com o PowerShell

Note

Este artigo aborda testes utilizando a utilidade PowerShell. Para testes usando o Visual Studio Code Test Explorer, veja Power Query SDK test framework parte 5a - Testar o seu conector de extensão com Visual Studio Code.

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. Esta referência destina-se a ser feita sequencialmente para garantir que o seu ambiente está configurado para testar o seu conector personalizado.

Até agora, você concluiu as seguintes etapas:

  • Configurar o ambiente
  • Carreguei os dados do teste
  • Descarreguei o conjunto de testes
  • Aprendeu vários formatos de ficheiro e a sua funcionalidade

Finalmente está pronto para começar a verificar o seu conector de extensão com o conjunto de testes.

Nesta secção, pode:

  • Aprenda a atualizar as consultas de parâmetros e os ficheiros de definições
  • Defina o caminho para o framework de teste, extensão do conector e diretório de definição de teste
  • Definir credenciais para a extensão
  • Valide os dados do teste realizando testes de sanidade
  • Valide o seu conector executando o conjunto padronizado de testes
  • Validar query folding e gerar texto de comando em ficheiros de diagnóstico

Define os caminhos de PQTest.exe e de extensão no ficheiro RunPQSDKTestSuitesSettings.json

Navega até \testframework\tests and open the RunPQSDKTestSuitesSettings.jsem ficheiro na pasta de repositórios clonados. Depois define os caminhos para PQTest.exe e a extensão no ficheiro de configuração:

  • PQTestExePath: Substituir pelo caminho para PQTest.ext. Por exemplo, C:\Users\<UserName>\.vscode\extensions\powerquery.vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft. PowerQuery.SdkTools.x.xxx.x\tools\PQTest.exe, onde <Username> é o nome da tua pasta de perfil de utilizador, x.x.x é a versão atual da Power Query extensão SDK, e x.xxx.x é a versão atual das ferramentas SDK Power Query.
  • ExtensionPath: Substitua pelo caminho para o ficheiro extension mez. Por exemplo, C:\dev\<ConnectorName>\<ConnectorName.mez>, onde <ConnectorName> é o nome do seu conector.

Note

Pode encontrar mais informações sobre todas as variáveis que pode definir no ficheiro RunPQSDKTestSuitesSettings.json no \testframework\tests\RunPQSDKTestSuitesSettingsTemplate.jsfornecido no modelo.

Atualize consultas de parâmetros e ficheiro de definições com os detalhes específicos do seu conector de extensão de fonte de dados

A executar o script PowerShell.\RunPQSDKTestSuites.ps1 cria as consultas de parâmetros e as definições de teste criando uma pasta com < o Nome >da Extensão, e as pastas Settings e ParameterQueries por baixo dela, da seguinte forma:

  • testframework\tests\ConnectorConfigs\<Extension Name>\ParameterQueries
  • testframework\tests\ConnectorConfigs\<Nome da Extensão>\Definições

Os exemplos seguintes mostram como seriam os caminhos para um conector chamado Contoso:

  • testframework\tests\TestSuites\Contoso\ParameterQueries
  • testframework\tests\TestSuites\Contoso\Settings

Note

Atualize a consulta M nos ficheiros de consulta de parâmetros gerados para se ligar à sua fonte de dados e recuperar as tabelas NycTaxiGreen e TaxiZoneLookup previamente carregadas.

Em alternativa, crie manualmente os ficheiros de consulta de parâmetros e os ficheiros de definições para a sua fonte de dados, realizando os passos abaixo:

  1. Navega até à pasta \testframework\tests\ConnectorConfigs na pasta do repositório clonado.
  2. Faz uma cópia da pasta \generic e renomeia-a com o nome da extensão.
  3. Abra cada ficheiro na pasta \ParameterQueries e atualize a consulta M conforme as instruções fornecidas nesses ficheiros.
  4. Abre cada ficheiro na pasta \Settings e atualiza os caminhos corretos dos ficheiros de consulta de parâmetros.

Defina as credenciais para o seu conector de extensão

Certifique-se de que as credenciais estão configuradas para o seu conector seguindo as instruções do comando set-credential .

Em alternativa, gera um modelo de credencial em formato JSON para o seu conector usando o comando credential-template que pode ser passado para o comando set-credential . Para informações sobre a utilização para gerar um modelo de credencial, consulte a secção de modelos de credencial .

# <Path to PQTest.exe>.\PQTest.exe credential-template -e <Path to Extension.exe> -q "<Replace with path to any parameter query file>" --prettyPrint --authenticationKind <Specify the authentication kind (Anonymous, UsernamePassword, Key, Windows, OAuth2)>
# Example:
C:\Users\ContosoUser\.vscode\extensions\powerquery.vscode-powerquery-sdk-0.2.3-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.2.126.3\tools\PQTest.exe credential-template -e "C:\dev\Contoso\Contoso.mez" -q "C:\dev\DataConnectors\testframework\tests\TestSuites\ParameterQueries\Contoso\Contoso.parameterquery.pq" --prettyPrint --authenticationKind UsernamePassword

Pegue na saída do comando anterior e substitua os valores provisórios pelas credenciais corretas e guarde-o como ficheiro JSON (por exemplo, contoso_cred.json).

Depois, armazena as credenciais usando este comando set-credential , que são usadas pelo comando compare para executar os testes. Usando a janela PowerShell existente, defina as credenciais da sua extensão usando o ficheiro de credenciais JSON gerado na etapa anterior. Consulte a secção de credenciais de conjunto sobre a utilização para configurar as credenciais do seu conector.

$PQTestExe = "C:\Users\ContosoUser\.vscode\extensions\powerquery.vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.x.xxx.x\tools\PQTest.exe"
$Extension = "C:\dev\Contoso\Contoso.mez"
# Get-Content "<Replace with path to the json credential file>" | & $PQTestExe set-credential -e $Extension -q "<Replace with the path to any parameter query file>"
# Example:
Get-Content "C:\dev\Misc\contoso_cred.json" | & C:\Users\ContosoUser\.vscode\extensions\powerquery.vscode-powerquery-sdk-0.2.3-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.2.126.3\tools\PQTest.exe  set-credential -p -e "C:\dev\Contoso\Contoso.mez" -q "C:\dev\DataConnectors\testframework\tests\TestSuites\Contoso\ParameterQueries\Contoso.parameterquery.pq"

Valide que os dados do teste estão corretamente configurados ao executar os testes de sanidade

Para garantir que as alterações estão a funcionar e que a configuração dos dados é feita corretamente, execute os testes de sanidade usando a ferramenta RunPQSDKTestSuites.ps1 presente no diretório \testframework\tests\TestSuites da seguinte forma:

.\RunPQSDKTestSuites.ps1 -TestSettingsList SanitySettings.json
<#
Example:
PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1 -TestSettingsList SanitySettings.json

Output:
----------------------------------------------------------------------------------------------
PQ SDK Test Framework - Test Execution - Test Results Summary for Extension: Contoso.pqx
----------------------------------------------------------------------------------------------
TestFolder  TestName                        OutputStatus TestStatus Duration
----------  --------                        ------------ ---------- --------
Sanity\Taxi AllTypes.query.pq               Passed       Passed     00:00:00.0227976
Sanity\Taxi AllTypesRowCount.query.pq       Passed       Passed     00:00:00.0001734
Sanity\Taxi AllTypesSchema.query.pq         Passed       Passed     00:00:00.0001085
Sanity\Zone AllTypesZone.query.pq           Passed       Passed     00:00:00.0010058
Sanity\Zone AllTypesZoneRowCount.query.pq   Passed       Passed     00:00:00.0001786
Sanity\Zone AllTypesZoneSchema.query.pq     Passed       Passed     00:00:00.0000920
----------------------------------------------------------------------------------------------
Total Tests: 6 | Passed: 6 | Failed: 0 | Total Duration: 00d:00h:00m:01s
----------------------------------------------------------------------------------------------
#>

Faz os testes de sanidade e padrão

Execute usando a utilidade RunPQSDKTestSuites.ps1

Para executar o conjunto completo dos testes de sanidade e padrão ou um conjunto de testes definidos pelo ficheiro de definições, execute o seguinte comando para executar os testes:

# Run all the Sanity & Standard Tests
.\RunPQSDKTestSuites.ps1
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1

Para saber mais sobre a utilidade RunPQSDKTestSuites.ps1, execute o comando Get-Help da seguinte forma:

Get-Help .\RunPQSDKTestSuites.ps1
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> Get-Help .\RunPQSDKTestSuites.ps1 -Detailed

Corre usando PQTest.exe

Para executar testes específicos diretamente usando PQTest.exe, use o seguinte comando na mesma janela do PowerShell:

# <Path to PQTest.exe>PQTest.exe compare -p -e $Extension -pa <Replace with path to the parameter query> -q <Replace with the the path to test query>
# Example:
 C:\Users\ContosoUser\.vscode\extensions\powerquery.vscode-powerquery-sdk-0.2.3-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.2.114.4\tools\PQTest.exe compare -p -e "$Extension" -pa "C:\dev\DataConnectors\testframework\tests\TestSuites\Contoso\ParameterQueries\Contoso.parameterquery.pq" -q "C:\dev\DataConnectors\testframework\tests\TestSuites\Standard\Datatypes\Cast.query.pq"

Consulte a documentação no pqtest-overview para mais informações sobre como executar testes com PQTest.exe.

Execução de testes de dobramento de consultas

Os testes sob qualquer teste de sanidade e padrão podem ser executados para validar a dobra de consultas. Executa o teste pela primeira vez para gerar um ficheiro de saída de diagnóstico na pasta \testframework\tests\<Extension Name>\Diagnostics\. Execuções subsequentes validam a saída gerada com o ficheiro de diagnóstico.

Execute testes de query folding usando a utilidade RunPQSDKTestSuites.ps1

Valide a dobragem de consultas para os Testes de Sanidade e Padrão da seguinte forma:

.\RunPQSDKTestSuites.ps1 -ValidateQueryFolding
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1 -ValidateQueryFolding

Note

Em alternativa, especifique ValidateQueryFolding=True no \testframework\tests\TestSuite\RunPQSDKTestSuitesSettings.jsregistado.

Executar testes de folding de consultas usando PQTest.exe

# <Path to PQText.exe> compare -p -e $Extension -pa <Replace with path to the parameter query> -q <Replace with the the path to test query> -dfp <Replace with path to the diagnostic output file>
# Example:
 C:\Users\ContosoUser\.vscode\extensions\powerquery.vscode-powerquery-sdk-0.2.3-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.2.114.4\tools\PQTest.exe compare -p -e "$Extension" -pa "C:\dev\DataConnectors\testframework\tests\TestSuites\ParameterQueries\Contoso\Contoso.parameterquery.pq" -q "C:\dev\DataConnectors\testframework\tests\TestSuites\Standard\Datatypes\Cast.query.pq" -dfp "C:\dev\DataConnectors\testframework\tests\TestSuites\Contoso\Diagnostics"

Conclusion

Esta secção abordava os passos para configurar as consultas de parâmetros e os ficheiros de definições, que depois são necessários para validar o seu conector de extensão ao executar o conjunto de testes de sanidade e padronizado.

Na secção seguinte, aprende como adicionar mais testes. Também aprende sobre os vários comandos e opções disponíveis no framework de teste, bem como várias definições personalizáveis para as suas necessidades de teste.

Passos seguintes

Power Query SDK test framework parte 6 - Adicionar os seus testes e compreender várias opções