Extensii Test Dataverse cu Test Engine (depreciate)

Notă

Test Engine este deprevăzut și va fi eliminat într-o versiune viitoare. Folosește Power Platform Playwright samples pentru capabilități de automatizare a testelor în Power Platform și serviciile Dynamics 365.

Acest articol explică cum se creează teste de integrare cu Dataverse. Această funcționalitate aplică capacitatea de conectare cu tabele. Power Fx Dataverse

Se realizează conexiunea la Dataverse

Pentru a activa Dataverse integrarea, adăugați enableDataverseFunctions parametrul în testSettingsextensionModules :

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

Când activezi integrarea Dataverse, trebuie să deschizi Azure CLI cu un utilizator sau principal de serviciu care are drepturi asupra mediului Dataverse. Poți folosi comanda: az login Mai multe informații: Conectează-te cu Azure CLI.

URL-ul API Dataverse utilizat pentru integrare se obține fie din numele domeniului gazdă al parametrului de rulare a testului pac--domain, fie prin definirea unei variabile de mediu PowerShell numite DATAVERSE_URL.

Activarea previzualizării

În prezent, toate capacitățile de testare a extensiilor Dataverse necesită utilizarea funcțiilor de previzualizare. Pentru a le activa, adăugați Preview la allowPowerFxNamespaces lista din extensionModules.

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

Resetarea stării actuale

Definiți gestionatorul de evenimente onTestCaseStart în fișierul YAML de testare creat pentru a efectua acțiuni comune înainte de fiecare caz de testare. De exemplu:

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

În acest exemplu, ForAll este utilizat pentru a parcurge un tabel și a efectua o acțiune asupra fiecărei înregistrări. Funcția Remove este apoi utilizată pentru a șterge fiecare înregistrare dintr-un tabel, pentru a asigura un tabel gol înainte de executarea fiecărui test.

Funcții de interes

Aceste funcții sunt utile atunci când se lucrează cu Dataverse:

  • Colectează: Adaugă înregistrări într-un tabel.
  • CountRows: Returnează numărul de înregistrări dintr-un tabel.
  • Prima: Returnează prima înregistrare dintr-un tabel.
  • ForAll: Iterează asupra unui tabel și efectuează o acțiune asupra fiecărei înregistrări.
  • Patch: Actualizați o înregistrare existentă.
  • Eliminare: Șterge o anumită înregistrare dintr-un tabel.

Considerații

Luați în considerare aceste aspecte atunci când scrieți pașii de testare:

  • Setările implicite nu sunt acceptate. Prin urmare, exemple precum Power Fx nu sunt acceptate. Patch(Accounts, Defaults(Accounts), {name:"test"})
  • Puteți utiliza Collect o alternativă la Patch cu funcția Defaults

Rularea testelor Dataverse

Puteți utiliza furnizorul Power Fx (powerfx) pentru a rula teste care interacționează cu Dataverse fără a fi nevoie de o interfață canvas sau de o aplicație bazată pe model. Acest lucru este util pentru testarea logicii de business, a pluginurilor, a fluxurilor și a altor servicii backend.

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"

Integrare AI

Folosirea open source Power Apps Test Engine compilată în modul Debug împreună cu setările corespunzătoare de testare, va activa funcția Preview.AIExecutePrompt în testele tale.

Adăugați următoarele la setările de testare pentru a activa integrarea inteligenței artificiale:

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

Exemplu de utilizare a funcției AI:

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