codeceptjs / codeceptjs/CodeceptJS

Error when trying `run-workers` with combination of `channel` using playwright helper.

Open
#4,609 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
JavaScript
Stars
4.2k
Forks
757
Avg merge
2d 9h
Merged PRs (30d)
16

Description

#### What are you trying to achieve?

When I use Playwright driver along with `channel`, and also use `run-workers`, I get error like the browser exe file is not present at specific location and browser cannot be launched.

#### How to reproduce?

1. Create a demo codeceptjs project with playwright as driver.
2. In `codecept.conf.js` file add the `channel` property inside playwright object (add any property from [here](https://playwright.dev/docs/api/class-testoptions#test-options-channel)) OR use below code.
```js
const { setHeadlessWhen, setCommonPlugins } = require('@codeceptjs/configure');
// turn on headless mode when running with HEADLESS=true environment variable
// export HEADLESS=true && npx codeceptjs run
setHeadlessWhen(process.env.HEADLESS);

// enable all common plugins https://github.com/codeceptjs/configure#setcommonplugins
setCommonPlugins();

/** @type {CodeceptJS.MainConfig} */
exports.config = {
tests: './*_test.js',
output: './output',
helpers: {
Playwright: {
browser: 'chromium',
url: 'http://localhost',
show: true,
channel: 'msedge',
}
},
include: {
I: './steps_file.js'
},
name: 'demo-codecept'
}
```

#### Command for execution

`npx codeceptjs run-workers 2`

#### Possible resolution way and reason for Error

The error comes when child processes are created for the parallel execution using `run-workers`. For `windows` operating system, the env variable are case-insensitive, which means `process.env['PROGRAMFILES(X86)']` and `process.env['ProgramFiles(x86)']` would produce same output. But inside the child process, only writing exact case only produces result. ex. `process.env['ProgramFiles(x86)']` will produce correct output and anything other produces `undefined`.
Because of this it is not able to find the correct path at which the browser exe files are present.

### Details

* CodeceptJS version: `3.6.6`
* NodeJS Version: `22.11.0`
* Operating System: `win32`
* playwright: `1.49.0`

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.