Power Query SDK test framework part 5b - Test del connettore di estensione con PowerShell

Note

Questo articolo illustra i test con l'utilità PowerShell. Per i test con Esplora test di Visual Studio Code, vedere Power Query SDK test framework part 5a - Test del connettore di estensione con Visual Studio Code.

Questo riferimento in più parti illustra la configurazione e l'esecuzione di una suite standard di test per gli sviluppatori di connettori di Power Query. Questo riferimento deve essere eseguito in sequenza per assicurarsi che l'ambiente sia configurato per il test del connettore personalizzato.

Finora sono stati completati i passaggi seguenti:

  • Configurare l'ambiente
  • Caricare i dati di test
  • Scaricato il gruppo di test
  • Sono stati appresi vari formati di file e le relative funzionalità

Si è finalmente pronti per iniziare a verificare il connettore di estensioni con il gruppo di test.

In questa sezione, tu:

  • Informazioni su come aggiornare le query sui parametri e i file di impostazioni
  • Impostare il percorso per il framework di test, l'estensione del connettore e la directory delle impostazioni di test
  • Impostare le credenziali per l'estensione
  • Convalidare i dati di test eseguendo test di integrità
  • Convalidare il connettore eseguendo il set standardizzato di test
  • Convalidare la riduzione delle query e generare il testo del comando nei file di diagnostica

Impostare i percorsi di PQTest.exe ed estensione nel file di RunPQSDKTestSuitesSettings.json

Passare a \testframework\tests and open the RunPQSDKTestSuitesSettings.jsnel file nella cartella del repository clonato. Impostare quindi i percorsi per PQTest.exe e l'estensione nel file di configurazione:

  • PQTestExePath: sostituire con il percorso di PQTest.ext. Ad esempio, C:\Users\<UserName>\.vscode\extensions\powerquery.vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft. PowerQuery.SdkTools.x.xxx.x\tools\PQTest.exe, dove <Username> è il nome della cartella del profilo utente, x.x.x è la versione corrente dell'estensione Power Query SDK e x.xxx.x è la versione corrente degli strumenti Power Query SDK.
  • ExtensionPath: sostituire con il percorso del file mez di estensione. Ad esempio, C:\dev\<ConnectorName>\<ConnectorName.mez>, dove <ConnectorName> è il nome del connettore.

Note

È possibile trovare altre informazioni su tutte le variabili che è possibile impostare nel file di RunPQSDKTestSuitesSettings.json nel \testframework\tests\RunPQSDKTestSuitesSettingsTemplate.jsfornito sul modello.

Aggiornare le query sui parametri e il file di impostazioni con i dettagli specifici del connettore dell'estensione dell'origine dati

Esecuzione dello script di PowerShell.\RunPQSDKTestSuites.ps1 crea le query dei parametri e le impostazioni di test creando una cartella con < il nome >dell'estensione e le cartelle Settings e ParameterQueries sotto di essa come indicato di seguito:

  • testframework\tests\ConnectorConfigs\<Nome> estensione\ParameterQueries
  • testframework\tests\ConnectorConfigs\<Nome> estensione\Impostazioni

Gli esempi seguenti illustrano i percorsi di un connettore denominato Contoso:

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

Note

Aggiornare la query M nei file di query dei parametri generati per connettersi all'origine dati e recuperare le tabelle NycTaxiGreen e TaxiZoneLookup caricate in precedenza.

In alternativa, creare manualmente i file di query dei parametri e i file di impostazioni per l'origine dati eseguendo i passaggi seguenti:

  1. Passare alla cartella \testframework\tests\ConnectorConfigs nella cartella del repository clonato.
  2. Creare una copia della cartella \generica e rinominarla con il nome dell'estensione.
  3. Aprire ogni file nella cartella \ParameterQueries e aggiornare la query M come istruzioni fornite in tali file.
  4. Aprire ogni file nella cartella \Settings e aggiornare i percorsi di file di query dei parametri corretti.

Impostare le credenziali per il connettore di estensione

Assicurarsi che le credenziali siano configurate per il connettore seguendo le istruzioni per il comando set-credential .

In alternativa, generare un modello di credenziali in formato JSON per il connettore usando il comando credential-template che può essere passato al comando set-credential . Per informazioni sull'utilizzo per generare un modello di credenziali, vedere la sezione credential-template .

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

Eseguire l'output del comando precedente e sostituire i valori segnaposto con credenziali corrette e salvarlo come file JSON ( ad esempio, contoso_cred.json).

Archiviare quindi le credenziali usando questo comando set-credential , che vengono usate dal comando compare per eseguire i test. Usando la finestra di PowerShell esistente, impostare le credenziali per l'estensione usando il file di credenziali JSON generato nel passaggio precedente. Vedere la sezione set-credential sull'utilizzo per configurare le credenziali per il connettore.

$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"

Verificare che i dati di test siano configurati correttamente eseguendo i test di integrità

Per assicurarsi che le modifiche funzionino e che la configurazione dei dati venga eseguita correttamente, eseguire i test di integrità usando l'utilità RunPQSDKTestSuites.ps1 presente nella directory \testframework\tests\TestSuites come indicato di seguito:

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

Eseguire i test di integrità e standard

Eseguire usando l'utilità RunPQSDKTestSuites.ps1

Per eseguire il set completo dei test di integrità e standard o un set di test definiti dal file di impostazioni, eseguire il comando seguente per eseguire i test:

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

Per altre informazioni sull'utilità RunPQSDKTestSuites.ps1, eseguire il comando Get-Help come indicato di seguito:

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

Eseguire con PQTest.exe

Per eseguire test specifici direttamente usando PQTest.exe, usare il comando seguente nella stessa finestra di 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"

Vedere la documentazione in pqtest-overview per altre informazioni sull'esecuzione di test con PQTest.exe.

Esecuzione di test di riduzione delle query

I test con qualsiasi integrità e test standard possono essere eseguiti per convalidare la riduzione delle query. Eseguire il test la prima volta per generare un file di output di diagnostica nella cartella \testframework\tests\Nome >estensione\<Diagnostics\. Le esecuzioni successive convalidano l'output generato con il file di output di diagnostica.

Eseguire test di riduzione delle query usando l'utilità RunPQSDKTestSuites.ps1

Convalidare la riduzione delle query per i test sanity e standard come indicato di seguito:

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

Note

In alternativa, specificare ValidateQueryFolding=True nel \testframework\tests\TestSuite\RunPQSDKTestSuitesSettings.jsnel file.

Eseguire test di riduzione delle query 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"

Conclusione

In questa sezione sono stati illustrati i passaggi per configurare le query sui parametri e i file di impostazioni, che vengono quindi necessari per convalidare il connettore di estensione eseguendo il livello di integrità e il set standardizzato di test.

Nella sezione successiva si apprenderà come aggiungere altri test. Vengono inoltre illustrati i vari comandi e opzioni disponibili all'interno del framework di test e varie impostazioni personalizzabili per le esigenze di test.

Passaggi successivi

Power Query SDK test framework parte 6 - Aggiunta dei test e comprensione di varie opzioni