playwright/docs/src/test-annotations.md
2021-06-04 13:33:56 -07:00

1.7 KiB

id title
test-annotations Annotations

Sadly, tests do not always pass. Luckily, Playwright Test supports test annotations to deal with failures, flakiness and tests that are not yet ready.

// example.spec.js
const { test, expect } = require('@playwright/test');

test('some feature', async ({ page, browserName }) => {
  test.skip(browserName !== 'webkit', 'This feature is iOS-only');
  // Test goes here.
});

test('another feature', async ({ page }) => {
  test.fail(true, 'Broken, need to fix!');
  // Test goes here.
});
// example.spec.ts
import { test, expect } from '@playwright/test';

test('some feature', async ({ page, browserName }) => {
  test.skip(browserName !== 'webkit', 'This feature is iOS-only');
  // Test goes here.
});

test('broken feature', async ({ page }) => {
  test.fail();
  // Test goes here.
});

Annotations apply when the condition is truthy, or always when no condition is passed, and may include a description. Annotations may depend on test fixtures. There could be multiple annotations on the same test, possibly in different configurations.

Available annotations:

  • skip marks the test as irrelevant. Playwright Test does not run such a test. Use this annotation when the test is not applicable in some configuration.
  • fail marks the test as failing. Playwright Test will run this test and ensure it does indeed fail. If the test does not fail, Playwright Test will complain.
  • fixme marks the test as failing. Playwright Test will not run this test, as opposite to the fail annotation. Use fixme when running the test is slow or crashy.
  • slow marks the test as slow and triples the test timeout.