Power Query SDK-Testframework Teil 5b – Testen des Erweiterungsconnectors mit PowerShell

Note

In diesem Artikel werden Tests mithilfe des PowerShell-Hilfsprogramms behandelt. Informationen zum Testen mithilfe des Visual Studio Code Test-Explorers finden Sie unter Power Query SDK-Testframework Teil 5a – Testen des Erweiterungsconnectors mit Visual Studio Code.

Diese mehrteilige Referenz behandelt das Einrichten und Ausführen einer Standardsuite von Tests für Power Query-Connectorentwickler. 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
  • Die Testsuite wurde heruntergeladen.
  • Lernen Sie verschiedene Dateiformate und deren Funktionalität kennen.

Sie sind schließlich bereit, mit der Überprüfung Ihres Erweiterungsconnectors mit der Testsuite 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 Connectorerweiterung 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 Abfragefaltung und Generieren von Befehlstext in Diagnosedateien

Festlegen der PQTest.exe- und Erweiterungspfade in der datei RunPQSDKTestSuitesSettings.json

Navigieren Sie zum \testframework\tests and open the RunPQSDKTestSuitesSettings.jsder 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 zu "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 <Benutzername> 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 von Power Query SDK-Tools.
  • ExtensionPath: Ersetzen Sie den Pfad zur Erweiterung mez-Datei. Beispiel: C:\dev\<ConnectorName\<ConnectorName.mez>>, wobei <ConnectorName> der Name Ihres Connectors ist.

Note

Weitere Informationen zu allen Variablen, die Sie in der datei RunPQSDKTestSuitesSettings.json in der bereitgestellten \testframework\tests\RunPQSDKTestSuitesSettingsTemplate.jsauf Vorlage festlegen können, finden Sie.

Aktualisieren von Parameterabfragen und -einstellungsdateien mit den Details, die für Den Connector für die Datenquellenerweiterung spezifisch sind

Ausführen des PowerShell-Skripts .\RunPQSDKTestSuites.ps1 erstellt die Parameterabfragen und Testeinstellungen, indem ein Ordner mit <Erweiterungsname> und die Ordner "Einstellungen und ParameterQueries" unter diesem Ordner wie folgt erstellt werden:

  • testframework\tests\ConnectorConfigs\<Extension Name>\ParameterQueries
  • testframework\tests\ConnectorConfigs\<Extension Name>\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

Note

Aktualisieren Sie die M-Abfrage in den generierten Parameterabfragedateien, um eine Verbindung mit Ihrer Datenquelle herzustellen und die zuvor hochgeladenen NycTaxiGreen & TaxiZoneLookup-Tabellen abzurufen.

Alternativ können Sie die Parameterabfragedateien und Einstellungsdateien für Ihre Datenquelle manuell erstellen, indem Sie die folgenden Schritte ausführen:

  1. Navigieren Sie zum Ordner \testframework\tests\ConnectorConfigs unter dem geklonten Repositoryordner.
  2. Erstellen Sie eine Kopie des Ordners \generic, und benennen Sie ihn mit dem Erweiterungsnamen um.
  3. Öffnen Sie jede Datei im Ordner \ParameterQueries, und aktualisieren Sie die M-Abfrage gemäß den Anweisungen in diesen Dateien.
  4. Öffnen Sie jede Datei im Ordner \Settings, und aktualisieren Sie die richtigen Parameterabfragedateipfade.

Festlegen der Anmeldeinformationen für Ihren Erweiterungsconnector

Stellen Sie sicher, dass die Anmeldeinformationen für Ihren Connector gemäß den Anweisungen für den Befehl " Anmeldeinformationen einrichten " eingerichtet sind.

Alternativ können Sie eine Anmeldeinformationsvorlage im JSON-Format für Ihren Connector mithilfe des Befehls " Anmeldeinformationsvorlage " generieren, der an den Befehl " Set-credential " übergeben werden kann. Informationen zur Verwendung zum Generieren einer Anmeldeinformationsvorlage finden Sie im Abschnitt " Anmeldeinformationsvorlage ".

# <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, und ersetzen Sie die Platzhalterwerte durch die richtigen Anmeldeinformationen, und speichern Sie sie als JSON-Datei (z. B. contoso_cred.json).

Speichern Sie dann Anmeldeinformationen mithilfe dieses Befehls für die Set-Credential , die vom Befehl "Vergleichen " zum Ausführen der Tests verwendet werden. Legen Sie mithilfe des vorhandenen PowerShell-Fensters die Anmeldeinformationen für Ihre Erweiterung mithilfe der im vorherigen Schritt generierten JSON-Anmeldeinformationsdatei fest. Informationen zum Einrichten der Anmeldeinformationen 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 das Datensetup 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 zum Ausführen des vollständigen Satzes der Sanity- und Standardtests oder einer Reihe von Tests, die durch die Einstellungsdatei definiert sind, den folgenden Befehl aus, um die Tests auszuführen:

# 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 "Get-Help " 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 mit PQTest.exeauszufü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"

Lesen Sie die Dokumentation in der pqtest-Übersicht , um weitere Informationen zum Ausführen von Tests mit PQTest.exezu erhalten.

Ausführen von Abfragefaltungstests

Die Tests unter allen Sanity- und Standardtests können ausgeführt werden, um die Abfragefaltung zu überprüfen. Führen Sie den Test zum ersten Mal aus, um eine Diagnoseausgabedatei unter dem Ordner \testframework\tests\<Extension Name>\Diagnostics\ zu generieren. Anschließend wird die ausgabe überprüft, die mit der Diagnoseausgabedatei generiert wurde.

Ausführen von Abfragefaltungstests mithilfe des Hilfsprogramms RunPQSDKTestSuites.ps1

Überprüfen Sie die Abfragefaltung für die Sanity & Standard Tests wie folgt:

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

Note

Alternativ können Sie im \testframework\tests\TestSuite\RunPQSDKTestSuitesSettings.jsfür die Datei angeben ValidateQueryFolding=True .

Ausführen von Abfragefaltungstests mit 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 diesem Abschnitt werden die Schritte zum Einrichten der Parameterabfragen und -einstellungsdateien behandelt, die dann erforderlich sind, um den Erweiterungsconnector zu überprüfen, indem die Sanity- und standardisierte Gruppe von Tests ausgeführt wird.

Im nächsten Abschnitt erfahren Sie, wie Sie weitere Tests hinzufügen. 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.

Nächste Schritte

Power Query SDK-Testframework Teil 6 – Hinzufügen von Tests und Grundlegendes zu verschiedenen Optionen