Power Query SDK-testframework deel 5b: de extensieconnector testen met PowerShell

Note

In dit artikel wordt het testen beschreven met behulp van het PowerShell-hulpprogramma. Zie Power Query SDK-testframework deel 5a: de extensieconnector testen met Visual Studio Code voor testen met behulp van de Visual Studio Code Test Explorer.

Deze naslaginformatie over meerdere onderdelen heeft betrekking op het instellen en uitvoeren van een standaardpakket met tests voor Ontwikkelaars van Power Query-connectors. Deze verwijzing is bedoeld om sequentieel te worden uitgevoerd om ervoor te zorgen dat uw omgeving is ingesteld voor het testen van uw aangepaste connector.

Tot nu toe hebt u de volgende stappen uitgevoerd:

  • De omgeving instellen
  • De testgegevens geüpload
  • Het testpakket gedownload
  • Verschillende bestandsindelingen en hun functionaliteit geleerd

U bent klaar om te beginnen met het verifiëren van uw extensieconnector met het testpakket.

In deze sectie gaat u het volgende doen:

  • Meer informatie over het bijwerken van de parameterquery's en de instellingenbestanden
  • Het pad instellen voor het testframework, de connectorextensie en de map met testinstellingen
  • Referenties instellen voor de extensie
  • De testgegevens valideren door sanity-tests uit te voeren
  • Valideer uw connector door de gestandaardiseerde set tests uit te voeren
  • Query folding valideren en opdrachttekst genereren in diagnostische bestanden

De PQTest.exe- en extensiepaden instellen in het RunPQSDKTestSuitesSettings.json-bestand

Navigeer naar \testframework\tests and open the RunPQSDKTestSuitesSettings.jsin het bestand in de gekloonde opslagplaatsmap. Stel vervolgens de paden voor PQTest.exe en de extensie in het configuratiebestand in:

  • PQTestExePath: Vervang door het pad naar PQTest.ext. Bijvoorbeeld C:\Users\<UserName>\.vscode\extensions\powerquery.vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft. PowerQuery.SdkTools.x.xxx.x\tools\PQTest.exe, waarbij <Gebruikernaam> de naam is van uw gebruikersprofielmap, x.x.x is de huidige versie van Power Query SDK-extensie en is x.xxx.x de huidige versie van Power Query SDK-hulpprogramma's.
  • ExtensionPath: Vervang door het pad naar het extensie-mez-bestand. Bijvoorbeeld C:\dev\<ConnectorName>\<ConnectorName.mez, waarbij <ConnectorName>> de naam van uw connector is.

Note

Meer informatie over alle variabelen die u in het RunPQSDKTestSuitesSettings.json-bestand kunt instellen, vindt u in de opgegeven \testframework\tests\RunPQSDKTestSuitesSettingsTemplate.jsop sjabloon.

Parameterquery's en instellingenbestand bijwerken met de details die specifiek zijn voor de connector voor de gegevensbronextensie

Het PowerShell-script uitvoeren.\RunPQSDKTestSuites.ps1 maakt de parameterquery's en testinstellingen door een map te maken met <extensienaam> en de mappen Settings en ParameterQueries er als volgt onder:

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

In de volgende voorbeelden ziet u hoe de paden voor een connector met de naam Contoso eruit zouden zien:

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

Note

Werk de M-query bij in de gegenereerde parameterquerybestanden om verbinding te maken met uw gegevensbron en haal de eerder geüploade NycTaxiGreen & TaxiZoneLookup-tabellen op.

U kunt ook handmatig de parameterquerybestanden en instellingenbestanden voor uw gegevensbron maken door de onderstaande stappen uit te voeren:

  1. Navigeer naar de map \testframework\tests\ConnectorConfigs onder de gekloonde opslagplaatsmap.
  2. Maak een kopie van de map \generic en wijzig de naam ervan met de extensienaam.
  3. Open elk bestand in de map \ParameterQueries en werk de M-query bij als de instructies in die bestanden.
  4. Open elk bestand in de map \Settings en werk de juiste parameterquerybestandspaden bij.

