#javascript #node.js #cypress
Вопрос:
Проблема
Я запускаю интеграционный тест для Cypress, который отлично работает локально, но терпит неудачу, когда я запускаю его в Gitlab. Ошибка, которую я получаю при использовании cy.visit()
команды, приводит к следующей ошибке:
CypressError: `cy.visit()` failed trying to load:
http://localhost:3000/ The response we received from your web server
was:
404: Not Found
Конфигурация
Я запускаю тест со следующими командами:
tests:
image: cypress/base:10
stage: tests
script:
- npm ci
- npm run test:ci
Команды выглядят так в моем package.json
:
"scripts": {
"start:ci": "serve dist --no-clipboard --listen ${PORT:-3000}",
"test": "cross-env NODE_ENV=test amp;amp; npm run test:jest amp;amp; npm
run test:cypress",
"test:ci": "start-server-and-test start:ci http://localhost:3000 test",
"test:cypress": "cypress run --headless",
"test:jest": "jest",
},
Исследования
Я изучил ошибку и нашел эту тему, которая помогла мне немного разобраться в проблеме. Затем я попытался добавить в свой cypress.json
файл следующую конфигурацию:
{
"baseUrl": "http://localhost:3000"
}
но я все равно получаю ту же ошибку. С чего бы это?
Комментарии:
1. Попробуйте добавить
wait-on
и посмотрите, по-прежнему ли это не удается docs.cypress.io/guides/continuous-integration/…2. Боюсь, это не помогло
3. это дало ту же ошибку или что-то еще? Я хочу знать, есть ли проблема в запуске:ci не удалось запустить в gitlab или проблема с конфигурацией теста cypress
4. Время просто истекает, а затем у процесса заканчивается память. Я попробовал другой подход со страницы, которую вы отправили, используя
start-server-and-test
рекомендованный ими, который вы можете видеть какtest:ci
сценарий, но результат был тот же5. о, я скучал по этому, ты прав. Он должен устанавливать все
Ответ №1:
Добавьте косую черту в конец URL-адреса или, если вы можете удалить косую черту при размещении запроса.