Тестирование расширений Dataverse с помощью модуля тестирования (не рекомендуется)

Замечание

Модуль тестирования устарел и будет удален в будущем выпуске. Используйте примеры Power Platform Playwright для возможностей автоматизации тестирования в службах Power Platform и Dynamics 365.

В этой статье объясняется, как создавать интеграционные тесты с помощью Dataverse. Эта функция использует возможности Power Fx для подключения к таблицам Dataverse.

Подключение к Dataverse

Чтобы включить Dataverse интеграцию, добавьте enableDataverseFunctions параметр в ваш testSettingsextensionModules :

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

При включении интеграции Dataverse необходимо открыть Azure CLI с пользователем или служебным принципалом, который имеет доступ к среде Dataverse. Можно использовать команду: az login Дополнительные сведения: войдите с помощью Azure CLI.

URL-адрес Dataverse API, используемый для интеграции, получается либо из имени домена хоста параметра pac-теста--domain , либо путем определения переменной среды PowerShell с именем DATAVERSE_URL.

Включение предварительного просмотра

В настоящее время все функции для тестирования расширений Dataverse должны использовать функции Preview. Чтобы включить их, добавьте Preview в список allowPowerFxNamespaces в extensionModules.

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

Сброс текущего состояния

Определите обработчик событий onTestCaseStart в созданном вами тестовом yaml-файле для выполнения общих действий перед каждым тестовым случаем. Рассмотрим пример.

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

В этом примере ForAll используется для итерации по таблице и выполнения действия над каждой записью. Затем эта Remove функция используется для удаления каждой записи из таблицы, чтобы гарантировать пустую таблицу перед выполнением каждого теста.

Функции интереса

Эти функции полезны при работе с Dataverse:

  • Collect: добавляет записи в таблицу.
  • CountRows: возвращает количество записей в таблице.
  • First: возвращает первую запись в таблице.
  • ForAll: выполняет итерацию по таблице и выполняет действие над каждой записью.
  • Патч: обновление существующей записи.
  • Удалить: удаляет определенную запись из таблицы.

Considerations

При написании этапов теста учитывайте следующие соображения:

  • Значения по умолчанию не поддерживаются. В результате такие примеры, как Power Fx , не поддерживаются. Patch(Accounts, Defaults(Accounts), {name:"test"})
  • Вы можете использовать Collect в качестве альтернативы Patch с Defaults функцией

Выполнение Dataverse тестов

Вы можете использовать поставщик Power Fx (powerfx) для выполнения тестов, взаимодействующих с Dataverse, без необходимости в использовании интерфейса приложения на основе холста или приложения на основе модели. Это полезно для тестирования бизнес-логики, плагинов, потоков и других внутренних служб.

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"

Интеграция ИИ

Использование подсистемы тестирования открытый код Power Apps, скомпилированной в режиме Debug вместе с соответствующими параметрами теста, позволит включить функцию Preview.AIExecutePrompt в тестах.

Чтобы включить интеграцию ИИ, добавьте в настройки теста следующее:

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

Пример использования функции ИИ:

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