Power Query SDK-teststruktur del 5 – Test af din udvidelsesconnector
Denne reference med flere dele dækker konfiguration og kørsel af en standardpakke med test til udviklere af Power Query-connectors. Denne reference er beregnet til at blive udført sekventielt for at sikre, at dit miljø er konfigureret til at teste din brugerdefinerede connector.
Indtil videre har du fuldført følgende trin:
- Konfigurer miljøet
- Overførte testdataene
- Downloadede testpakken
- Lærte forskellige filformater og deres funktionalitet
Du er endelig klar til at begynde at bekræfte din udvidelsesconnector med testpakken.
I dette afsnit kan du:
- Få mere at vide om, hvordan du opdaterer parameterforespørgslerne og indstillingsfilerne
- Angiv stien til mappen med teststrukturen, connectorudvidelsen og testindstillingsmappen
- Angiv legitimationsoplysninger for udvidelsen
- Valider testdataene ved at køre sanitetstest
- Valider din connector ved at køre det standardiserede sæt test
- Valider forespørgselsdelegering, og generér kommandotekst i diagnosticeringsfiler
Angiv stierne PQTest.exe og filtypenavne i filen RunPQSDKTestSuites Indstillinger.json
Gå til \testframework\tests, og åbn filen RunPQSDKTestSuites Indstillinger.json i den klonede lagermappe. Angiv derefter stierne for PQTest.exe og filtypenavnet i konfigurationsfilen:
- PQTestExePath: Erstat med stien til PQTest.ext. F.eks. C:\Users\<UserName>\.vscode\extensions\powerquery.vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.x.xxx.x\tools\PQTest.exe, hvor <Brugernavn> er navnet på din brugerprofilmappe, x.x.x er den aktuelle version af Power Query SDK-udvidelsen, og x.xxx.x er den aktuelle version af Power Query SDK-værktøjer.
- ExtensionPath: Erstat med stien til filtypenavnet mez-filen. F.eks. C:\dev\<Forbind orName>\<Forbind orName.mez>, hvor <Forbind orName> er navnet på din connector.
Bemærk
Du kan finde flere oplysninger om alle de variabler, du kan angive i filen RunPQSDKTestSuites Indstillinger.json i den angivne skabelon \testframework\tests\RunPQSDKTestSuites Indstillinger Template.json.
Opdater parameterforespørgsler og indstillingsfil med de oplysninger, der er specifikke for din datakildeudvidelsesconnector
Hvis du kører PowerShell-scriptet .\RunPQSDKTestSuites.ps1, oprettes parameterforespørgslerne og testindstillingerne ved at oprette en mappe med <udvidelsesnavn> og mapperne Indstillinger og ParameterQueries under det på følgende måde:
- testframework\tests\Forbind orConfigs\<Extension Name>\ParameterQueries
- testframework\tests\Forbind orConfigs\<Extension Name>\Indstillinger
I følgende eksempler kan du se, hvordan stierne for en connector med navnet Contoso ville se ud:
- testframework\tests\TestSuites\Contoso\ParameterQueries
- testframework\tests\TestSuites\Contoso\Indstillinger
Bemærk
Opdater M-forespørgslen i den eller de genererede parameterforespørgselsfiler for at oprette forbindelse til datakilden og hente de tidligere overførte Tabeller NycTaxiGreen & TaxiZoneLookup.
Hvis du vil oprette parameterforespørgselsfilerne og indstillingsfilerne for datakilden manuelt, skal du udføre nedenstående trin:
- Gå til mappen \testframework\tests\Forbind orConfigs under den klonede lagermappe.
- Opret en kopi af mappen \generic, og omdøb den til filtypenavnet.
- Åbn hver fil i mappen \ParameterQueries, og opdater M-forespørgslen som instruktionerne i disse filer.
- Åbn hver fil i mappen \Indstillinger, og opdater disse filer, så de peger på den korrekte parameterforespørgselsfil.
Angiv legitimationsoplysningerne for din udvidelsesconnector
Sørg for, at legitimationsoplysningerne er konfigureret for din connector ved at følge vejledningen til kommandoen set-credential .
Du kan også bruge kommandoen credential-template til at generere en skabelon til legitimationsoplysninger i JSON-format for din connector, der kan overføres til kommandoen set-credential . Se afsnittet med legitimationsoplysninger-skabelon om brugen for at oprette en skabelon til legitimationsoplysninger.
# <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
Tag outputtet fra den forrige kommando, og erstat pladsholderværdierne med korrekte legitimationsoplysninger, og gem det som en JSON-fil (f.eks. contoso_cred.json).
Brug derefter denne kommando med legitimationsoplysninger for at gemme legitimationsoplysninger, der bruges af kommandoen sammenlign , til at køre testene. Brug det eksisterende PowerShell-vindue til at angive legitimationsoplysningerne for din udvidelse ved hjælp af den JSON-legitimationsfil, der blev oprettet i det forrige trin. Se afsnittet angiv legitimationsoplysninger om brugen for at konfigurere legitimationsoplysningerne for din connector.
$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, at testdataene er konfigureret korrekt ved at køre sanitetstestene
Hvis du vil sikre dig, at ændringerne fungerer, og at datasættet udføres korrekt, skal du køre sanitetstestene ved hjælp af værktøjet RunPQSDKTestSuites.ps1 i mappen \testframework\tests\TestSuites på følgende måde:
.\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 tilregneligheds- og standardtest
Kør ved hjælp af værktøjet RunPQSDKTestSuites.ps1
Hvis du vil køre alle de sunde og standardtests eller et sæt test, der er defineret af indstillingsfilen, skal du køre følgende kommando for at udføre testene:
# Run all the Sanity & Standard Tests
.\RunPQSDKTestSuites.ps1
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1
Hvis du vil vide mere om værktøjet RunPQSDKTestSuites.ps1, skal du køre kommandoen Get-Help på følgende måde:
Get-Help .\RunPQSDKTestSuites.ps1
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> Get-Help .\RunPQSDKTestSuites.ps1 -Detailed
Kør ved hjælp af PQTest.exe
Brug følgende kommando i det samme PowerShell-vindue til at køre bestemte test direkte ved hjælp af 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 dokumentationen i pqtest-overview for at få flere oplysninger om kørsel af test med PQTest.exe.
Kører test af forespørgselsdelegering
Testene under en hvilken som helst fornufts- og standardtest kan køres for at validere forespørgselsdelegering. Kør testen første gang for at oprette en outputfil til diagnosticering under mappen \testframework\tests\<Extension Name>\Diagnostics\. Efterfølgende kørsler validerer det output, der genereres med outputfilen til diagnosticering.
Kør test til forespørgselsdelegering ved hjælp af værktøjet RunPQSDKTestSuites.ps1
Valider forespørgselsdelegering for sanitets- og standardtest på følgende måde:
.\RunPQSDKTestSuites.ps1 -ValidateQueryFolding
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1 -ValidateQueryFolding
Bemærk
Du kan også angive ValidateQueryFolding=True
filen \testframework\tests\TestSuite\RunPQSDKTestSuites Indstillinger.json.
Kør test af forespørgselsdelegering ved hjælp af 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"
Konklusion
I dette afsnit gennemgås trinnene til konfiguration af parameterforespørgsler og indstillingsfiler, som derefter kræves for at validere din udvidelsesconnector ved at køre det sunde og standardiserede sæt test.
I næste afsnit får du mere at vide om, hvordan du tilføjer flere test. Du får også mere at vide om de forskellige kommandoer og indstillinger, der er tilgængelige i teststrukturen, og forskellige indstillinger, der kan tilpasses til dine testbehov.
Næste trin
Power Query SDK-teststruktur del 6 – Tilføjelse af dine test og forståelse af forskellige muligheder