#javascript #cypress
Вопрос:
У меня есть 3 файла спецификаций для заполнения формы тестирования и загрузки фотографий с помощью cypress.
- файл спецификации: Заполните форму
- файл спецификации: Загрузите фотографию
- файл спецификаций: Проверьте результаты
Форма — это … https://demoqa.com/automation-practice-form
Проблема в том, что когда тест заполнения формы проходит, браузер закрыт, а 2 других теста завершаются неудачей, потому что я не вызываю открытый URL-адрес в каждом тестовом случае.
Если я запускаю тесты в графическом интерфейсе, все в порядке. Браузер не закрывается после первого теста, но когда я запускаю
npx cypress run --headed --browser chrome
из командной строки возникает проблема.
Я хочу запускать тесты из командной строки, чтобы браузер не закрывался, пока все тесты не будут завершены.
Комментарии:
1. Пожалуйста, добавьте код из ваших файлов спецификаций в вопрос.
2. Код не имеет значения. Когда я запускаю тесты с графическим интерфейсом cypress, тесты выполняются один за другим, и браузер не закрывается.
3. Я размещаю заказ тестовых случаев в
"testFiles": [ "Form.spec.js", "UploadFile.spec.js", "Check.spec.js" ]
спецификации формы cypress.json, заполняю форму пользовательскими данными, загружаю спецификацию файла, загружаю файл в ту же форму и нажимаю «Отправить», а проверка спецификации проверяет, загружен ли файл после шага тестового случая перед отправкой заполненной формы. Проблема в том, что я запускаю все из командной строки. После завершения первого тестового случая браузер закрывается, а второй тестовый случай запускается без браузера, и тестовый случай завершается неудачно.4. Вы пробовали вариант-без выхода
5. Да, и после первого теста браузер остается открытым, но второй тестовый пример не запускается.
Ответ №1:
У меня возникла точно такая же проблема, и после нескольких часов исследований я нашел обходной путь, который решает эту проблему. Это не настоящее решение, но оно решает вашу и мою проблему. Вот шаги, которые я сделал:
Создайте 4-й файл спецификации, назовите его main.spec.ts, внутри этого файла выполните импорт для 3 файлов спецификаций, которые у вас есть:
import './fillform.spec.js'
import './uploadphoto.spec.js'
import './result.spec.js'
В файле cypress.json добавьте следующую запись, чтобы разрешить запуск только основного файла спецификации:
"testFiles": ["main.spec.js"],
Теперь cypress run будет работать точно так же, как cypress open, и все спецификации будут запускаться без закрытия браузера в промежутке:
npx cypress run --headed --browser chrome