# Playwright Test

## 配置（Node.js）

\`\`\`bash npm init playwright@latest new-project # 自动配置

npm i -D @playwright/test

npx playwright install # 这一步会安装所有支持的浏览器 ```

`playwright.config.js`：

\`\`\`js // @ts-check const { devices } = require('[cite/t:@playwright/test]')

/**

- Read environment variables from file.
- <https://github.com/motdotla/dotenv>

*/ // require('dotenv').config();

/**

- @see <https://playwright.dev/docs/test-configuration>
- @type {import('[cite/t:@playwright/test]').PlaywrightTestConfig}

**/ const config = { testDir: './tests', /** Maximum time one test can run for. */ timeout: 30 * 1000, expect: { /**

- Maximum time expect() should wait for the condition to be met.
- For example in `await expect(locator).toHaveText();`

**/ timeout: 5000, }, /** Fail the build on CI if you accidentally left test.only in the source code. **/ forbidOnly: !!process.env.CI, /** Retry on CI only **/ retries: process.env.CI ? 2 : 0, /** Opt out of parallel tests on CI. **/ workers: process.env.CI ? 1 : undefined, /** Reporter to use. See <https://playwright.dev/docs/test-reporters> **/ reporter: *'html', { outputFolder: 'reports' }*, /** Shared settings for all the projects below. See <https://playwright.dev/docs/api/class-testoptions>. **/ use: { /** Maximum time each action such as `click()` can take. Defaults to 0 (no limit). **/ actionTimeout: 0, /** Base URL to use in actions like `await page.goto('*')`. ** // baseURL: '<http://localhost:3000>',

/* Collect trace when retrying the failed test. See <https://playwright.dev/docs/trace-viewer> */ trace: 'on-first-retry', },

/* Configure projects for major browsers */ projects: [ { name: 'firefox', use: { ...devices['Desktop Firefox'], }, }, ], }

module.exports = config ```


相关：[[use-prettier|use-prettier]]
