demouser123
demouser123

Reputation: 4264

Can we configure and select Playwright launch options based on env?

Context : I am running a bunch of Playwright e2e tests for a enterprise web application, which are run on Github actions, as a part of the CI/CD process.

To launch Chromium using Playwright we have these launch options -

const options = {
  headless: true,
  slowMo: 100,
  ..
  // all args added to help run Chromium in headless mode
  args: [
    '--start-maximized',
    '--disable-dev-shm-usage',
    '--no-sandbox'
  ],
  
  video: "true"
};

When the same tests are run on the local system during the time we add new test cases, we have to manually change the headless: true to false to have a head-ful execution.

I'm wondering if we can configure this to have change based on the run - when the execution is local, it changes the headless mode to false and true when it runs on ci. Let's say for running tests on local,

npm run test --env=local gets the headless as false, and npm run test --env=ci gets headless true in the options.

I've gone through Playwright's documentation but couldn't find anything concrete. Most of the answers on Playwright/Puppeteer are about how to change the URL's etc, based on the env.

Upvotes: 1

Views: 5843

Answers (1)

irlatech
irlatech

Reputation: 67

You could try one of the below options:

  1. Create two separate config files, one for ci and one for local execution. Create two scripts in package.json one for local and one ci pointing to respective config file
  2. Update your current code as below:
  headless: !!process.env.HEADLESS,
  slowMo: 100,
  ..
  // all args added to help run Chromium in headless mode
  args: [
    '--start-maximized',
    '--disable-dev-shm-usage',
    '--no-sandbox'
  ],
  
  video: "true"
};```

// create two scripts in your package.json:

"headless":"HEADLESS=true npm run test"
"local":"npm run test"

Upvotes: 1

Related Questions