Розширення Test Dataverse з Test Engine (застарілі)

Нотатка

Test Engine застарілий і буде видалений у майбутньому випуску. Використовуйте Power Platform Playwright samples для можливостей автоматизації тестування в Power Platform та Dynamics 365 сервісах.

У цій статті пояснюється, як створювати інтеграційні тести з Dataverse. Цей функціонал застосовує Power Fx можливість з’єднання з Dataverse таблицями.

Підключення до Dataverse

Щоб увімкнути Dataverse інтеграцію, додайте enableDataverseFunctions параметр у вашому розширенні testSettingsModules... :

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

Коли ви активуєте інтеграцію з Dataverse, потрібно відкрити Azure CLI з користувачем або керівником сервісу, який має права на середовище Dataverse. Ви можете скористатися командою: az login Додаткова інформація: Увійти за допомогою Azure CLI.

URL-адреса Dataverse API, що використовується для інтеграції, отримується або з доменного імені хоста параметра запуску тесту--domain pac, або шляхом визначення змінної середовища PowerShell з DATAVERSE_URL іменем.

Увімкнення функції попереднього перегляду

Наразі всі Dataverse можливості тестування розширень вимагають використання функцій попереднього перегляду. Щоб увімкнути їх, додайте Preview до списку в allowPowerFxNamespacesextensionModules.

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:

  • Збирати: додає записи до таблиці.
  • CountRows: повертає кількість записів у таблиці.
  • Перший: повертає перший запис у таблиці.
  • ForAll: перебирає таблицю та виконує дію з кожним записом.
  • Виправлення: оновлення існуючого запису.
  • Видалити: видаляє певний запис із таблиці.

Фактори, які необхідно враховувати

Враховуйте ці міркування під час написання кроків тестування:

  • Значення за замовчуванням не підтримується. Як наслідок 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"

Інтеграція зі штучним інтелектом

Використання open source Power Apps Test Engine скомпільованого в режимі Debug разом із відповідними налаштуваннями тестування увімкне функцію Preview.AIExecutePrompt у ваших тестах.

Додайте до налаштувань тестування, щоб увімкнути інтеграцію зі штучним інтелектом:

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

Приклад використання функції AI:

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