Power Query SDK-testramverk del 5b – Testa tilläggsanslutningen med PowerShell

Note

Den här artikeln beskriver testning med powershell-verktyget. Om du vill testa med Visual Studio Code Test Explorer kan du läsa Power Query SDK-testramverk del 5a – Testa tilläggsanslutningen med Visual Studio Code.

Den här referensen i flera delar beskriver konfigurationen och körningen av en standardserie med tester för Power Query-anslutningsutvecklare. Den här referensen är avsedd att utföras sekventiellt för att säkerställa att din miljö har konfigurerats för testning av din anpassade anslutningsapp.

Hittills har du slutfört följande steg:

  • Konfigurera miljön
  • Laddade upp testdata
  • Laddade ned testpaketet
  • Lärt dig olika filformat och deras funktioner

Du är äntligen redo att börja verifiera tilläggsanslutningen med testpaketet.

I det här avsnittet ska du:

  • Lär dig hur du uppdaterar parameterfrågorna och inställningsfilerna
  • Ange sökvägen för testramverket, anslutningstillägget och testinställningskatalogen
  • Ange autentiseringsuppgifter för tillägget
  • Verifiera testdata genom att köra sanity-tester
  • Verifiera anslutningsappen genom att köra den standardiserade uppsättningen tester
  • Validera frågedelegering och generera kommandotext i diagnostikfiler

Ange sökvägarna för PQTest.exe och tillägg i filen RunPQSDKTestSuitesSettings.json

Gå till \testframework\tests and open the RunPQSDKTestSuitesSettings.jspå filen i den klonade lagringsplatsen. Ange sedan sökvägarna för PQTest.exe och tillägget i konfigurationsfilen:

  • PQTestExePath: Ersätt med sökvägen till PQTest.ext. Till exempel C:\Users\<UserName>\.vscode\extensions\powerquery.vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft. PowerQuery.SdkTools.x.xxx.x\tools\PQTest.exe, där <Username> är namnet på användarprofilmappen, x.x.x är den aktuella versionen av Power Query SDK-tillägget och x.xxx.x är den aktuella versionen av Power Query SDK-verktyg.
  • ExtensionPath: Ersätt med sökvägen till filnamnstillägget mez. Till exempel C:\dev\<ConnectorName>\<ConnectorName.mez>, där <ConnectorName> är namnet på din anslutningsapp.

Note

Du hittar ytterligare information om alla variabler som du kan ange i filen RunPQSDKTestSuitesSettings.json i den angivna \testframework\tests\RunPQSDKTestSuitesSettingsTemplate.jsi mallen.

Uppdatera parameterfrågor och inställningsfil med den information som är specifik för anslutningsappen för datakällans tillägg

Kör PowerShell-skriptet .\RunPQSDKTestSuites.ps1 skapar parameterfrågor och testinställningar genom att skapa en mapp med <tilläggsnamn> och mapparna Inställningar och ParameterQueries under den enligt följande:

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

I följande exempel visas hur sökvägarna för en anslutningsapp med namnet Contoso skulle se ut:

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

Note

Uppdatera M-frågan i de genererade parameterfrågefilerna för att ansluta till datakällan och hämta de tidigare uppladdade NycTaxiGreen- och TaxiZoneLookup-tabellerna.

Du kan också skapa parameterfrågefilerna och inställningsfilerna för datakällan manuellt genom att utföra stegen nedan:

  1. Gå till mappen \testframework\tests\ConnectorConfigs under den klonade lagringsplatsen.
  2. Skapa en kopia av mappen \generic och byt namn på den med tilläggsnamnet.
  3. Öppna varje fil i mappen \ParameterQueries och uppdatera M-frågan enligt anvisningarna i filerna.
  4. Öppna varje fil i mappen \Settings och uppdatera rätt sökvägar för parameterfrågan.

Ange autentiseringsuppgifterna för tilläggsanslutningsappen

Kontrollera att autentiseringsuppgifterna har konfigurerats för anslutningsappen genom att följa anvisningarna för kommandot set-credential .

Du kan också generera en mall för autentiseringsuppgifter i JSON-format för anslutningsappen med hjälp av kommandot credential-template som kan skickas till kommandot set-credential . Information om användningen för att generera en mall för autentiseringsuppgifter finns i avsnittet autentiseringsmall .

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

Ta utdata från föregående kommando och ersätt platshållarvärdena med rätt autentiseringsuppgifter och spara dem som en JSON-fil (till exempel contoso_cred.json).

Lagra sedan autentiseringsuppgifter med det här kommandot set-credential , som används av jämförelsekommandot för att köra testerna. Använd det befintliga PowerShell-fönstret och ange autentiseringsuppgifterna för tillägget med hjälp av JSON-autentiseringsfilen som genererades i föregående steg. Se avsnittet set-credential om användningen för att konfigurera autentiseringsuppgifterna för din anslutningsapp.

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

Verifiera att testdata har konfigurerats korrekt genom att köra sanity-testerna

Kontrollera att ändringarna fungerar och att datauppsättningen är korrekt genom att köra sanitetstesterna med hjälp av verktyget RunPQSDKTestSuites.ps1 som finns i katalogen \testframework\tests\TestSuites på följande sätt:

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

Kör sans- och standardtesterna

Kör med verktyget RunPQSDKTestSuites.ps1

Kör följande kommando för att köra testerna för att köra hela uppsättningen sans- och standardtester eller en uppsättning tester som definierats av inställningsfilen:

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

Om du vill veta mer om verktyget RunPQSDKTestSuites.ps1 kör du kommandot Get-Help på följande sätt:

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

Kör med PQTest.exe

Om du vill köra vissa tester direkt med PQTest.exeanvänder du följande kommando i samma PowerShell-fönster:

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

Läs dokumentationen i pqtest-overview för mer information om hur du kör tester med PQTest.exe.

Köra frågedelegeringstester

Testerna under alla sans- och standardtester kan köras för att validera frågedelegering. Kör testet första gången för att generera en diagnostikutdatafil under mappen \testframework\tests\<Extension Name>\Diagnostics\. Efterföljande körningar verifierar utdata som genererats med diagnostikutdatafilen.

Köra frågedelegeringstester med verktyget RunPQSDKTestSuites.ps1

Verifiera frågedelegering för Sanity & Standard-testerna på följande sätt:

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

Note

Du kan också ange ValidateQueryFolding=True i \testframework\tests\TestSuite\RunPQSDKTestSuitesSettings.jspå filen.

Köra frågedelegeringstester med hjälp av 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

I det här avsnittet beskrivs stegen för att konfigurera parameterfrågor och inställningsfiler, som sedan krävs för att verifiera tilläggsanslutningen genom att köra den sansade och standardiserade uppsättningen tester.

I nästa avsnitt får du lära dig hur du lägger till fler tester. Du lär dig också om de olika kommandon och alternativ som är tillgängliga inom testramverket och olika anpassningsbara inställningar för dina testbehov.

Nästa steg

Power Query SDK-testramverk del 6 – Lägga till dina tester och förstå olika alternativ