Power Query SDK-testrammeverk del 5 – Testing av utvidelseskoblingen
Denne flerdelte referansen dekker konfigurasjonen og kjøringen av en standard testserie for Power Query-koblingsutviklere. Denne referansen er ment å gjøres sekvensielt for å sikre at miljøet er konfigurert for testing av den egendefinerte koblingen.
Så langt har du fullført følgende trinn:
- Konfigurere miljøet
- Lastet opp testdataene
- Lastet ned testserien
- Lærte ulike filformater og deres funksjonalitet
Du er endelig klar til å begynne å bekrefte utvidelseskoblingen med testserien.
I denne delen:
- Finn ut hvordan du oppdaterer parameterspørringene og innstillingsfilene
- Angi banen for testrammeverket, koblingsutvidelsen og testinnstillingskatalogen
- Angi legitimasjon for utvidelsen
- Valider testdataene ved å kjøre sanity-tester
- Valider koblingen ved å kjøre det standardiserte settet med tester
- Valider spørringsdelegering og generer kommandotekst i diagnosefiler
Angi PQTest.exe- og filtypebaner i RunPQSDKTestSuites Innstillinger.json-filen
Gå til \testframework\tester, og åpne Filen RunPQSDKTestSuites Innstillinger.json i den klonede repositoriet. Angi deretter banene for PQTest.exe og filtypen i konfigurasjonsfilen:
- PQTestExePath: Erstatt med banen til PQTest.ext. For eksempel C:\Users\<UserName>\.vscode\extensions\powerquery.vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.x.xxx.x\tools\PQTest.exe, where< Username> is the name of your user profile folder, x.x.x is the current version of Power Query SDK extension, and x.xxx.x is the current version of Power Query SDK tools.
- ExtensionPath: Erstatt med banen til filen for filtypen mez. For eksempel C:\dev\<Koble til orName>\<Koble til orName.mez>, der <Koble til orName> er navnet på koblingen.
Merk
Du finner mer informasjon om alle variablene du kan angi i RunPQSDKTestSuites Innstillinger.json-filen i den angitte malen \testframework\tests\RunPQSDKTestSuites Innstillinger Template.json.
Oppdater parameterspørringer og innstillingsfil med detaljene som er spesifikke for datakildeutvidelseskoblingen
Hvis du kjører PowerShell-skriptet .\RunPQSDKTestSuites.ps1, opprettes parameterspørringene og testinnstillingene ved å opprette en mappe med <navn på filtype>, og mappene Innstillinger og ParameterQueries under som følger:
- testframework\tests\Koble til orConfigs\<Extension Name>\ParameterQueries
- testframework\tests\Koble til orConfigs\<Extension Name>\Innstillinger
Eksemplene nedenfor viser hvordan banene for en kobling kalt Contoso vil se ut:
- testframework\tests\TestSuites\Contoso\ParameterQueries
- testframework\tests\TestSuites\Contoso\Innstillinger
Merk
Oppdater M-spørringen i de genererte parameterspørringsfilene for å koble til datakilden og hente de tidligere opplastede NycTaxiGreen & TaxiZoneLookup-tabellene.
Hvis du vil opprette parameterspørringsfilene og innstillingsfilene for datakilden manuelt, kan du utføre trinnene nedenfor:
- Gå til \testframework\tests\Koble til orConfigs-mappen under den klonede repositoriet.
- Lag en kopi av \generic-mappen, og gi den nytt navn til navnet på filtypen.
- Åpne hver fil i \ParameterQueries-mappen, og oppdater M-spørringen som instruksjonene i disse filene.
- Åpne hver fil i \Innstillinger-mappen, og oppdater disse filene slik at de peker til riktig parameterspørringsfil.
Angi legitimasjon for utvidelseskoblingen
Kontroller at legitimasjonen er konfigurert for koblingen ved å følge instruksjonene for kommandoen angi legitimasjon .
Alternativt kan du bruke kommandoen legitimasjonsmal til å generere en legitimasjonsmal i JSON-format for koblingen som kan sendes til kommandoen angi legitimasjon . Se delen legitimasjonsmal på bruken for å generere en legitimasjonsmal.
# <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 utdataene fra den forrige kommandoen, og erstatt plassholderverdiene med riktig legitimasjon, og lagre den som en JSON-fil (for eksempel contoso_cred.json).
Bruk deretter denne kommandoen for angitt legitimasjon til å lagre legitimasjon som brukes av sammenligningskommandoen til å kjøre testene. Bruk det eksisterende PowerShell-vinduet til å angi legitimasjonen for utvidelsen ved hjelp av JSON-legitimasjonsfilen som ble generert i forrige trinn. Se delen med angitt legitimasjon om bruken for å konfigurere legitimasjonen for koblingen.
$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"
Valider testdataene konfigureres på riktig måte ved å kjøre sanity-testene
Hvis du vil sikre at endringene fungerer og dataoppsettet gjøres riktig, kjører du sanity-testene ved hjelp av RunPQSDKTestSuites.ps1-verktøyet som finnes i \testframework\tests\TestSuites-katalogen som følger:
.\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
----------------------------------------------------------------------------------------------
#>
Kjør sanitets- og standardtestene
Kjør med RunPQSDKTestSuites.ps1-verktøyet
Hvis du vil kjøre alle sanitets- og standardtestene eller et sett med tester som er definert av innstillingsfilen, kjører du følgende kommando for å utføre testene:
# Run all the Sanity & Standard Tests
.\RunPQSDKTestSuites.ps1
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1
Hvis du vil lære mer om RunPQSDKTestSuites.ps1-verktøyet, kan du kjøre Kommandoen Få hjelp på følgende måte:
Get-Help .\RunPQSDKTestSuites.ps1
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> Get-Help .\RunPQSDKTestSuites.ps1 -Detailed
Kjør med PQTest.exe
Bruk følgende kommando i samme PowerShell-vindu til å kjøre bestemte tester direkte ved hjelp av 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"
Se gjennom dokumentasjonen i pqtest-oversikt for mer informasjon om hvordan du kjører tester med PQTest.exe.
Kjøre spørringsdelegeringstester
Testene under alle tilregnelighets- og standardtester kan kjøres for å validere spørringsdelegering. Kjør testen første gang for å generere en utdatafil for diagnose under mappen \testframework\tests\<Extension Name>\Diagnostics\. Etterfølgende kjøringer validerer utdataene som genereres med utdatafilen for diagnoser.
Kjør spørringsdelegeringstester ved hjelp av Verktøyet RunPQSDKTestSuites.ps1
Valider spørringsdelegering for Sanity &Standard-testene på følgende måte:
.\RunPQSDKTestSuites.ps1 -ValidateQueryFolding
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1 -ValidateQueryFolding
Merk
Alternativt kan du angi ValidateQueryFolding=True
i filen \testframework\tests\TestSuite\RunPQSDKTestSuites Innstillinger.json.
Kjør spørringsdelegeringstester ved hjelp 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"
Konklusjon
Denne delen dekket trinnene for å konfigurere parameterspørringer og innstillingsfiler, som deretter kreves for å validere utvidelseskoblingen ved å kjøre sanity og standardisert sett med tester.
I neste del lærer du hvordan du legger til flere tester. Du lærer også om de ulike kommandoene og alternativene som er tilgjengelige i testrammeverket, og ulike innstillinger som kan tilpasses for dine testbehov.
Neste trinn
Power Query SDK-testrammeverk del 6 – Legge til testene dine og forstå ulike alternativer