UI 仕様は 06_ui_design_spec.md、アーキテクチャは 02_architecture_design.md を参照。結論: 可能です。 主に次の 2 通り。
アプリ全体(ウィンドウ + WebView)を起動し、WebDriver で操作・アサーションする方法です。
| 環境 | 必要なもの |
|---|---|
| Windows | Microsoft Edge Driver(Edge のバージョンと一致させる)。msedgedriver を PATH に通すか、tauri-driver --native-driver <path> で指定。 |
| Linux | WebKitWebDriver(例: Debian 系なら webkit2gtk-driver)。CI では xvfb で仮想ディスプレイが必要な場合あり。 |
cargo install tauri-driver --locked
tauri-driver でアプリを WebDriver モードで起動。公式例: WebDriver Example、Tauri - WebDriver、CI の例。
wdio.conf.js を配置。npm run test:e2e(ビルド + tauri-driver 起動 + E2E 実行)、npm run build:e2e(E2E 用 debug ビルドのみ)。tests/e2e/specs/app.spec.js でタイトル・ヘッダー・検索 UI を検証。cargo install tauri-driver --locked と、Windows では Edge Driver(msedgedriver)を PATH に通す。詳細は tests/e2e/README.md を参照。Tauri のウィンドウは使わず、フロントの HTML/JS だけをブラウザで開いてテストする方法です。
tauri dev の 8474 配信)またはビルド済み静的ファイルをローカルサーバで配信し、その URL に Playwright などで接続。@tauri-apps/api)はブラウザからは使えないため、Tauri 連携部分はモックするか、E2E(1)で補う必要があります。playwright を devDependency に追加。src/frontend または配布用資材を配信。test_mcp_client.mjs のように別テストでカバーし、UI テストではモック or スタブにするか、実際に MCP を立てて合わせて動かす構成も可能。| 種別 | 現状 | UI 組み込みのイメージ |
|---|---|---|
| API テスト | tests/test_mcp_client.mjs で MCP (3001) を叩いている |
そのまま利用。UI テストは「画面操作の結果、同じ API が呼ばれ結果が表示される」を検証するのに使える。 |
| ヘッドレス起動 | TELOS_HEADLESS=1 でウィンドウ非表示 |
WebDriver でテストする場合はウィンドウは表示される(または CI では仮想ディスプレイ)。ヘッドレスは主に API 専用テスト用。 |
| CI | test:headless / test-and-heal:pro で MCP テスト |
ここに「UI テスト」ステップを追加可能。1 の場合は Windows/Linux のみ・Driver 準備が必要。2 の場合は Playwright を入れてフロントのみの UI テストを追加する形。 |
必要なら、選んだ方式(1 か 2)に合わせて、具体的な package.json のスクリプトとテストファイルのひな形を追加できます。