Comparteix via


Provar Dataverse extensions amb Test Engine (versió preliminar)

Nota

Les característiques de visualització prèvia no estan dissenyades per a un entorn de producció i poden tenir una funcionalitat restringida. Aquestes característiques estan disponibles abans d’un llançament oficial de producte per tal que els clients el puguin utilitzar abans i enviar-nos els seus comentaris.

Aquest article explica com crear proves d'integració amb Dataverse. Aquesta funcionalitat aplica la Power Fx capacitat de connectar-se amb Dataverse taules.

S'està connectant al Dataverse

Per habilitar Dataverse la integració, afegiu el enableDataverseFunctions paràmetre a testSettingsextensionModules :

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

Quan habiliteu Dataverse la integració, heu d'obrir la CLI de l'Azure amb un usuari o una entitat de servei que tingui drets sobre l'entorn Dataverse . Podeu utilitzar l'ordre: az login Més informació: iniciar sessió amb la CLI de l'Azure.

L'adreça URL de l'API Dataverse utilitzada per a la integració s'obté del nom de domini de l'amfitrió del paràmetre d'execució de la--domain prova pac o definint una variable d'entorn del PowerShell anomenada DATAVERSE_URL.

Habilitar la visualització prèvia

Actualment, totes les Dataverse capacitats de prova d'extensions requereixen l'ús de funcions de visualització prèvia. Per habilitar-los, afegiu-los Preview a la allowPowerFxNamespaces llista a extensionModules.

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

Restablir l'estat actual

Definiu el controlador d'incidències onTestCaseStart al yaml de prova creat per dur a terme accions habituals abans de cada cas de prova. Per exemple:

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

En aquest exemple, s'utilitza per ForAll iterar sobre una taula i realitzar una acció en cada registre. La Remove funció s'utilitza per eliminar cada registre d'una taula per garantir una taula buida abans d'executar cada prova.

Funcions d'interès

Aquestes funcions són útils quan es treballa amb Dataverse:

  • Recopila: afegeix registres a una taula.
  • CountRows: retorna el nombre de registres d'una taula.
  • Primer: Retorna el primer registre d'una taula.
  • Per a tots: itera sobre una taula i realitza una acció a cada registre.
  • Pegat: actualitzeu un registre existent.
  • Suprimeix: suprimeix un registre específic d'una taula.

Consideracions

Tingueu en compte aquestes consideracions a l'hora d'escriure els passos de la prova:

  • No s'admeten els valors predeterminats . Com a resultat Power Fx , exemples com Patch(Accounts, Defaults(Accounts), {name:"test"}) no són compatibles.
  • Podeu utilitzar Collect una alternativa a Patch amb la Defaults funció

Execució Dataverse de proves

Podeu utilitzar el Power Fx proveïdor (powerfx) per executar proves que interactuïn sense Dataverse necessitat d'un llenç o d'una interfície d'aplicació basada en models. Això és útil per provar la lògica empresarial, els connectors, els fluxos i altres serveis de 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"

Integració d'IA

L'ús del motor Power Apps de proves de codi obert compilat en Debug mode juntament amb la configuració de prova adequada habilitarà la funció Preview.AIExecutePrompt a les proves.

Afegiu el següent a la configuració de prova per habilitar la integració d'IA:

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

Exemple d'ús de la funció d'IA:

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