Condividi tramite


Estensioni di test con Test Engine (anteprima) Dataverse

Nota

Le funzionalità di anteprima non sono destinate ad essere utilizzate per la produzione e sono soggette a restrizioni. Vengono rese disponibili prima di una versione ufficiale in modo che i clienti possano accedervi con anticipo e fornire i loro commenti.

Questo articolo spiega come creare test di integrazione con Dataverse. Questa funzionalità applica la Power Fx capacità di connettersi alle Dataverse tabelle.

Connessione a Dataverse in corso

Per abilitare l' Dataverse integrazione, aggiungi il parametro enableDataverseFunctions in testSettingsextensionModules :

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

Quando si abilita l'integrazione, è necessario aprire l'interfaccia della riga di comando di Azure con un utente o un'entità servizio che disponga dei diritti per l'ambiente. Dataverse Dataverse È possibile utilizzare il comando: az login Ulteriori informazioni: accedere tramite l'interfaccia della riga di comando di Azure.

L' Dataverse URL dell'API utilizzato per l'integrazione viene ottenuto dal nome di dominio host del parametro pac test run--domain oppure definendo una variabile di ambiente PowerShell denominata DATAVERSE_URL.

Abilitare l'anteprima

Attualmente, tutte le Dataverse capacità di test delle estensioni richiedono l'utilizzo delle funzioni di anteprima. Per abilitarli, aggiungili Preview all' allowPowerFxNamespaces elenco in extensionModules.

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

Ripristino dello stato attuale

Definisci il gestore eventi nel file yaml del test creato per eseguire azioni comuni prima di ogni caso di test. onTestCaseStart Ad esempio:

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 questo esempio, ForAll viene utilizzato per scorrere una tabella ed eseguire un'azione su ciascun record. La funzione Remove viene quindi utilizzata per eliminare ogni record da una tabella per garantire che la tabella sia vuota prima dell'esecuzione di ogni test.

Funzioni di interesse

Queste funzioni sono utili quando si lavora con Dataverse:

  • Raccogli: aggiunge record a una tabella.
  • CountRows: restituisce il numero di record in una tabella.
  • First: restituisce il primo record in una tabella.
  • ForAll: scorre una tabella ed esegue un'azione su ciascun record.
  • Patch: aggiorna un record esistente.
  • Rimuovi: elimina un record specifico da una tabella.

Considerazioni

Tieni presente queste considerazioni quando scrivi i passaggi del test:

  • I valori predefiniti non sono supportati. Di conseguenza Power Fx esempi come Patch(Accounts, Defaults(Accounts), {name:"test"}) non sono supportati.
  • Puoi usare Collect un'alternativa a Patch con la Defaults funzione

Esecuzione di test Dataverse

È possibile utilizzare il provider ( Power Fx ) per eseguire test che interagiscono con powerfxsenza la necessità di un'interfaccia canvas o di un'app basata su modello. Dataverse Questo è utile per testare la logica aziendale, i plugin, i flussi e altri servizi 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"

Integrazione AI

Utilizzando la modalità open source Power Apps Test Engine compilata in Debug insieme alle impostazioni di test appropriate, verrà abilitata la funzione Preview.AIExecutePrompt nei test.

Aggiungi quanto segue alle impostazioni di test per abilitare l'integrazione dell'IA:

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

Esempio di utilizzo della funzione AI:

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