0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

electron-forge (vite template) での E2Eテストツール比較

Last updated at Posted at 2025-05-09

electron(electron-forge + vite)でE2Eテストツールを試しました。webdriverio と Playwright が比較対象です。

結論

Playwright がハマらず手軽で高機能なのでオススメです。
自分はがっつりとelectron-forge (vite template)でpackage/make/publishまで作り込んであるので、webdriverioは注意点が多く辛かった感じになります。

確認したバージョン

  • electron 36.2.0
  • electron-forge 7.8.0
  • webdriverio 9.12.7
  • playwright 1.52.0

webdriverio

npm run packageでバンドルした後、npm run wdioでE2Eテストを実行します。簡単なアプリで画面いじってassertするだけなら問題ないのですが、以下不具合がありました。

  • electron-storeが読み込めていない
  • システムDialogが出てないっぽい(面倒なので未調査)

electron-storeが読み込めていない原因

getPath("userData")が通常のフォルダではなく、 C:\Users\XXXX\AppData\Local\Temp\scoped_dir12740_1640172050 みたいに、Temp以下に毎回ランダムにフォルダが作られるみたいで、毎回初期状態の起動になってしまうっぽいです。

electron APIへのアクセス

まず、electronのドキュメント(https://www.electronjs.org/docs/latest/tutorial/automated-testing) がAPIへのアクセス方法が古かったっぽいのでPR投げておきました。以下のように呼ばないといけません。

await browser.electron.execute((electron) => {
  const userData = electron.app.getPath("userData");
  console.log(`userData ${userData}`);
});

それ以外でも、結局electron-forge(vite)では環境変数の取り込みが煩雑 (https://vite.dev/config/) なので TEST==="true" の手法ではうまくいかず、wdioモジュールを読み込む、までを作り込むのが結構大変そう でした(サンプルのままでは動きません!)。

結局、

import "wdio-electron-service/main";
import "wdio-electron-service/preload";

をテスト時に手でコメントアウトしてnpm run packageした方が早そうでした、、、

Playwright

npm run packageでバンドルした後、npx playwright testでE2Eテストを実行します。webdriverioで発生したトラブルには遭遇せず、electron-forgeの環境を特にいじらないでも動きました。いや、はじめて触りましたが、Playwrightサイコーですねコレ、、。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?