<h3 dir="auto">System info</h3>
<p dir="auto">System:<br>
OS: Windows 10 10.0.19045<br>
CPU: (12) x64 Intel(R) Core(TM) i7-8750H CPU @ 2.20GHz<br>
Memory: 5.57 GB / 15.85 GB<br>
Binaries:<br>
Node: 16.18.0 - C:\Program Files\nodejs\node.EXE<br>
Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD<br>
npm: 8.10.0 - C:\Program Files\nodejs\npm.CMD<br>
Browsers:<br>
Edge: Spartan (44.19041.1266.0), Chromium (113.0.1774.50)<br>
Internet Explorer: 11.0.19041.1566<br>
npmPackages:<br>
@playwright/test: ^1.34.3 =&gt; 1.34.3</p>
<h3 dir="auto">Source code</h3>
<ul class="contains-task-list">
<li class="task-list-item"><input type="checkbox" id="" disabled="" class="task-list-item-checkbox"> I provided exact source code that allows reproducing the issue locally.</li>
</ul>




<p dir="auto"><strong>Link to the GitHub repository with the repro</strong></p>
<p dir="auto"><a href="https://github.com/ghiscoding/multiple-select-vanilla/pull/68" data-hovercard-type="pull_request" data-hovercard-url="/ghiscoding/multiple-select-vanilla/pull/68/hovercard">[https://github.com/your_profile/playwright_issue_title]</a></p>
<p dir="auto">or</p>
<p dir="auto"><strong>Config file</strong></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="// playwright.config.ts
import { defineConfig, devices } from '@playwright/test';

export default defineConfig({
  fullyParallel: true,
  // reporter: process.env.CI ? 'dot' : 'list',
  reporter: [['html', { outputFolder: '../playwright-report' }]],
  retries: process.env.CI ? 1 : 0,
  testDir: './e2e',
  timeout: 30 * 1000,
  expect: {
    timeout: 5000,
  },
  /* Fail the build on CI if you accidentally left test.only in the source code. */
  forbidOnly: !!process.env.CI,
  use: {
    baseURL: 'http://localhost:3000/',
    headless: true,
    viewport: { width: 1280, height: 720 },
    ignoreHTTPSErrors: true,
    trace: 'on',
    video: 'on-first-retry',
  },
  projects: process.env.CI
    ? [
        { name: 'chromium', use: { ...devices['Desktop Chrome'] } },
        // { name: 'firefox', use: { ...devices['Desktop Firefox'] } },
      ]
    : [{ name: 'chromium', use: { ...devices['Desktop Chrome'] } }],
  webServer: process.env.CI
    ? {
        command: 'pnpm serve',
        port: 3000,
      }
    : undefined,
});"><pre class="notranslate"><span class="pl-c">// playwright.config.ts</span>
<span class="pl-k">import</span> <span class="pl-kos">{</span> <span class="pl-s1">defineConfig</span><span class="pl-kos">,</span> <span class="pl-s1">devices</span> <span class="pl-kos">}</span> <span class="pl-k">from</span> <span class="pl-s">'@playwright/test'</span><span class="pl-kos">;</span>

<span class="pl-k">export</span> <span class="pl-k">default</span> <span class="pl-en">defineConfig</span><span class="pl-kos">(</span><span class="pl-kos">{</span>
  <span class="pl-c1">fullyParallel</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
  <span class="pl-c">// reporter: process.env.CI ? 'dot' : 'list',</span>
  <span class="pl-c1">reporter</span>: <span class="pl-kos">[</span><span class="pl-kos">[</span><span class="pl-s">'html'</span><span class="pl-kos">,</span> <span class="pl-kos">{</span> <span class="pl-c1">outputFolder</span>: <span class="pl-s">'../playwright-report'</span> <span class="pl-kos">}</span><span class="pl-kos">]</span><span class="pl-kos">]</span><span class="pl-kos">,</span>
  <span class="pl-c1">retries</span>: <span class="pl-s1">process</span><span class="pl-kos">.</span><span class="pl-c1">env</span><span class="pl-kos">.</span><span class="pl-c1">CI</span> ? <span class="pl-c1">1</span> : <span class="pl-c1">0</span><span class="pl-kos">,</span>
  <span class="pl-c1">testDir</span>: <span class="pl-s">'./e2e'</span><span class="pl-kos">,</span>
  <span class="pl-c1">timeout</span>: <span class="pl-c1">30</span> <span class="pl-c1">*</span> <span class="pl-c1">1000</span><span class="pl-kos">,</span>
  <span class="pl-c1">expect</span>: <span class="pl-kos">{</span>
    <span class="pl-c1">timeout</span>: <span class="pl-c1">5000</span><span class="pl-kos">,</span>
  <span class="pl-kos">}</span><span class="pl-kos">,</span>
  <span class="pl-c">/* Fail the build on CI if you accidentally left test.only in the source code. */</span>
  <span class="pl-c1">forbidOnly</span>: <span class="pl-c1">!</span><span class="pl-c1">!</span><span class="pl-s1">process</span><span class="pl-kos">.</span><span class="pl-c1">env</span><span class="pl-kos">.</span><span class="pl-c1">CI</span><span class="pl-kos">,</span>
  <span class="pl-c1">use</span>: <span class="pl-kos">{</span>
    <span class="pl-c1">baseURL</span>: <span class="pl-s">'http://localhost:3000/'</span><span class="pl-kos">,</span>
    <span class="pl-c1">headless</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
    <span class="pl-c1">viewport</span>: <span class="pl-kos">{</span> <span class="pl-c1">width</span>: <span class="pl-c1">1280</span><span class="pl-kos">,</span> <span class="pl-c1">height</span>: <span class="pl-c1">720</span> <span class="pl-kos">}</span><span class="pl-kos">,</span>
    <span class="pl-c1">ignoreHTTPSErrors</span>: <span class="pl-c1">true</span><span class="pl-kos">,</span>
    <span class="pl-c1">trace</span>: <span class="pl-s">'on'</span><span class="pl-kos">,</span>
    <span class="pl-c1">video</span>: <span class="pl-s">'on-first-retry'</span><span class="pl-kos">,</span>
  <span class="pl-kos">}</span><span class="pl-kos">,</span>
  <span class="pl-c1">projects</span>: <span class="pl-s1">process</span><span class="pl-kos">.</span><span class="pl-c1">env</span><span class="pl-kos">.</span><span class="pl-c1">CI</span>
    ? <span class="pl-kos">[</span>
        <span class="pl-kos">{</span> <span class="pl-c1">name</span>: <span class="pl-s">'chromium'</span><span class="pl-kos">,</span> <span class="pl-c1">use</span>: <span class="pl-kos">{</span> ...<span class="pl-s1">devices</span><span class="pl-kos">[</span><span class="pl-s">'Desktop Chrome'</span><span class="pl-kos">]</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span><span class="pl-kos">,</span>
        <span class="pl-c">// { name: 'firefox', use: { ...devices['Desktop Firefox'] } },</span>
      <span class="pl-kos">]</span>
    : <span class="pl-kos">[</span><span class="pl-kos">{</span> <span class="pl-c1">name</span>: <span class="pl-s">'chromium'</span><span class="pl-kos">,</span> <span class="pl-c1">use</span>: <span class="pl-kos">{</span> ...<span class="pl-s1">devices</span><span class="pl-kos">[</span><span class="pl-s">'Desktop Chrome'</span><span class="pl-kos">]</span> <span class="pl-kos">}</span> <span class="pl-kos">}</span><span class="pl-kos">]</span><span class="pl-kos">,</span>
  <span class="pl-c1">webServer</span>: <span class="pl-s1">process</span><span class="pl-kos">.</span><span class="pl-c1">env</span><span class="pl-kos">.</span><span class="pl-c1">CI</span>
    ? <span class="pl-kos">{</span>
        <span class="pl-c1">command</span>: <span class="pl-s">'pnpm serve'</span><span class="pl-kos">,</span>
        <span class="pl-c1">port</span>: <span class="pl-c1">3000</span><span class="pl-kos">,</span>
      <span class="pl-kos">}</span>
    : <span class="pl-c1">undefined</span><span class="pl-kos">,</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto"><strong>Test file (self-contained)</strong></p>
<div class="highlight highlight-source-js notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="it('should check the box using setChecked', async ({ page }) =&gt; {
  await expect(1 + 1).toBe(2);
});"><pre class="notranslate"><span class="pl-en">it</span><span class="pl-kos">(</span><span class="pl-s">'should check the box using setChecked'</span><span class="pl-kos">,</span> <span class="pl-k">async</span> <span class="pl-kos">(</span><span class="pl-kos">{</span> page <span class="pl-kos">}</span><span class="pl-kos">)</span> <span class="pl-c1">=&gt;</span> <span class="pl-kos">{</span>
  <span class="pl-k">await</span> <span class="pl-en">expect</span><span class="pl-kos">(</span><span class="pl-c1">1</span> <span class="pl-c1">+</span> <span class="pl-c1">1</span><span class="pl-kos">)</span><span class="pl-kos">.</span><span class="pl-en">toBe</span><span class="pl-kos">(</span><span class="pl-c1">2</span><span class="pl-kos">)</span><span class="pl-kos">;</span>
<span class="pl-kos">}</span><span class="pl-kos">)</span><span class="pl-kos">;</span></pre></div>
<p dir="auto"><strong>Steps</strong><br>
See my open source project, the Playwright tests fails when ran in GitHub Actions CI. I use pnpm</p>
<p dir="auto">the full GitHub Actions config can be found at<br>
<a href="https://github.com/ghiscoding/multiple-select-vanilla/blob/main/.github/workflows/main.yml">https://github.com/ghiscoding/multiple-select-vanilla/blob/main/.github/workflows/main.yml</a></p>
<p dir="auto">below is a summary</p>
<div class="highlight highlight-source-yaml notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="steps:
  - uses: pnpm/action-setup@v2.2.4
    with:
      version: 8
      run_install: true

  - name: Run Playwright E2E Tests
    uses: mathiasvr/command-output@v2.0.0
    id: playwrightsummary
    with:
      run: pnpm test:e2e"><pre class="notranslate"><span class="pl-ent">steps</span>:
  - <span class="pl-ent">uses</span>: <span class="pl-s">pnpm/action-setup@v2.2.4</span>
    <span class="pl-ent">with</span>:
      <span class="pl-ent">version</span>: <span class="pl-c1">8</span>
      <span class="pl-ent">run_install</span>: <span class="pl-c1">true</span>

  - <span class="pl-ent">name</span>: <span class="pl-s">Run Playwright E2E Tests</span>
    <span class="pl-ent">uses</span>: <span class="pl-s">mathiasvr/command-output@v2.0.0</span>
    <span class="pl-ent">id</span>: <span class="pl-s">playwrightsummary</span>
    <span class="pl-ent">with</span>:
      <span class="pl-ent">run</span>: <span class="pl-s">pnpm test:e2e</span></pre></div>
<p dir="auto">You can see the GitHub Action failure at this link<br>
<a href="https://github.com/ghiscoding/multiple-select-vanilla/actions/runs/5086352694/jobs/9140741590">https://github.com/ghiscoding/multiple-select-vanilla/actions/runs/5086352694/jobs/9140741590</a></p>
<p dir="auto"><strong>Expected</strong></p>
<p dir="auto">No error in both local and CI</p>
<p dir="auto"><strong>Notes</strong></p>
<p dir="auto">If I install both <code class="notranslate">@playwright/test</code> and <code class="notranslate">playwright</code>, it passes in the CI but fails locally because of the new breaking change to not install both</p>
<p dir="auto"><strong>Actual</strong></p>
<div class="highlight highlight-source-shell notranslate position-relative overflow-auto" dir="auto" data-snippet-clipboard-copy-content="Running 63 tests using 1 worker
×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F
×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F

  1) [chromium] › events.spec.ts:4:7 › Events Demo › executing multiple actions with ms-select should fire multiple events 

    Error: browserType.launch: Executable doesn't exist at /home/runner/.cache/ms-playwright/chromium-1060/chrome-linux/chrome
    ╔═════════════════════════════════════════════════════════════════════════╗
    ║ Looks like Playwright Test or Playwright was just installed or updated. ║
    ║ Please run the following command to download new browsers:              ║
    ║                                                                         ║
    ║     npx playwright install                                              ║
    ║                                                                         ║
    ║ &lt;3 Playwright Team                                                      ║
    ╚═════════════════════════════════════════════════════════════════════════╝"><pre class="notranslate">Running 63 tests using 1 worker
×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F
×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F×F

  1) [chromium] › events.spec.ts:4:7 › Events Demo › executing multiple actions with ms-select should fire multiple events 

    Error: browserType.launch: Executable doesn<span class="pl-s"><span class="pl-pds">'</span>t exist at /home/runner/.cache/ms-playwright/chromium-1060/chrome-linux/chrome</span>
<span class="pl-s">    ╔═════════════════════════════════════════════════════════════════════════╗</span>
<span class="pl-s">    ║ Looks like Playwright Test or Playwright was just installed or updated. ║</span>
<span class="pl-s">    ║ Please run the following command to download new browsers:              ║</span>
<span class="pl-s">    ║                                                                         ║</span>
<span class="pl-s">    ║     npx playwright install                                              ║</span>
<span class="pl-s">    ║                                                                         ║</span>
<span class="pl-s">    ║ &lt;3 Playwright Team                                                      ║</span>
<span class="pl-s">    ╚═════════════════════════════════════════════════════════════════════════╝</span></pre></div>
<h3 dir="auto">System info</h3>
<ul dir="auto">
<li>Playwright Version: [v1.32.3]</li>
<li>Operating System: [All, Windows 11, Ubuntu 20, macOS 13.2, etc.]</li>
<li>Browser: [All, Chromium, Firefox, WebKit]</li>
<li>Other info: i have many test files but i am interested to run specific test files so i am running below command</li>
<li><strong>testMatch='[ngAccordion.automation.ts, ngcheckbox.automation.ts]' npx playwright test --project=chromium</strong></li>
</ul>
<p dir="auto">I get Error: No tests found</p>
<p dir="auto">I tried adjusting above command with quotes and passing array to testMatch is not working, if i set same array directly in the configs then it works. can you point out me where i am making mistake in the command while setting testMatch</p>