次の方法で共有


Test Engine を使用した Dataverse 拡張機能のテスト (プレビュー)

注意

プレビュー機能は運用環境での使用を想定しておらず、機能が制限されている可能性があります。 これらの機能を公式リリースの前に使用できるようにすることで、顧客が事前にアクセスし、そこからフィードバックを得ることができます。

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

Dataverse に接続中

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

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

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

統合に使用する Dataverse API URL は、pac test run--domainパラメーターのホスト ドメイン名から取得するか、 という 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 統合

オープン ソース Power Apps Test EngineDebug モードでコンパイルし、適切なテスト設定と共に使用すると、テストで Preview.AIExecutePrompt 関数が有効になります。

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

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

AI機能の使用例:

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