Power Apps Test Engine のリポジトリは 2026 年 11 月 1 日に削除される。いま YAML テストを積み上げると来年丸ごと作り直しになる。移行先は Power Platform Playwright samples(TypeScript + 標準 Playwright ランナー)で、Canvas / Model-Driven を含む 4 種別に対応済み。
何がいつ消えるのか
Microsoft は 2026 年 4 月に Power Apps Test Engine を正式に非推奨とし、GitHub リポジトリを 2026 年 11 月 1 日に削除すると明記している(2026 年 9 月 6 日時点で延期確認なし)。
“Test Engine is deprecated and this repository will be removed on November 1, 2026.”
— github.com/microsoft/PowerApps-TestEngine
公式の非推奨通知は learn.microsoft.com — Power Platform の重要な変更点 に掲載されている。理由は使用率の低さと、Power Fx 依存が AI 連携の制約になっていた点。削除日は変更される可能性があるため、実際に移行作業を開始する前に GitHub ページで最新情報を確認する。
移行先の概要と対応アプリ種別
移行先は power-platform-playwright-samples(Microsoft 公式リポジトリ)。Page Object Model(POM:アプリの UI 要素を操作するクラスを分離してテストを整理するパターン)と認証ヘルパーが同梱されており、4 種別のアプリに対応している。
| アプリ種別 | Page Object クラス | 備考 |
|---|---|---|
| Canvas Apps | CanvasAppPage | サンドボックス iframe 対応 |
| Model-Driven Apps | ModelDrivenAppPage | フォーム / グリッド / リボン操作対応 |
| Custom Pages | 組み合わせ利用 | MDA ナビゲーション + Canvas エンジンを両立 |
| Gen UX Pages | GenUxPage | Maker Portal・デザイナーサーフェス対応 |
2026 年時点の必要バージョン:TypeScript 5.9+、Playwright 1.57+、Node.js 20+。パッケージは npm レジストリ非公開で、リポジトリ内のローカル統合パッケージ(packages/power-platform-playwright-toolkit/dist/)を使う形式。
Test Engine との技術的差分
テスト記述が YAML / Power Fx から TypeScript に変わり、専用テストホストから標準 Playwright ランナーに移る。これが実務上の最大の変化。
| 観点 | Test Engine(非推奨) | Playwright samples(移行先) |
|---|---|---|
| テスト記述言語 | Power Fx / YAML | TypeScript |
| ランナー | 専用テストホスト | 標準 Playwright ランナー |
| CI 対応 | 限定的 | GitHub Actions / Azure Pipelines ネイティブ |
| エコシステム | Power Fx 限定 | Playwright 全 API 利用可能 |
| 現状 | 2026-11-01 削除予定 | アクティブメンテナンス中 |
標準 Playwright ランナーに移ることで、GitHub Actions や Azure Pipelines との連携が追加設定なしで機能する。Playwright の全 API とエコシステム(レポーター・トレースビューア・並列実行等)をそのまま活用できる。
CI headless 認証の手順
CI 上で対話型サインインを回避するには、globalSetup.ts で認証状態(storageState:ブラウザのセッション情報・Cookie を JSON で保存したもの)を事前取得・保存し、各テスト実行時にロードする。
// globalSetup.ts
const browser = await chromium.launch({ headless: true });
const context = await browser.newContext();
const page = await context.newPage();
const auth = new AuthProvider(page);
await auth.authenticate({
email: process.env.MS_AUTH_EMAIL!,
credentialType: 'certificate', // 本番推奨
credentialProvider: 'azure-keyvault', // 本番推奨
});
await context.storageState({
path: getStorageStatePath(process.env.MS_AUTH_EMAIL!)
});
await browser.close();
各テストでは storageState: getStorageStatePath(email) を指定するだけで認証済み状態から開始できる。
認証方式の選択目安:
| 方式 | 適用場面 |
|---|---|
| 証明書認証 + Azure Key Vault | 本番 CI 推奨(証明書を Key Vault に保存) |
証明書認証 + ローカルファイル(.pfx) | ローカル検証・中間環境 |
| パスワード認証 | ローカル開発のみ |
storageState ファイルにはセッショントークンが含まれるため、.gitignore に追加必須。CI では npm run auth を先行ステップとして実行してから npx playwright test を呼び出す方式も有効。
詳細は authentication-guide.md と global-setup-teardown.md を参照。
storageState の有効期限
一次ドキュメントに固定の有効期限の記載はない。実際の期限は組織の Microsoft Entra ID(旧 Azure Active Directory:クラウド上の認証・認可基盤)のセッションポリシー設定に依存するため、自組織の管理者に事前確認を。公式ドキュメントにはトークン有効期限を確認するコード例("Token valid until: ${expiryDate.toLocaleString()}")が含まれているため、期限切れ前に CI パイプラインが再認証をトリガーする実装も検討する価値がある。
M365 Developer Tenant での検証
M365 Developer Tenant(Microsoft 365 Developer Program で取得できる無料の検証用テナント)があれば、Playwright samples のサンプルテストをそのまま実行できる。個人 PC 側に検証環境を持つ手順の詳細は → 関連記事:[貸与 PC なしで Power Platform 検証環境を組む](build-without-their-tenant)
既存 YAML テストからの移行パス
Test Engine の概念(テストケース定義・Power Fx アサーション等)を Playwright の対応物にマッピングした公式移行ガイドが提供されている。具体的なマッピング手順はリサーチ範囲外のため、公式ドキュメントを直接参照:
→ learn.microsoft.com — Power Platform の重要な変更点
まとめ
Power Apps Test Engine の削除日は 2026 年 11 月 1 日。新規に検証基盤を作るなら最初から Power Platform Playwright samples を選ぶ。既存の YAML テストがあるなら、公式移行ガイドで概念マッピングを確認してから移行計画を立てる。
次の一歩:
- power-platform-playwright-samples をクローンしてサンプルテストが通るか確認する
globalSetup.tsを作成して CI headless 認証を通す- 既存 YAML テストの移行は公式ドキュメントの概念マッピング表に従う
関連記事:
- [計器を疑う検証設計](distrust-your-instruments)
- [貸与 PC なしで Power Platform 検証環境を組む](build-without-their-tenant)