配置选项

vitest-environment-web-ext的配置选项

基本配置

path

  • 类型: string
  • 必填: 是

浏览器扩展文件或目录的路径。可以是 .crx.xpi 文件或包含扩展 manifest 的目录。

vitest.config.ts
export default defineConfig({
  test: {
    environment: 'web-ext',
    environmentOptions: {
      'web-ext': {
        path: './dist',
      },
    },
  },
})

compiler

  • 类型: string | false
  • 默认值: false

在运行测试前执行的编译命令。

vitest.config.ts
export default defineConfig({
  test: {
    environment: 'web-ext',
    environmentOptions: {
      'web-ext': {
        path: './dist',
        compiler: 'npm run build',
      },
    },
  },
})

设置为 false 可禁用编译。

autoLaunch
高级

  • 类型: boolean
  • 默认值: true

是否自动加载并启动浏览器扩展。

vitest.config.ts
export default defineConfig({
  test: {
    environment: 'web-ext',
    environmentOptions: {
      'web-ext': {
        path: './dist',
        autoLaunch: false,
      },
    },
  },
})

当设置为 false 时,您需要手动加载扩展。

test/extension.test.ts
import { beforeAll, describe, expect, it } from 'vitest'

describe('浏览器扩展测试', () => {
  beforeAll(async () => {
    browser.loadExtension('./dist')
    await browser.launch()
  })

  it('弹出窗口应正确显示', async () => {
    const popupPage = await browser.getPopupPage()

    const title = await popupPage.title()
    expect(title).toBeTruthy()
  })
})

Playwright 配置

playwright.slowMo

  • 类型: number
  • 默认值: 100

减慢 Playwright 操作的速度(毫秒)。用于调试测试时更清楚地观察操作过程。

vitest.config.ts
export default defineConfig({
  test: {
    environment: 'web-ext',
    environmentOptions: {
      'web-ext': {
        path: './dist',
        playwright: {
          slowMo: 500,
        },
      },
    },
  },
})

playwright.userDataDir

  • 类型: string | boolean
  • 默认值: false

浏览器用户数据目录缓存路径。

  • true: 使用默认路径 ./.vitest-web-ext-cache
  • string: 使用自定义路径
  • false: 禁用缓存
vitest.config.ts
export default defineConfig({
  test: {
    environment: 'web-ext',
    environmentOptions: {
      'web-ext': {
        path: './dist',
        playwright: {
          userDataDir: './.vitest-cache',
        },
      },
    },
  },
})

完整示例

vitest.config.ts
export default defineConfig({
  test: {
    environment: 'web-ext',
    environmentOptions: {
      'web-ext': {
        path: './dist',
        compiler: 'npm run build',
        autoLaunch: true,
        playwright: {
          slowMo: 100,
          userDataDir: true,
        },
      },
    },
  },
})