De referenties voor uw extensieconnector instellen

Zorg ervoor dat de referenties zijn ingesteld voor uw connector volgens de instructies voor de opdracht set-credential .

U kunt ook een referentiesjabloon genereren in JSON-indeling voor uw connector met behulp van de opdracht referentiesjabloon die kan worden doorgegeven aan de opdracht setreferentie . Raadpleeg de sectie referentiesjabloon voor informatie over het gebruik voor het genereren van een referentiesjabloon.

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

Neem de uitvoer van de vorige opdracht en vervang de waarden van de tijdelijke aanduiding door de juiste referenties en sla deze op als een JSON-bestand (bijvoorbeeld contoso_cred.json).

Sla vervolgens referenties op met behulp van deze opdracht voor setreferenties , die worden gebruikt door de vergelijkingsopdracht om de tests uit te voeren. Stel met behulp van het bestaande PowerShell-venster de referenties voor uw extensie in met behulp van het JSON-referentiebestand dat in de vorige stap is gegenereerd. Raadpleeg de sectie setreferentie over het gebruik voor het instellen van de referenties voor uw 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"

Controleer of de testgegevens correct zijn ingesteld door de sanity-tests uit te voeren

Voer de sanity-tests uit met behulp van het hulpprogramma RunPQSDKTestSuites.ps1 dat aanwezig is in de map \testframework\tests\TestSuites om ervoor te zorgen dat de wijzigingen werken en de gegevensset correct worden uitgevoerd:

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

De sanity- en standaardtests uitvoeren

Uitvoeren met behulp van het hulpprogramma RunPQSDKTestSuites.ps1

Voer de volgende opdracht uit om de volledige set van de sanity- en standaardtests of een set tests uit te voeren die zijn gedefinieerd door het instellingenbestand om de tests uit te voeren:

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

Voer de opdracht Get-Help als volgt uit voor meer informatie over het hulpprogramma RunPQSDKTestSuites.ps1:

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

Uitvoeren met PQTest.exe

Als u bepaalde tests rechtstreeks wilt uitvoeren met PQTest.exe, gebruikt u de volgende opdracht in hetzelfde PowerShell-venster:

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

Raadpleeg de documentatie in pqtest-overview voor meer informatie over het uitvoeren van tests met PQTest.exe.

Query folding-tests uitvoeren

De tests onder alle sanity- en standaardtests kunnen worden uitgevoerd om query folding te valideren. Voer de test de eerste keer uit om een uitvoerbestand voor diagnostische gegevens te genereren onder de map \testframework\tests\<Extension Name>\Diagnostics\. Volgende uitvoeringen valideren de uitvoer die is gegenereerd met het uitvoerbestand voor diagnostische gegevens.

Query folding-tests uitvoeren met behulp van het hulpprogramma RunPQSDKTestSuites.ps1

Valideer query folding voor de Sanity & Standard Tests als volgt:

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

Note

U kunt ook opgeven ValidateQueryFolding=True in de \testframework\tests\TestSuite\RunPQSDKTestSuitesSettings.jsvan het bestand.

Query folding-tests uitvoeren met behulp van 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

In deze sectie vindt u de stappen voor het instellen van de parameterquery's en instellingenbestanden, die vervolgens nodig zijn om uw extensieconnector te valideren door de sanity en gestandaardiseerde set tests uit te voeren.

In de volgende sectie leert u hoe u meer tests toevoegt. U krijgt ook informatie over de verschillende opdrachten en opties die beschikbaar zijn in het testframework en verschillende aanpasbare instellingen voor uw testbehoeften.

Volgende stappen 

Power Query SDK-testframework deel 6: uw tests toevoegen en verschillende opties begrijpen