#javascript #automation #frameworks #cypress #build-automation
#javascript #автоматизация #фреймворки #cypress #автоматизация сборки
Вопрос:
Эта странная вещь произошла, когда я внезапно получил сообщение об ошибке «Файлы не найдены в cypress test runner».
Однако файлы находятся в папке, я переместил ее в новую папку и попытался запустить, но все равно получил сообщение об ошибке. Пожалуйста, есть какие-либо мысли или идеи относительно того, почему это произошло?
Я также попытался запустить его в безголовом режиме, но получил то же сообщение об ошибке.
Спасибо. @Nanker Phelge пожалуйста, есть какие-либо мысли о том, как исправить эту проблему. Спасибо
Комментарии:
1. В какой конфигурации
cypress.json
?
Ответ №1:
По умолчанию, если вы не настроили ничего другого, Cypress просматривает все вложенные папки папки интеграции.
Пожалуйста, смотрите Конфигурацию
Папки / Файлы
Опция | По умолчанию |
---|---|
Тестовые файлы | **/*.* |
где **
является частью шаблона glob, который означает «искать во всех вложенных папках — для всех типов файлов».
Если у вас настроено что-то еще, это может быть причиной, но если нет записи, то cypress.json
это не причина.
В противном случае, если у вас есть *.spec.js
, или */*.js
они исключат ваши файлы (потому что нет .spec.js
расширения, а один *
будет исключать вложенные папки.
Говоря об исключении, если есть запись ignoreTestFiles
конфигурации (in cypress.json
), это может быть причиной проблемы.
Я также хотел бы отметить, PageObjects
что папка может рассматриваться как тесты и вызывать у вас больше ошибок.
Общим шаблоном является присвоение имен всем файлам, имеющим тесты, с .spec.js
расширением, например. GTProject1.spec.js
В cypress.json
файле установите
testFiles: "**/*.spec.js"
что означает поиск /cypress/integration
файлов с расширением в папке и любых вложенных папках .spec.js
. Он будет игнорировать ваши файлы PageObject, которые имеют только .js
расширение.
Затем вы можете переставить папки позже и по-прежнему видеть все тесты.
Комментарии:
1. Если
testFiles
они не объявлены вcypress.json
then в соответствии с текущей структурой, папка объектов страницы также будет выполнена.2. Но да, вы были правы в формулировках, cypress проверяет наличие всех вложенных папок внутри папки интеграции, я удалил это и обновил свой ответ.
3. @ Nanker Phelge Еще раз спасибо. Проблема была с тестовыми файлами в cypress.json. Как только я обновил его до */ .*, это сработало.
4. Спасибо, чувак: D в моем проекте внезапно я потерял все тесты, но это было так, кто-то изменил conf в cypress.js
Ответ №2:
Вы можете выполнять тесты, подобные этому —
npx cypress run --spec=cypress/integration/GTProjects/*
Или вы можете добавить все свои тесты в виде массива testFiles
в свой cypress.json
файл, и в этом случае вы можете напрямую использовать npx cypress run
.
"testFiles": [
"GTProjects/GTProject1.js",
"GTProjects/GTProject2.js",
"GTProjects/GTProject3.js",
"GTProjects/GTProject4.js",
"GTProjects/GTProject5.js",
"GTProjects/GTProject6.js",
"GTProjects/GTProject7.js",
"GTProjects/GTProject8.js",
"GTProjects/GTProject9.js"
]
Или вы можете указать integrationFolder
путь в своем cypress.json
, и в этом случае вы также можете выполнять тесты с помощью npx cypress run
"integrationFolder": "cypress/integration/GTProjects"