Playwright は Chrome 拡張もテスト出来るが、Dev Container で動かす際は CI と同様に install 時に --with-deps
が必要。というだけの話ではあるのだが、地味にハマったのでメモに残す。
$ npx playwright install --with-deps chromium
あとは公式にあるように channel: 'chromium'
でテスト用のコンテキストを作ればよい。
context = await chromium.launchPersistentContext('', {
channel: 'chromium',
args: [
`--disable-extensions-except=${pathToExtension}`,
`--load-extension=${pathToExtension}`,
],
});
公式を読めば大体解決する話なのだが、 Cline 向けに Chromium を Dev Container に用意していた影響か、Claude Code が最初の動くものとして次のように設定してきて少しハマった。
context = await chromium.launchPersistentContext('', {
headless: true,
args: [
`--disable-extensions-except=${pathToExtension}`,
`--load-extension=${pathToExtension}`,
],
executablePath: '/usr/bin/chromium'
});
これでも動作はするのだが(公式にも記載はある)、Chrome 拡張でないテストは playwright install chromium
で入れたものを使うので Chromium が 2 つ必要になる。これをまとめる方法がよくわからなかったが channel
を使うとこれを解決できる、公式をちゃんと読もう。
以下は最小構成のリポジトリ: