playwright/docs/src/test-cli-js.md
2024-11-24 14:50:12 +01:00

5.3 KiB

id title
test-cli Command line

Introduction

Here are the most common options available in the command line.

  • Run all the tests

    npx playwright test
    
  • Run a single test file

    npx playwright test tests/todo-page.spec.ts
    
  • Run a set of test files

    npx playwright test tests/todo-page/ tests/landing-page/
    
  • Run files that have my-spec or my-spec-2 in the file name

    npx playwright test my-spec my-spec-2
    
  • Run tests that are in line 42 in my-spec.ts

    npx playwright test my-spec.ts:42
    
  • Run the test with the title

    npx playwright test -g "add a todo item"
    
  • Run tests in headed browsers

    npx playwright test --headed
    
  • Run all the tests against a specific project

    npx playwright test --project=chromium
    
  • Disable parallelization

    npx playwright test --workers=1
    
  • Choose a reporter

    npx playwright test --reporter=dot
    
  • Run in debug mode with Playwright Inspector

    npx playwright test --debug
    
  • Run tests in interactive UI mode, with a built-in watch mode (Preview)

    npx playwright test --ui
    
  • Ask for help

    npx playwright test --help
    

Reference

Complete set of Playwright Test options is available in the configuration file. Following options can be passed to a command line and take priority over the configuration file:

Option Description
Non-option arguments Each argument is treated as a regular expression matched against the full test file path. Only tests from files matching the pattern will be executed. Special symbols like $ or * should be escaped with \. In many shells/terminals you may need to quote the arguments.
-c <file> or --config <file> Configuration file, or a test directory with optional "playwright.config.{m,c}?{js,ts}". Defaults to playwright.config.ts or playwright.config.js in the current directory.
--debug Run tests with Playwright Inspector. Shortcut for PWDEBUG=1 environment variable and --timeout=0 --max-failures=1 --headed --workers=1 options.
--fail-on-flaky-tests Fail if any test is flagged as flaky (default: false).
--forbid-only Fail if test.only is called (default: false). Useful on CI.
--fully-parallel Run all tests in parallel (default: false).
--global-timeout <timeout> Maximum time this test suite can run in milliseconds (default: unlimited).
-g <grep> or --grep <grep> Only run tests matching this regular expression (default: ".*").
-gv <grep> or --grep-invert <grep> Only run tests that do not match this regular expression.
--headed Run tests in headed browsers (default: headless).
--ignore-snapshots Ignore screenshot and snapshot expectations.
--last-failed Only re-run the failures.
--list Collect all the tests and report them, but do not run.
--max-failures <N> or -x Stop after the first N failures. Passing -x stops after the first failure.
--no-deps Do not run project dependencies.
--output <dir> Folder for output artifacts (default: "test-results").
--only-changed [ref] Only run test files that have been changed between 'HEAD' and 'ref'. Defaults to running all uncommitted changes. Only supports Git.
--pass-with-no-tests Makes test run succeed even if no tests were found.
--project <project-name...> Only run tests from the specified list of projects, supports '*' wildcard (default: run all projects).
--quiet Suppress stdio.
--repeat-each <N> Run each test N times (default: 1).
--reporter <reporter> Reporter to use, comma-separated, can be "dot", "line", "list", or others (default: "list"). You can also pass a path to a custom reporter file.
--retries <retries> Maximum retry count for flaky tests, zero for no retries (default: no retries).
--shard <shard> Shard tests and execute only the selected shard, specified in the form "current/all", 1-based, e.g., "3/5".
--timeout <timeout> Specify test timeout threshold in milliseconds, zero for unlimited (default: 30 seconds).
--trace <mode> Force tracing mode, can be "on", "off", "on-first-retry", "on-all-retries", "retain-on-failure", "retain-on-first-failure".
--tsconfig <path> Path to a single tsconfig applicable to all imported files (default: look up tsconfig for each imported file separately).
--ui Run tests in interactive UI mode.
--ui-host <host> Host to serve UI on; specifying this option opens UI in a browser tab.
--ui-port <port> Port to serve UI on, 0 for any free port; specifying this option opens UI in a browser tab.
-u or --update-snapshots [mode] Update snapshots with actual results. Possible values are "all", "changed", "missing", and "none". Not passing defaults to "missing"; passing without a value defaults to "changed".
-j <workers> or --workers <workers> Number of concurrent workers or percentage of logical CPU cores, use 1 to run in a single worker (default: 50%).
-x Stop after the first failure.