Compartilhar via


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

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. Esta referência deve ser seguida em sequência para garantir que o ambiente seja configurado para o teste do conector personalizado.

Até agora, você concluiu as seguintes etapas:

  • Configurar o ambiente
  • Carregar os dados de teste
  • Download do conjunto de testes concluído
  • Aprendeu vários formatos de arquivo e suas funcionalidades

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

Nesta seção, você vai:

  • Aprender como atualizar as consultas de parâmetro e os arquivos de configurações
  • Definir o caminho para a estrutura de teste, a extensão do conector e o diretório de configuração de teste
  • Definir credenciais para a extensão
  • Validar os dados de teste executando testes de sanidade
  • Validar o conector executando o conjunto padronizado de testes
  • Validar dobragem de consultas e gerar texto de comando em arquivos de diagnóstico

Definir os caminhos de PQTest.exe e extensão no arquivo RunPQSDKTestSuitesSettings.json

Navegue até \testframework\tests e abra o arquivo RunPQSDKTestSuitesSettings.json na pasta do repositório clonado. Em seguida, defina os caminhos para PQTest.exe e a extensão no arquivo de configuração:

  • PQTestExePath: substitua 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, em que <Username> é o nome da pasta de perfil de usuário, x.x.x é a versão atual da extensão do SDK do Power Query e x.xxx.x é a versão atual das ferramentas do SDK do Power Query.
  • ExtensionPath: substitua pelo caminho para o arquivo de extensão mez. Por exemplo, C:\dev\<ConnectorName>\<ConnectorName>.mez, em que<ConnectorName> é o nome do conector.

Observação

Você pode encontrar mais informações sobre todas as variáveis que podem ser definidas no arquivo RunPQSDKTestSuitesSettings.json no modelo \testframework\tests\RunPQSDKTestSuitesSettingsTemplate.json fornecido.

Atualize as consultas de parâmetro e o arquivo de configurações com os detalhes específicos do conector de extensão da fonte de dados

A execução do script do PowerShell .\RunPQSDKTestSuites.ps1 cria as consultas de parâmetro e as configurações de teste por meio da criação de uma pasta com <Extension Name> e as pastas Settings e ParameterQueries dentro dela da seguinte maneira:

  • testframework\tests\ConnectorConfigs\<Extension Name>\ParameterQueries
  • testframework\tests\ConnectorConfigs\<Extension Name>\Settings

Os exemplos a seguir mostram como seriam os caminhos de um conector chamado Contoso:

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

Observação

Atualize a consulta M no(s) arquivo(s) de consulta de parâmetro gerado para conectar-se à sua fonte de dados e recuperar as tabelas NycTaxiGreen & TaxiZoneLookup carregadas anteriormente.

Como alternativa, para criar manualmente os arquivos de consulta de parâmetro e os arquivos de configurações para sua fonte de dados, execute as etapas abaixo:

  1. Navegue até a pasta \testframework\tests\ConnectorConfigs na pasta do repositório clonado.
  2. Faça uma cópia da pasta \generic e renomeie-a com o nome da extensão.
  3. Abra cada arquivo na pasta \ParameterQueries e atualize a consulta M conforme as instruções fornecidas nesses arquivos.
  4. Abra cada arquivo na pasta \Settings e atualize esses arquivos para apontar para o arquivo de consulta de parâmetro correto.

Definir credenciais para o conector da extensão

Verifique se as credenciais estão configuradas para o conector seguindo as instruções para o comando set-credential.

Como alternativa, use o comando credential-template para gerar um modelo de credencial no formato JSON para o conector que pode ser passado para o comando set-credential. Consulte a seção de modelo de credencial sobre o uso para gerar um modelo 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 a saída do comando anterior e substitua os valores de espaço reservado pelas credenciais corretas e salve como um arquivo JSON (por exemplo, contoso_cred.json).

Em seguida, use o comando set-credential para armazenar as credenciais usadas pelo comando compare para executar os testes. Usando a janela existente do PowerShell, defina as credenciais para a extensão usando o arquivo de credenciais JSON gerado na etapa anterior. Confira a seção definir credencial sobre o uso para configurar as credenciais do 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"

A validação dos dados de teste é configurada corretamente executando testes de sanidade

Para garantir que as alterações estejam funcionando e a configuração de dados foi feita corretamente, execute os testes de sanidade usando o utilitário RunPQSDKTestSuites.ps1 presente no diretório \testframework\tests\TestSuites da seguinte maneira:

.\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
----------------------------------------------------------------------------------------------
#>

Execute os testes de sanidade e padrão

Executar usando o utilitário RunPQSDKTestSuites.ps1

Para executar todos os testes de sanidade e padrão ou um conjunto de testes definidos pelo arquivo de configuraçõ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 o utilitário RunPQSDKTestSuites.ps1, execute o comando Get-Help da seguinte maneira:

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

Executar usando PQTest.exe

Use o seguinte comando na mesma janela do PowerShell para executar testes específicos diretamente usando PQTest.exe:

# <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 em pqtest-overview para obter mais informações sobre como executar testes com o PQTest.exe.

Executar testes de dobragem de consultas

Os testes em qualquer sanidade e testes padrão podem ser executados para validar a dobragem de consultas. Execute o teste pela primeira vez para gerar um arquivo de saída de diagnóstico na pasta \testframework\tests\<Extension Name>\Diagnostics\. As execuções posteriores validam a saída gerada com o arquivo de saída do diagnóstico.

Execute os testes de dobragem de consultas usando o utilitário RunPQSDKTestSuites.ps1

Valide a dobragem de consultas para os testes de Sanidade e Padrão da seguinte maneira:

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

Observação

Como alternativa, especifique ValidateQueryFolding=True no arquivo \testframework\tests\TestSuite\RunPQSDKTestSuitesSettings.json.

Executar testes de dobragem de consultas usando o 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"

Conclusão

Esta seção abordou as etapas para configurar as consultas de parâmetro e os arquivos de configurações, que são necessários para validar o conector de extensão por meio da execução do conjunto de testes padronizados e testes de sanidade.

Na próxima seção, você aprenderá a adicionar mais testes. Você também aprenderá sobre os vários comandos e opções disponíveis na estrutura de teste e várias configurações personalizáveis para suas necessidades de teste.

Próximas etapas

Estrutura de teste do SDK do Power Query, parte 6 – Adicionar testes e entender várias opções