Udostępnij przez


Testowanie Dataverse rozszerzeń za pomocą aparatu testowego (wersja zapoznawcza)

Notatka

Funkcje w wersji zapoznawczej nie są przeznaczone do użytku w środowiskach produkcyjnych i mogą mieć ograniczoną funkcjonalność. Te funkcje są udostępniane przed oficjalnym wydaniem, dzięki czemu klienci mogą szybciej uzyskać do nich dostęp i przekazać opinie na ich temat.

W tym artykule wyjaśniono, jak tworzyć testy integracyjne za pomocą Dataverse. Ta funkcja umożliwia Power Fx nawiązywanie połączenia z Dataverse tabelami.

Nawiązywanie połączenia z usługą Dataverse

Aby włączyć Dataverse integrację, dodaj enableDataverseFunctions parametr w pliku testSettingsextensionModules :

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

Po włączeniu Dataverse integracji należy otworzyć interfejs wiersza polecenia platformy Azure z użytkownikiem lub jednostką usługi, która ma prawa do Dataverse środowiska. Możesz użyć polecenia: az login Więcej informacji: zaloguj się za pomocą interfejsu wiersza polecenia platformy Azure.

Adres Dataverse URL interfejsu API używany do integracji jest uzyskiwany z nazwy domeny hosta parametru pac test run--domain lub przez zdefiniowanie zmiennej środowiskowej programu PowerShell o nazwie DATAVERSE_URL.

Włącz podgląd

Obecnie wszystkie Dataverse możliwości testowania rozszerzeń wymagają użycia funkcji w wersji zapoznawczej. Aby je włączyć, dodaj Preview je do allowPowerFxNamespaces listy w extensionModules.

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

Resetowanie bieżącego stanu

Zdefiniuj procedurę onTestCaseStart obsługi zdarzeń w utworzonym testowym kodzie yaml, aby wykonać typowe akcje przed każdym przypadkiem testowym. Na przykład:

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))

W tym przykładzie służy ForAll do iteracji po tabeli i wykonywania akcji na każdym rekordzie. Funkcja Remove jest następnie używana do usuwania każdego rekordu z tabeli, aby zapewnić pustą tabelę przed wykonaniem każdego testu.

Interesujące funkcje

Te funkcje są przydatne podczas pracy z Dataverse:

  • Collect: Dodaje rekordy do tabeli.
  • CountRows: Zwraca liczbę rekordów w tabeli.
  • Pierwszy: Zwraca pierwszy rekord w tabeli.
  • ForAll: Iteruje po tabeli i wykonuje akcję na każdym rekordzie.
  • Poprawka: Aktualizuj istniejący rekord.
  • Usuń: Usuwa określony rekord z tabeli.

Kwestie wymagające rozważenia

Weź pod uwagę te zagadnienia podczas pisania kroków testu:

  • Wartości domyślne nie są obsługiwane. W związku z tym Power Fx przykłady, takie jak Patch(Accounts, Defaults(Accounts), {name:"test"}) nie są obsługiwane.
  • Możesz użyć Collect do alternatywy dla Patch funkcji Defaults

Uruchamianie Dataverse testów

Za pomocą Power Fx dostawcy (powerfx) można uruchamiać testy, które wchodzą w interakcję bez konieczności korzystania z Dataverse kanwy lub interfejsu aplikacji opartej na modelu. Jest to przydatne do testowania logiki biznesowej, wtyczek, przepływów i innych usług zaplecza.

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"

Integracja ze sztuczną inteligencją

Użycie aparatu testowego Power Apps typu open source skompilowanego w Debug trybie wraz z odpowiednimi ustawieniami testu spowoduje włączenie funkcji Preview.AIExecutePrompt w testach.

Dodaj następujące elementy do ustawień testu, aby włączyć integrację ze sztuczną inteligencją:

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

Przykładowe zastosowanie funkcji AI:

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