Extensões do Test Dataverse com o Test Engine (obsoletas)

Nota

O Test Engine está obsoleto e será removido numa versão futura. Use os exemplos do Power Platform Playwright para capacidades de automação de testes no Power Platform e nos serviços Dynamics 365.

Este artigo explica como criar testes de integração com Dataverse. Esta funcionalidade aplica a capacidade Power Fx de se conectar com as tabelas do Dataverse.

Ligar ao Dataverse

Para habilitar Dataverse a integração, adicione o enableDataverseFunctions parâmetro em seu testSettingsextensionModules :

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

Quando ativas a integração com Dataverse, és obrigado a abrir CLI do Azure com um utilizador ou principal de serviço que tenha direitos sobre o ambiente Dataverse. Pode usar o comando: az login Mais informações: Iniciar sessão com CLI do Azure.

O URL da API do Dataverse utilizado para integração é obtido ou a partir do nome de domínio do anfitrião do parâmetro pac test run--domain ou definindo uma variável de ambiente do PowerShell chamada DATAVERSE_URL.

Ativar pré-visualização

Atualmente, todos os recursos de teste de extensão do Dataverse exigem o uso de funções de pré-visualização. Para habilitá-los, adicione Preview à lista de allowPowerFxNamespaces em extensionModules.

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

Redefinindo o estado atual

Defina o processador de eventos onTestCaseStart no yaml de testes que criou, para executar ações comuns antes de cada caso de teste. Por exemplo:

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

Neste exemplo, o ForAll é usado para iterar sobre uma tabela e executar uma ação em cada registro. A Remove função é então usada para excluir cada registro de uma tabela para garantir uma tabela vazia antes que cada teste seja executado.

Funções de interesse

Estas funções são úteis quando se trabalha com Dataverse:

  • Coletar: adiciona registros a uma tabela.
  • CountRows: Devolve o número de registos numa tabela.
  • Primeiro: retorna o primeiro registro em uma tabela.
  • ForAll: itera sobre uma tabela e executa uma ação em cada registro.
  • Patch: atualize um registro existente.
  • Remover: exclui um registro específico de uma tabela.

Considerações

Leve estas considerações em consideração ao escrever as etapas de teste:

  • Predefinições não são suportadas. Como resultado, Power Fx exemplos como Patch(Accounts, Defaults(Accounts), {name:"test"}) não são suportados.
  • Você pode usar Collect como uma alternativa a Patch com a função Defaults

Execução de testes do Dataverse

Pode utilizar o fornecedor Power Fx (powerfx) para executar testes que interagem com o Dataverse sem necessidade de uma interface de aplicação de tela ou aplicação condicionada por modelo. Isso é útil para testar a lógica de negócios, plugins, fluxos e outros serviços de back-end.

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"

Integração de IA

Usar o open source Power Apps Test Engine compilado em modo Debug juntamente com as definições de teste apropriadas, irá ativar a função Preview.AIExecutePrompt nos seus testes.

Adicione o seguinte às suas definições de teste para habilitar a integração de IA:

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

Exemplo de uso da função de IA:

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