В настоящее время я использую Cypress в качестве инструмента для тестирования, и у меня возникла небольшая проблема при запуске на gitlab ci.Cypress, использующий переменные Gitlab
Проблема
Часть моего Cypress испытания в настоящее время использует чувствительные данные кредитной карты, поэтому, когда я загрузил его в хранилище gitlab я должен был попытаться выяснить способ держать кого-либо когда-либо просмотра сказал: «секретная информация ». В конце концов, я попытался использовать Gitlabs удобную функциональность «Secret Variable».
После настройки всех переменных, которые мне нужно было скрывать, я зашел в свой файл gitlab-ci.yml и настроил его так, чтобы файл .gitlab-ci.yml создавал новый файл под названием «cypress/поддержка/PaymentCredentials.js», и в этом файле все конфиденциальной информации о платежах будет храниться в виде яваскрипта переменных (как показано ниже)
image: bahmutov/cypress-image
# caching node_modules folder
# https://about.gitlab.com/2016/03/01/gitlab-runner-with-docker/
cache:
paths:
- node_modules/
before_script:
- cypress verify
- "echo -e \"export default {CARDHOLDER_NAME: '$CARDHOLDER_NAME', CARD_CC: '$CARD_CC', CARD_CC_MONTH: '$CARD_CC_MONTH', CARD_CC_YEAR: '$CARD_CC_YEAR', CARD_CC_CCV: '$CARD_CC_CCV'}\" > cypress/support/PaymentCredentials.js"
stages:
- build
- test
build-specs:
stage: build
script:
- npm install
artifacts:
paths:
- cypress/integration
.job_template: &e2e_test_definition
script:
- echo $CARDHOLDER_NAME
- export $CARDHOLDER_NAME
- cypress ci --spec "cypress/integration/$CI_BUILD_NAME.js"
Test_Project:
<<: *e2e_test_definition
так в Cypress я создал файл интеграции действовать как так:
describe('Test', function(){
afterEach(function(){
})
beforeEach(function(){
})
//The entire job
context('Test - Full Functionality Test', function(){
it('Front-end Walkthrough', function(){
/*This is going to go through the first step on Test*/
stepOne()
/*This is going to go through the Second step on Test*/
stepTwo()
/*This is going to go through the Third step on Test*/
stepThree()
/*Page loads very slowly, needed some buffer*/
cy.wait(5000)
/*This is going to go through the Fourth step on Test*/
cy.then(function(){
cy
.get('[name=method]').select("CC") //select CC
.get('#name').type(CARDHOLDER_NAME)
.get('#number').type(CARD_CC)
.get('#month').select(CARD_CC_MONTH)
.get('#year').select(CARD_CC_YEAR)
.get('#ccv').type(CARD_CC_CCV)
.get('[type=checkbox]').check({force: true})
.get('#scoreboard-enroll-form').submit()
})
})
})
})
Когда я запустил трубопровод, я все еще получаю сообщение об ошибке sta тин, что «CARDHOLDER_NAME» не был определен: Gitlab ci build report
Существуют ли какие-либо предлагаемые подходы принять для этого сценария? Получил ли я что-то нелепое?
В любом случае, я ценю любую помощь!