Teilen über


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:

  1. Navigieren Sie zum Ordner \testframework\tests\ConnectorConfigs unter dem geklonten Repository-Ordner.
  2. Erstellen Sie eine Kopie des Ordners \generic und ändern Sie den Namen zum Erweiterungsnamen.
  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 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.

Nächste Schritte

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