Power Query SDK-teststrukturdel 5b – Test af din udvidelsesconnector med PowerShell

Bemærkning

Denne artikel dækker test ved hjælp af PowerShell-værktøjet. Hvis du vil teste ved hjælp af Visual Studio Code Test Explorer, skal du se Power Query SDK-teststruktur del 5a – Test af din udvidelsesconnector med Visual Studio Code.

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 RunPQSDKTestSuitesSettings.json

Gå til \testframework\tests and open the RunPQSDKTestSuitesSettings.jspå filen i den klonede lagermappe. Angiv derefter stierne for PQTest.exe og filtypenavnet i konfigurationsfilen:

  • PQTestExePath: Erstat med stien til PQTest.ext. 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\<ConnectorName>\<ConnectorName.mez>, hvor <ConnectorName> er navnet på din connector.

Bemærkning

Du kan finde flere oplysninger om alle de variabler, du kan angive i RunPQSDKTestSuitesSettings.json-filen i den angivne \testframework\tests\RunPQSDKTestSuitesSettingsTemplate.jspå skabelonen.

Opdater parameterforespørgsler og indstillingsfil med de oplysninger, der er specifikke for din datakildeudvidelsesconnector

Kørsel af PowerShell-scriptet .\RunPQSDKTestSuites.ps1 opretter parameterforespørgslerne og testindstillingerne ved at oprette en mappe med <udvidelsesnavn> og mapperne Indstillinger og ParameterQueries under den på følgende måde:

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

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\Settings

Bemærkning

Opdater M-forespørgslen i de genererede parameterforespørgselsfiler for at oprette forbindelse til datakilden og hente de tidligere overførte NycTaxiGreen - TaxiZoneLookup-tabeller.

Du kan også manuelt oprette parameterforespørgselsfilerne og indstillingsfilerne for datakilden ved at udføre nedenstående trin:

  1. Gå til mappen \testframework\tests\ConnectorConfigs under den klonede lagermappe.
  2. Opret en kopi af mappen \generic, og omdøb den med filtypenavnet.
  3. Åbn hver fil i mappen \ParameterQueries, og opdater M-forespørgslen som instruktionerne i disse filer.
  4. Åbn hver fil i mappen \Indstillinger, og opdater de korrekte stier til parameterforespørgsler.

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å oprette en skabelon til legitimationsoplysninger i JSON-format for din connector ved hjælp af kommandoen credential-template , der kan overføres til kommandoen set-credential . Du kan finde oplysninger om brugen af at oprette en skabelon til legitimationsoplysninger i afsnittet med 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 de korrekte legitimationsoplysninger, og gem det som en JSON-fil (f.eks. contoso_cred.json).

Gem derefter legitimationsoplysninger ved hjælp af denne kommando med angivelse af legitimationsoplysninger , som 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 med angivelse af legitimationsoplysninger om brugen af konfiguration af 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 det RunPQSDKTestSuites.ps1 værktøj, der findes 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 RunPQSDKTestSuites.ps1-værktøjet

Hvis du vil køre det komplette sæt af 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

Hvis du vil køre bestemte test direkte ved hjælp af PQTest.exe, skal du bruge følgende kommando i det samme PowerShell-vindue:

# <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 af forespørgselsdelegering ved hjælp af RunPQSDKTestSuites.ps1-værktøjet

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ærkning

Du kan også angive ValidateQueryFolding=True i \testframework\tests\TestSuite\RunPQSDKTestSuitesSettings.jspå filen.

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-teststrukturdel 6 – Tilføjelse af dine test og forståelse af forskellige muligheder