'Playwright test runner: Limit test to only one browser with a config file that has many projects

I have a test config file (playwright.config.ts) with many projects.

Usually, I want to test several different browsers.

However, when I'm building a test, I want to only test with a single browser/project (because the test is going to fail while I'm working on it).

I tried this command:

npx playwright test test.ts --browser='chromium'

But I get an error:

Error: Cannot use --browser option when configuration file defines projects. Specify browserName in the projects instead.

How do I "specify browserName in the projects" to limit the tests to running on one browser?

My config file:

const config: PlaywrightTestConfig = {
  projects: [
    {
      name: 'Chrome Stable',
      use: {
        browserName: 'chromium',
        channel: 'chrome',
      },
    },
    {
      name: 'Safari MacBook Air',
      use: {
        browserName: 'webkit',
        viewport: {
          width: 2560,
          height: 1620,
        },
      },
    },
    {
      name: 'Firefox Desktop',
      use: {
        browserName: 'firefox',
        viewport: {
          width: 1920,
          height: 1080,
        },
      },
    },
    {
      name: 'iPhone 6/7/8',
      use: devices['iPhone 8'],
    },
    {
      name: 'iPhone 6/7/8 Plus',
      use: devices['iPhone 8 Plus'],
    },
    {
      name: 'iPhone 12',
      use: devices['iPhone 12'],
    },
    {
      name: 'iPhone 12 Pro',
      use: devices['iPhone 12 Pro'],
    },
    {
      name: 'iPhone 12 Pro Max',
      use: devices['iPhone 12 Pro Max'],
    },
    {
      name: 'iPhone 5/SE',
      use: devices['iPhone SE'],
    },
    {
      name: 'iPad',
      use: devices['iPad (gen 7)'],
    },
    {
      name: 'iPad landscape',
      use: devices['iPad (gen 7) landscape'],
    },
    {
      name: 'iPad Mini',
      use: devices['iPad Mini'],
    },
    {
      name: 'iPad Mini landscape',
      use: devices['iPad Mini landscape'],
    },
    {
      name: 'iPad Pro 11',
      use: devices['iPad Pro 11'],
    },
    {
      name: 'iPad Pro 11 landscape',
      use: devices['iPad Pro 11 landscape'],
    },


Solution 1:[1]

When using projects like in your case, you can use the CLI parameter --project or -p to filter by them. For example:

npx playwright test test.ts --project='Chrome Stable'

See here for more information.

Solution 2:[2]

you can comment out this as well to run your test only on chromium.

{ name: 'Safari MacBook Air', use: { browserName: 'webkit', viewport: { width: 2560, height: 1620, }, }, }, { name: 'Firefox Desktop', use: { browserName: 'firefox', viewport: { width: 1920, height: 1080, }, }, },

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Patrick Kenny
Solution 2 Farjad