Testen von Dataverse-Erweiterungen mit der Test-Engine (veraltet)

Anmerkung

Das Testmodul ist veraltet und wird in einer zukünftigen Version entfernt. Verwenden Sie Power Platform Playwright-Beispiele für Testautomatisierungsfunktionen in Power Platform- und Dynamics 365-Diensten.

In diesem Artikel wird erklärt, wie Sie Integrationstests mit Dataverse erstellen. Diese Funktionalität wendet die Power Fx Funktion zum Herstellen einer Verbindung mit Dataverse Tabellen an.

Herstellen einer Verbindung mit Dataverse

Um die Dataverse Integration zu aktivieren, fügen Sie den enableDataverseFunctions Parameter in Ihrer testSettingsextensionModules hinzu:

testSettings:
  extensionModules:
    enable: true
    parameters:
      enableDataverseFunctions: true

Wenn Sie die Dataverse-Integration aktivieren, müssen Sie Azure CLI mit einem Benutzer- oder Dienstprinzipal öffnen, der über Rechte für die Dataverse-Umgebung verfügt. Sie können den Befehl verwenden: az login Weitere Informationen: Sign in with Azure CLI.

Die für die Integration verwendete Dataverse-API-URL wird entweder aus dem Hostdomänennamen des Parameters pac-Testlauf--domain oder durch Festlegen einer PowerShell-Umgebungsvariable mit dem Namen DATAVERSE_URL abgerufen.

Aktivieren der Vorschau

Derzeit ist für alle Dataverse Funktionen zum Testen von Erweiterungen die Verwendung von Vorschaufunktionen erforderlich. Um diese zu aktivieren, fügen Sie Preview zur allowPowerFxNamespaces Liste in extensionModules hinzu.

testSettings:
  extensionModules:
    enable: true
    allowPowerFxNamespaces:
    - Preview
    parameters:
      enableDataverseFunctions: true

Den aktuellen Status zurücksetzen

Definieren Sie den onTestCaseStart Ereignishandler in Ihrer erstellten Test-YAML-Datei, um vor jedem Testfall allgemeine Aktionen auszuführen. Zum Beispiel:

testSuite:
  testSuiteName: Dataverse tests
  testSuiteDescription: Validate Power Fx can be used to run Dataverse integration tests
  persona: User1
  appLogicalName: N/A
  onTestCaseStart: |
    = ForAll(Accounts, Remove(Accounts, ThisRecord))

In diesem Beispiel wird das ForAll verwendet, um eine Tabelle zu durchlaufen und für jeden Datensatz eine Aktion auszuführen. Die Remove Funktion wird dann verwendet, um jeden Datensatz aus einer Tabelle zu löschen, um sicherzustellen, dass eine leere Tabelle vorhanden ist, bevor jeder Test ausgeführt wird.

Funktionen von Interesse

Diese Funktionen sind nützlich, wenn Sie mit Dataverse arbeiten:

  • Sammeln: Fügt Datensätze einer Tabelle hinzu.
  • CountRows: Ermittelt die Anzahl von Datensätzen in einer Tabelle.
  • First:: Gibt den ersten Datensatz einer Tabelle zurück.
  • ForAll: Durchläuft eine Tabelle und führt für jeden Datensatz eine Aktion aus.
  • Patch. Vorhandenen Datensatz aktualisieren.
  • Entfernen: Löscht einen bestimmten Datensatz aus einer Tabelle.

Überlegungen

Berücksichtigen Sie beim Schreiben von Testschritten die folgenden Überlegungen:

  • Defaults wird nicht unterstützt. Aus diesem Grund werden Power Fx-Beispiele wie Patch(Accounts, Defaults(Accounts), {name:"test"}) nicht unterstützt.
  • Sie können Collect als eine Alternative zu Patch mit der Defaults Funktion verwenden

Ausführen von Dataverse-Tests

Sie können den Power Fx Anbieter (powerfx) verwenden, um Tests auszuführen, die mit Dataverse interagieren, ohne dass eine Canvas- oder modellgesteuerte App-Schnittstelle erforderlich ist. Dies ist nützlich zum Testen von Geschäftslogik, Plug-Ins, Flows und anderen Back-End-Diensten.

pac test run `
   --provider powerfx `
   --test-plan-file your-testplan.te.yaml `
   --tenant your-tenantid-guid-value `
   --environment-id your-environmentid-guid-value `
   --domain "https://contoso.crm.dynamics.com"

KI Integration

Wenn das Open-Source Power Apps Test Engine im Debug-Modus kompiliert wurde, zusammen mit den entsprechenden Testeinstellungen, wird die Preview.AIExecutePrompt Funktion in Ihren Tests aktivieren.

Fügen Sie Ihren Testeinstellungen Folgendes hinzu, um die KI-Integration zu aktivieren:

testSettings:
  extensionModules:
    enable: true
    parameters:
      enableDataverseFunctions: true
      enableAIFunctions: true

Beispiel für die Verwendung der KI-Funktion:

Assert("Paris" = Preview.AIExecutePrompt("Country Capital", { Country: "France" }).Text)