#jenkins #cypress #cypress-cucumber-preprocessor
Вопрос:
Как мы можем запустить тест cypress в конвейере Дженкинса с помощью cypress-tags
. Приведенная ниже команда успешно выполняется в локальной командной строке Windows
Local:
CYPRESS_baseUrl=https://someurl.com/book/ npx cypress-tags run -e TAGS='@regression' GLOB='test/cypress/integration/**/*.feature' --headless --browser chrome
Но когда я попытался ниже в файле Дженкинса:
/node_modules/.bin/npx cypress-tags ${cypressArgs}
// ( выдает ошибку > Не удается найти модуль ‘/node_modules/.bin/npx’ )
Jenkins file:
stage('Run cypress') {
steps {
script {
mattermostSend color: 'good', channel: channel, message: "**STARTING** - Cypress CI starting (<${env.BUILD_URL}|build ${env.BUILD_NUMBER}>)"
sh "mkdir -p "${ARTEFACT_DIR}/videos""
sh "mkdir -p "${ARTEFACT_DIR}/screenshots""
def baseUrlConfig="-e CYPRESS_baseUrl=https://someurl.com/book"
def screenshotsFolderConfig="screenshotsFolder=/artefacts/screenshots"
def videosFolderConfig="videosFolder=/artefacts/videos"
def config = "--config ${screenshotsFolderConfig},${videosFolderConfig}"
def cypressArgs = "run -e TAGS='@regression' GLOB='tests/cypress/integration/**/*.feature' --headless --browser chrome ${config} --project /books-suite"
sh """
docker run ${baseUrlConfig}
-v "${ARTEFACT_DIR}:/artefacts"
-v "${env.WORKSPACE}/books-co:/books-suite"
-e CYPRESS_OUTPUT_FILE="/artefacts/report.html"
-e CYPRESS_USERNAME="CypressUser3"
-e CYPRESS_PASSWORD="CypressTest123"
-e CYPRESS_API_GRANT="client_credentials"
-e CYPRESS_CLIENT_ID="50e556ffa1970d8f7b38564df218177"
-e CYPRESS_CLIENT_SECRET="8745b8c7"
-e CYPRESS_API_KEY="some_key"
-e CYPRESS_BASE_URL="https://someurl.com/book/"
-e CYPRESS_API_URL="https://someurl.com/api/v2.0/books/"
cypress:latest
/node_modules/.bin/npx cypress-tags ${cypressArgs}
"""
mattermostSend color: 'good', channel: channel, message: "**SUCCESSED** - Cypress CI passed successfully (<${env.BUILD_URL}|build ${env.BUILD_NUMBER}>)"
}
}
}
Комментарии:
1. Не очень хорошо знаком с докеризацией, но когда я получаю это сообщение об ошибке, это обычно означает, что мои зависимости npm не установлены. Можете ли вы попробовать установить зависимости перед выполнением действия npx?
2. Я попытался установить все зависимости, но если я обновлю строку
/node_modules/.bin/ cypress ${cypressArgs}
, она будет работать хорошо.3.
npx
глобально установлен с узлом, его нет внутри/node_modules/.bin
. Кроме того, почему вы пытаетесь бежатьcypress_tags
? Так как это плагин, вы можете запустить его только с cypress.4. У меня есть тесты BDD, и я использую плагин cypress-cucumber-preproccessor в своей структуре вместе с cypress. Таким образом, я могу запустить свой тест либо с помощью npx cypress run, либо
CYPRESS_baseUrl=https://someurl.com/book/ npx cypress-tags run -e TAGS='@regression' GLOB='test/cypress/integration/**/*.feature' --headless --browser chrome
из командной строки. Так как же я могу запустить то же самое из конвейера Дженкинса, используя теги cypress ?