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

Aberta
#4,609 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
3/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
45/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Estagnada
Stack de tecnologia
javascript, node.js, playwright

Direção de pesquisa

Comece reproduzindo o problema em um projeto CodeceptJS de demonstração usando o helper do Playwright, channel: 'msedge' e npx codeceptjs run-workers 2 no win32. Inspecione o tratamento do ambiente do processo filho de run-workers e verifique se o navegador channel é iniciado com sucesso durante a execução paralela.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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) OR use below code.
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
Linguagem predominante
JavaScript
Estrelas
4.2k
Forks
756
Merge médio
2d 9h
PRs com merge (30d)
16

Guia de contribuição

Abrir o guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de codeceptjs/CodeceptJS

Todas as issues de codeceptjs/CodeceptJS

Issues semelhantes

Mais issues de JavaScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.