テスト エンジンを使用して Dataverse 拡張機能をテストする (非推奨)

注意

テスト エンジンは非推奨 となり、今後のリリースで削除される予定です。 Power Platform および Dynamics 365 サービスのテスト自動化機能には、Power Platform Playwright サンプルを使用します。

この記事では、Dataverse を使用した統合テストの作成方法について説明します。 この機能は、Dataverse テーブルに接続する Power Fx 機能を適用します。

Dataverse に接続中

Dataverse 統合を有効にするには、enableDataverseFunctions パラメーターを testSettingsextensionModules に追加します。

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

Dataverse 統合を有効にする場合は、Dataverse 環境に対する権限を持つユーザーまたはサービス プリンシパルでAzure CLIを開く必要があります。 コマンドを使用できます: az login 詳細情報: Azure CLI

統合に使用する Dataverse API URL は、pac test run--domainパラメーターのホスト ドメイン名から取得するか、もしくは、PowerShell 環境変数として定義された DATAVERSE_URLから取得します。

プレビューを有効にする

現在、すべての Dataverse 拡張テスト機能は、プレビュー関数を使用する必要があります。 これらを有効にするには、PreviewallowPowerFxNamespaces リストに を追加します。

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

現在の状態のリセット

作成したテスト YAML で onTestCaseStart イベント ハンドラーを定義して、各テスト ケースの前に共通のアクションを実行します。 例:

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: テーブルを反復処理し、各レコードに対してアクションを実行します。
  • Patch: 既存のレコードを更新します。
  • 削除: テーブルから特定のレコードを削除します。

考慮事項

テスト手順を記述するときは、次の点を考慮してください。

  • 初期設定 はサポートされていません。 その結果、Patch(Accounts, Defaults(Accounts), {name:"test"}) のような Power Fx 例はサポートされていません。
  • CollectPatch 関数の代わりにするために 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"

AI 統合

モードでコンパイルされた オープンソース Debugを適切なテスト設定と共に使用すると、テストで Preview.AIExecutePrompt 関数が有効になります。

テストの設定に以下を追加して、AI 統合を有効にします。

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

AI機能の使用例:

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