Estrutura de teste do SDK do Power Query, parte 5 - Testando o conector de extensão
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. Essa referência deve ser feita sequencialmente para garantir que seu ambiente esteja configurado para testar seu conector personalizado.
Até agora, você concluiu as seguintes etapas:
- Configurar o ambiente
- Carregou os dados do teste
- Transferido o conjunto de testes
- Aprendeu vários formatos de arquivo e suas funcionalidades
Você finalmente está pronto para começar a verificar seu conector de extensão com o conjunto de testes.
Nesta secção, pode:
- Saiba como atualizar as consultas de parâmetros e os arquivos de configurações
- Defina 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
- Valide os dados de teste executando testes de sanidade
- Valide seu conector executando o conjunto padronizado de testes
- Validar dobragem de consulta 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 repo clonada. 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< Nome> de utilizador é o nome da pasta do seu perfil de utilizador, x.x.x é a versão atual da extensão 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 mez de extensão. Por exemplo, C:\dev\<ConnectorName>\<ConnectorName.mez>, onde <ConnectorName> é o nome do seu conector.
Nota
Você pode encontrar mais informações sobre todas as variáveis que você pode definir no arquivo RunPQSDKTestSuitesSettings.json no modelo \testframework\tests\RunPQSDKTestSuitesSettingsTemplate.json fornecido.
Atualize consultas de parâmetros e 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âmetros e as configurações de teste criando uma pasta com <Nome da Extensão> e as pastas Configurações e ParameterQueries sob ela da seguinte maneira:
- testframework\tests\ConnectorConfigs\<Nome da extensão>\ParameterQueries
- testframework\tests\ConnectorConfigs\<Nome da extensão>\Settings
Os exemplos a seguir mostram como seriam os caminhos para um conector chamado Contoso:
- testframework\testes\TestSuites\Contoso\ParameterQueries
- testframework\testes\TestSuites\Contoso\Settings
Nota
Atualize a consulta M no(s) arquivo(s) de consulta de parâmetro gerado(s) para se conectar à sua fonte de dados e recuperar as tabelas NycTaxiGreen & TaxiZoneLookup carregadas anteriormente.
Como alternativa, para criar manualmente os arquivos de consulta de parâmetros e arquivos de configurações para sua fonte de dados, execute as etapas abaixo:
- Navegue até a pasta \testframework\tests\ConnectorConfigs na pasta repo clonada.
- Faça uma cópia da pasta \generic e renomeie-a para o nome da extensão.
- Abra cada arquivo na pasta \ParameterQueries e atualize a consulta M conforme as instruções fornecidas nesses arquivos.
- Abra cada arquivo na pasta \Settings e atualize esses arquivos para apontar para o arquivo de consulta de parâmetro correto.
Definir as credenciais para o conector de 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 seu 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 por credenciais corretas e salve-a como um arquivo JSON (por exemplo, contoso_cred.json).
Em seguida, use esse comando set-credential para armazenar credenciais que são usadas pelo comando compare para executar os testes. Usando a janela existente do PowerShell, defina as credenciais para sua extensão usando o arquivo de credenciais JSON gerado na etapa anterior. Consulte a seção set-credential sobre o uso 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"
Validar os dados de teste está configurado corretamente executando os testes de sanidade
Para garantir que as alterações estejam funcionando e que a configuração de dados seja 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 PQTest.exe.
Executando testes de dobragem de consulta
Os testes sob qualquer sanidade e testes padrão podem ser executados para validar a dobragem de consulta. 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 subsequentes validam a saída gerada com o arquivo de saída de diagnóstico.
Execute testes de dobragem de consulta usando o utilitário RunPQSDKTestSuites.ps1
Valide a dobragem de consulta para os testes Sanity & Standard da seguinte maneira:
.\RunPQSDKTestSuites.ps1 -ValidateQueryFolding
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1 -ValidateQueryFolding
Nota
Como alternativa, especifique ValidateQueryFolding=True
no arquivo \testframework\tests\TestSuite\RunPQSDKTestSuitesSettings.json.
Executar testes de dobragem de consulta 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âmetros e os arquivos de configurações, que são necessários para validar o conector de extensão executando o conjunto de testes padronizados e de sanidade.
Na próxima seção, você aprenderá a adicionar mais testes. Você também aprende 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óximos passos
Estrutura de teste do SDK do Power Query, parte 6 - Adicionar os testes e compreender várias opções