返回 Skill 列表
extension
分类: 开发与工程无需 API Key

e2e

Playwright端到端测试模式。在处理tests/e2e/目录下的文件时使用。

person作者: jakexiaohubgithub

E2E Test Guidelines

Philosophy

  • Journey-style tests covering critical flows end-to-end
  • Strongly prefer adding test.step() to existing tests over creating new tests - keeps suite fast and avoids duplicating slow setup flows
  • Fix flaky tests immediately, regardless of when introduced

Commands

pnpm playwright test --reporter=line --max-failures=1 2>&1
pnpm playwright test --workers=4 --repeat-each=5 --reporter=line 2>&1  # flaky detection

NEVER use --debug or --ui - opens GUI, blocks forever. This is a common mistake.

Selectors (priority order)

  1. getByRole()
  2. getByTestId()
  3. getByLabel()
  4. getByText(/regex/i)

Critical Rules

  • Assert behaviour, not text - text changes with copy edits/i18n
  • Independent tests - use beforeEach, don't depend on prior test state
  • No arbitrary waits - use toBeEnabled(), not waitForTimeout()

Helpers

Import from tests/e2e/helpers/:

  • createNewIdentity(page) - full new user flow
  • goToTransactions(page), goToTags(page), etc.

Create helpers for multi-step reused flows. Don't wrap single Playwright calls.

Pattern

test.describe("Feature", () => {
  test.beforeEach(async ({ page }) => {
    await createNewIdentity(page);
    await goToFeature(page);
  });

  test("should do thing", async ({ page }) => {
    // Arrange → Act → Assert
  });
});