Как я могу сказать Cypress скрывать Chrome при запуске из командной строки? - PullRequest
0 голосов
/ 15 мая 2019

Задача

Я хочу иметь возможность запускать свои тесты в терминале, но все мои тесты не выполняются из-за Cypress, использующего Electron в качестве браузера по умолчанию, и я хочу, чтобы он использовал Chrome, но без указания его в командной строке.

Текущий результат

Я знаю, что могу использовать команду npx cypress run --browser chrome, чтобы сказать Cypress вместо Chrome. Тем не менее, он открывает браузер и запускает его в командной строке.

Ожидаемый результат

В идеале мне потребуется только запустить npx cypress run, и это будет only в командной строке с использованием Chrome.

Резюме

Есть ли способ установить браузер по умолчанию в Chrome вместо Electron, чтобы мне не нужно было указывать, какой браузер использовать?

Что-то добавить в файл package.json, чтобы установить в браузере по умолчанию Chrome или строку для вставки куда-нибудь? Я проверил документы и не смог найти ничего, кроме команды --browser.

** Cypress Github Open Issue **

Вот ссылка на открытый выпуск на их github относительно хрома без головы, а также изменить значение по умолчанию для cypress run

Поддержка Chrome без головы и изменить настройки по умолчанию для кипарисного прогона

Фото для отладчика

Извините за ужасные каракули ... Я нахожусь под NDA, поэтому пришлось вернуться и вычеркнуть все пути для моего проекта, а также мою фамилию.

enter image description here

1 Ответ

1 голос
/ 15 мая 2019

В настоящее время нет способа скрыть Chrome в режиме run на macOS или Windows.

Мы хотели бы поддержать его, но нам нужно найти какой-то обходной путь для xvfb недоступноМы также не можем использовать google-chrome --headless, потому что это не позволит нам установить расширение Cypress.


Приведенный ниже совет будет работать только для Linux.

npx cypress run --browser chrome - это правильный способ сделать то, что вы пытаетесь сделать.

Если вы работаете в Linux, вы можете заставить его запускать Chrome в виртуальном фрейм-буфере (поэтому он будет скрыт от вас)отключив переменную DISPLAY env:

DISPLAY= npx cypress run --browser chrome


Техническое объяснение:

  1. Cypress не поддерживает работу в "Chrome без головы"- безголового Chrome не было рядом, когда Cypress был впервые написан
  2. Итак, когда Cypress работает в Chrome в CI, он использует xvfb для создания виртуального кадрового буфера X, а затем использует переменную DISPLAY, чтобы сообщитьChrome для запуска в xvfb
  3. Однако, если у вас установлен DISPLAY (по умолчанию он установлен в Linux, если у вас есть менеджер дисплея), он будет использовать вместо этого DISPLAY - этоВот почему он появляется, даже если вы делаете cypress run.
  4. Добавление DISPLAY= доommand обнуляет DISPLAY, что означает, что Cypress будет порождать xvfb и запускать его там вместо этого.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...