🎥

playwrightのmock動画をテストごとに切り替えたい

2023/11/07に公開

playwrigthtでWebカメラを利用する部分を検証したい場合、argsとしてuse-file-for-fake-video-captureを利用することができる。

この機能については上記のような記事が先行で存在している。

ただこれらはlaunghOptionsであるため、playwright.config.jsに設定するのが基本となる。

しかしこのままだと一つの動画ファイルしか利用できなくなってしまう。

test.useを利用して解決する

configの設定について、test.useで上書きする方法がある。

test.use({
  launchOptions: {
    args: [
      "--use-fake-ui-for-media-stream",
      "--use-fake-device-for-media-stream",
      `--use-file-for-fake-video-capture=vide.mjpeg`,
    ],
  },
})

共通化するなら下記のようなやり方になるだろう

// test-lib.ts
export const getFakeVideoOptions = (filePath) => {
  return {
    launchOptions: {
      args: [
        "--use-fake-ui-for-media-stream",
        "--use-fake-device-for-media-stream",
        `--use-file-for-fake-video-capture=${filePath}`,
      ],
    },
  }
}

呼び出しは下記のようにファイルごとに行う必要がある

// home1.test.ts
test.use({
  ...getFakeVideoOptions("video-mock1.mjpeg")
})
// home2.test.ts
test.use({
  baseUrl: "http://example.com",
  ...getFakeVideoOptions("video-mock1.mjpeg")
})
GitHubで編集を提案

Discussion