Power Query SDK Testframework Teil 4 – Testformatspezifikation
Diese mehrteilige Referenz behandelt das Einrichten und Ausführen einer Standardsuite von Tests für Power Query-Konnektorentwickler. Der Verweis soll sequenziell durchgeführt werden, um sicherzustellen, dass Ihre Umgebung zum Testen des benutzerdefinierten Connector eingerichtet ist.
Nachdem Sie die Umgebung eingerichtet, die Testdaten hochgeladen und die Testsammlung eingerichtet haben, können Sie mit der Überprüfung des Erweiterungskonnektors mit der Testsammlung beginnen. Bevor Sie die Tests ausführen, müssen Sie verschiedene Arten von Dateien und Formaten im Testframework verstehen.
In diesem Abschnitt führen Sie folgende Schritte aus:
- Lernen Sie die Im Testframework verwendeten Dateiformate und deren Funktionalität kennen
Spezifikation für Tests im PQ/PQOut-Format
Die Tests zum Überprüfen von Erweiterungskonnektors mit dem Power Query SDK-Testframework werden im PQ/PQOut-Format geschrieben.
In der folgenden Liste werden die Dateitypen beschrieben, die Sie beim Arbeiten mit dem Power Query SDK-Testframework beachten müssen:
- Testabfragedatei, auch als PQ-Datei bezeichnet, mit der Erweiterung .query.pq.
- Ausgabedatei, auch als PQOut-Datei bezeichnet, mit der Erweiterung .query.pqout.
- Optionale Parameter-Abfragedatei mit der Erweiterung .parameterquery.pq.
- Optionale Einstellungsdatei mit der Erweiterung .settings.
- Optionaler Diagnose Datei mit der Erweiterung .diagnose.
Testabfragedatei, auch als PQ-Datei bezeichnet, mit der Erweiterung .query.pq
Die Testabfragedatei (.query.pq) enthält eine einzelne Power Query M-Formelsprachenabfrage. Die Mashup-Abfrage besteht aus Variablen, Ausdrücken und Werten, die von einem let
Ausdruck mit einem benutzerdefinierten Namen der Datenquellenfunktion des Verbinders gekapselt wurden, und den erforderlichen Metadaten, die ausgeführt werden sollen.
let
Source = Snowflake.Databases("POWERBI.snowflakecomputing.com", "DEMO_WH"),
Database = Source{[Name="NYCTAXIDB”, Kind="Database"]}[Data],
Schema = Database{[Name="PUBLIC”, Kind="Schema"]}[Data],
Table = Schema{[Name="NYCTAXIDATA”, Kind="Table"]}[Data],
SelectColumns = Table.SelectColumns(Table, {"lpep_pickup_datetime"}),
FirstN = Table.FirstN(SelectColumns, 1)
in
FirstN
Ausgabedatei, auch als PQOut-Datei bezeichnet, mit der Erweiterung .query.pqout
Die Ausgabedatei (.query.pqout) enthält die generierte Ausgabe als Ergebnis der Ausführung des Vergleichsbefehls für einen Test.
Das folgende Beispiel zeigt ein Beispiel für eine Ausgabedatei (PQOut), z. B. SnowflakeFirstNTests.query.pqout:
#table(type table [TIMESTAMP = datetime], {{#datetime(2014, 1, 1, 16, 0, 0.12345)}})
Optionale Parameter-Abfragedatei mit der Erweiterung .parameterquery.pq
Damit die Testsituationen unabhängig von der Datenquelle ausgeführt werden, kann die Unterstützung für die PQ/Testabfragedatei in zwei Teile unterteilt werden: die Parameterabfragedatei und die Testabfragedatei.
Die Parameterabfrage ist spezifisch für Datenquellen und ruft Testdaten aus der Datenquelle ab. Wenn Sie die Tests für einen anderen Connector ausführen möchten, müssen Sie diese Datei aktualisieren, um auf diese bestimmte Datenquelle zu verweisen.
Das folgende Beispiel zeigt ein Beispiel für eine Parameterabfragedatei, z. B. Taxi.parameterquery.pq:
let
Source = Snowflake.Databases("POWERBI.snowflakecomputing.com", "DEMO_WH"),
Database = Source{[Name="NYCTAXIDB", Kind="Database"]}[Data],
Schema = Database{[Name="PUBLIC", Kind="Schema"]}[Data],
Table = Schema{[Name="NYCTAXIDATA", Kind="Table"]}[Data],
in
Table
Wenn die optionale Parameterabfragedatei bereitgestellt wird, muss die Testabfrage nur Transformationen in den Testdaten enthalten. Diese Transformationen sind die für Tests erforderlichen M-Ausdrücke und machen sie unabhängig von der Datenquelle. Die Testabfrage muss dann auch eine M-Lambda-Funktion deklarieren, die die Ergebnisse aus der Parameterabfrage verwendet und die Testlogik für Eingabeergebnisse ausführt.
Das folgende Beispiel zeigt ein Beispiel für eine Testabfrage, z. B. SnowflakeFirstNTest.query.pq:
(parameter) =>
let
SelectColumns = Table.SelectColumns(parameter, {"lpep_pickup_datetime"}),
FirstN = Table.FirstN(SelectColumns, 1)
in
FirstN
Optionale Einstellungsdatei mit der Erweiterung .settings
Die optionale Einstellungsdatei ist eine JSON-Datei, die die Konfigurationsparameter als Schlüssel-Wert-Paar enthält.
Das folgende Beispiel zeigt ein Beispiel für eine Einstellungsdatei, wenn die optionale Parameterabfragedatei angegeben wird:
{
'Extension': 'snowflake.mez',
'ParameterQueryFilePath': 'contoso.parameterquery.pq'
'QueryFilePath': 'contoso.query.pq',
'FailOnMissingOutputFile': true
}
Optionaler Diagnose Datei mit der Erweiterung .diagnose
Die optionale Diagnose Datei enthält derzeit eine Liste von Befehlstexten, die generiert werden, wenn eine M-Abfrage gefaltet wird. Verwenden Sie sie zum Regressionstest der Query Folding.
Das folgende Beispiel zeigt ein Beispiel für eine Diagnosedatei, z. B. SnowflakeFirstNTestSettings.diagnostics:
[
{
"Command": "select \"lpep_pickup_datetime\" from \"NYCTAXIDB\".\"PUBLIC\".\"NYCTAXIDATA\" LIMIT 1 OFFSET 0"
}
]
Zusammenfassung
In diesem Abschnitt wurden verschiedene Dateiformate vorgestellt, mit denen Sie vertraut sein müssen, während Sie mit dem Power Query SDK-Testframework arbeiten.
Im nächsten Abschnitt erstellen Sie Abfragen und Einstellungen, um mit Ihrer Datenquelle für Ihren Erweiterungskonnektor zu arbeiten.
Nächste Schritte
Power Query SDK Testframework Teil 5 – Testen des Erweiterungskonnektors