Power Query SDK Testframework Teil 5 – Testen des Erweiterungskonnektors
Diese mehrteilige Referenz behandelt das Einrichten und Ausführen einer Standardsuite von Tests für Power Query-Konnektorentwickler. Diese Referenz soll sequenziell durchgeführt werden, um sicherzustellen, dass Ihre Umgebung zum Testen des benutzerdefinierten Connectors eingerichtet ist.
Bisher haben Sie folgende Schritte ausgeführt:
- Einrichten der Umgebung
- Testdaten hochgeladen
- Testsammlung heruntergeladen
- Verschiedene Dateiformate und deren Funktionalität kennen gelernt
Sie sind nun bereit, mit der Überprüfung Ihres Erweiterungskonnektors mit der Testsammlung zu beginnen.
In diesem Abschnitt führen Sie folgende Schritte aus:
- Erfahren Sie, wie Sie die Parameterabfragen und die Einstellungsdateien aktualisieren
- Festlegen des Pfads für das Testframework, die Konnektorerweiterung und das Testeinstellungsverzeichnis
- Festlegen von Anmeldeinformationen für die Erweiterung
- Überprüfen der Testdaten durch Ausführen von Sanity-Tests
- Überprüfen Des Connectors durch Ausführen der standardisierten Testgruppen
- Überprüfen der Query Folding und Generieren von Befehlstext in Diagnosedateien
Legen Sie die PQTest.exe und Erweiterungspfade in die Datei RunPQSDKTestSuitesSettings.json
Navigieren Sie zu \testframework\tests und öffnen Sie die RunPQSDKTestSuitesSettings.json-Datei im geklonten Repositoryordner. Legen Sie dann die Pfade für PQTest.exe und die Erweiterung in der Konfigurationsdatei fest:
- PQTestExePath: Ersetzen Sie den Pfad mit „PQTest.ext“. Beispiel: C:\Users\<UserName>\.vscode\extensions\powerquery.vscode-powerquery-sdk-x.x.x-win32-x64\.nuget\Microsoft.PowerQuery.SdkTools.x.xxx.x\tools\PQTest.exe, wobei <Nutzername> der Name Ihres Benutzerprofilordners ist, x.x.x ist die aktuelle Version der Power Query SDK-Erweiterung, und x.xxx.x ist die aktuelle Version der Power Query SDK-Tools.
- ExtensionPath: Ersetzen Sie den Pfad zur Erweiterung mez-Datei. Beispielsweise C:\dev\<ConnectorName>\<ConnectorName>.mez, wobei <ConnectorName> der Name Ihres Connectors ist.
Hinweis
Weitere Informationen zu allen Variablen, die Sie in der Datei RunPQSDKTestSuitesSettings.json festlegen können finden Sie in der bereitgestellten Vorlage \testframework\tests\RunPQSDKTestSuitesSettingsTemplate.json.
Aktualisieren von Parameterabfragen und Einstellungsdatei mit den Details, die speziell für Ihren Datenquellen-Erweiterungs-Connector sind
Wenn Sie das PowerShell-Skript .\RunPQSDKTestSuites.ps1 ausführen, werden die Parameterabfragen und Testeinstellungen erstellt, indem Sie einen Ordner mit <Erweiterungsname> und die Ordner Einstellungen und Paramterabfragen unter ihr wie folgt erstellen:
- testframework\tests\ConnectorConfigs\<Erweiterungsname>\ParameterQueries
- testframework\tests\ConnectorConfigs\<Erweiterungsname>\Settings
Die folgenden Beispiele zeigen, wie die Pfade für einen Connector namens Contoso aussehen würden:
- testframework\tests\TestSuites\Contoso\ParameterQueries
- testframework\tests\TestSuites\Contoso\Settings
Hinweis
Aktualisieren Sie die M-Abfrage in der generierten Parameterabfragedatei(en), um eine Verbindung mit Ihrer Datenquelle herzustellen und die zuvor hochgeladenen NycTaxiGreen & TaxiZoneLookup-Tabellen abzurufen.
Führen Sie alternativ die folgenden Schritte aus, um die Parameterabfragedateien und Einstellungsdateien für Ihre Datenquelle manuell zu erstellen:
- Navigieren Sie zum Ordner \testframework\tests\ConnectorConfigs unter dem geklonten Repository-Ordner.
- Erstellen Sie eine Kopie des Ordners \generic und ändern Sie den Namen zum Erweiterungsnamen.
- Öffnen Sie jede Datei im Ordner \ParameterQueries und aktualisieren Sie die M-Abfrage gemäß den Anweisungen in diesen Dateien.
- Öffnen Sie jede Datei im Ordner \Settings und aktualisieren Sie diese Dateien so, dass sie auf die richtige Parameterabfragedatei verweisen.
Festlegen der Anmeldedaten für Ihren Erweiterungsconnector
Stellen Sie sicher, dass die Anmeldedaten für Ihren Connector gemäß den Anweisungen für den Befehl Anmeldedaten einrichten eingerichtet sind.
Verwenden Sie, alternativ, diesen Befehl, um eine Anmeldedatenvorlage im JSON-Format zu generieren, die an den Befehl set-credential übergeben werden kann. Informationen zum Generieren einer Anmeldedatenvorlage finden Sie im Abschnitt Anmeldedatenvorlage.
# <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
Nehmen Sie die Ausgabe des vorherigen Befehls, ersetzen Sie die Platzhalterwerte durch die richtigen Anmeldedaten und speichern Sie sie als JSON-Datei (z. B. contoso_cred.json).
Verwenden Sie dann diesen Set-Credential-Befehl, um Anmeldedaten zu speichern, die vom Vergleichsbefehl zum Ausführen der Tests verwendet werden. Legen Sie mithilfe des vorhandenen PowerShell-Fensters die Anmeldedaten für Ihre Erweiterung mithilfe der im vorherigen Schritt generierten JSON-Anmeldedatendatei fest. Informationen zum Einrichten der Anmeldedaten für Ihren Connector finden Sie im Abschnitt Set-Credential.
$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"
Überprüfen der korrekten Einrichtung der Testdaten durch Ausführen der Sanity-Tests
Um sicherzustellen, dass die Änderungen funktionieren und die Dateneinrichtung ordnungsgemäß ausgeführt wird, führen Sie die Sanity-Tests mit dem Hilfsprogramm RunPQSDKTestSuites.ps1 aus, das im Verzeichnis \testframework\tests\TestSuites wie folgt vorhanden ist:
.\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
----------------------------------------------------------------------------------------------
#>
Ausführen der Sanity- und Standardtests
Ausführen mit dem Hilfsprogramm RunPQSDKTestSuites.ps1
Führen Sie den folgenden Befehl aus, um alle Sanity- und Standardtests oder eine Reihe von Tests auszuführen, die durch die Einstellungsdatei definiert sind:
# Run all the Sanity & Standard Tests
.\RunPQSDKTestSuites.ps1
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1
Um mehr über das Hilfsprogramm RunPQSDKTestSuites.ps1 zu erfahren, führen Sie den Befehl Hilfe wie folgt aus:
Get-Help .\RunPQSDKTestSuites.ps1
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> Get-Help .\RunPQSDKTestSuites.ps1 -Detailed
Ausführen mit PQTest.exe
Verwenden Sie den folgenden Befehl im selben PowerShell-Fenster, um bestimmte Tests direkt mithilfe von PQTest.exe auszuführen:
# <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"
Weitere Informationen zum Ausführen von Tests mit PQTest.exe erhalten Sie in der Dokumentation in der pqtest-Übersicht.
Query Folding-Tests ausführen
Die Tests unter allen Sanity- und Standardtests können ausgeführt werden, um die Query Folding zu überprüfen. Führen Sie den Test zum ersten Mal aus, um eine Diagnose Ausgabedatei unter dem Ordner \testframework\tests\<Erweiterungs-Name>\Diagnostics\ zu generieren. Anschließend wird die Ausgabe überprüft, die mit der Diagnose Ausgabedatei generiert wurde.
Ausführen von Query Folding-Tests mithilfe des Hilfsprogramms RunPQSDKTestSuites.ps1
Überprüfen Sie die Query Folding für die Sanity & Standard Tests wie folgt:
.\RunPQSDKTestSuites.ps1 -ValidateQueryFolding
# Example:
# PS C:\dev\DataConnectors\testframework\tests\TestSuites> .\RunPQSDKTestSuites.ps1 -ValidateQueryFolding
Hinweis
Alternativ können Sie ValidateQueryFolding=True
in der Datei \testframework\tests\TestSuite\RunPQSDKTestSuitesSettings.json angeben.
Ausführen von Query Folding-Tests mithilfe von 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"
Zusammenfassung
In diesem Abschnitt werden die Schritte zum Einrichten der Parameterabfragen und Einstellungsdateien behandelt, die dann erforderlich sind, um den Erweiterungskonnektor zu überprüfen, indem die Sanity- und standardisierte Gruppe von Tests ausgeführt wird.
Im nächsten Abschnitt wird beschrieben, wie Sie mehr Tests hinzufügen können. Außerdem erfahren Sie mehr über die verschiedenen Befehle und Optionen, die im Testframework verfügbar sind, sowie über verschiedene anpassbare Einstellungen für Ihre Testanforderungen.