소프트웨어 개발
Cypress - 테스트 자동화, CI/CD 파이프라인에 통합
인어공쭈
2023. 12. 20. 16:35
Cypress 소개
Cypress는 강력한 엔드 투 엔드(E2E) 테스트 도구로, 사용자 경험을 시뮬레이트하고 테스트하는 데 특히 용이합니다. 다양한 기능과 직관적인 사용자 인터페이스로 프론트엔드 테스트를 쉽게 작성하고 유지보수할 수 있습니다.
npm install --save-dev cypress
테스트 작성
// 예시 테스트 파일 (cypress/integration/sample.spec.js)
describe('테스트 예제', () => {
it('홈페이지 방문', () => {
cy.visit('/');
cy.contains('환영합니다!'); // 페이지에 '환영합니다!' 텍스트가 있는지 확인
});
it('로그인', () => {
cy.visit('/login');
cy.get('input[name=username]').type('testuser');
cy.get('input[name=password]').type('password');
cy.get('button[type=submit]').click();
cy.url().should('include', '/dashboard'); // 로그인 후 대시보드 페이지로 이동하는지 확인
});
});
테스트 실행
npx cypress run
젠킨스 파일 작성
pipeline {
agent any
environment {
NODE_VERSION = '14'
}
stages {
stage('Checkout') {
steps {
checkout scm
}
}
stage('Install Dependencies') {
steps {
script {
// Node.js 설치
tools {
nodejs "${NODE_VERSION}"
}
// 의존성 설치
sh 'npm install'
}
}
}
stage('Run Cypress Tests') {
steps {
script {
sh 'npx cypress run'
}
}
}
// 추가적인 단계: 성공 시에만 실행되는 단계
stage('Deploy to AWS') {
when {
expression {
currentBuild.resultIsBetterOrEqualTo('SUCCESS')
}
}
steps {
// AWS에 배포하는 스크립트 실행
// 예시: sh 'aws s3 sync ./dist s3://your-s3-bucket'
}
}
}
}
젠킨스에서는 이 file을 이용하여 Pipeline을 생성하고 실행합니다. Pipeline이 실행될 때 Jenkins는 소스 코드를 체크아웃하고, 의존성을 설치하고, Cypress 테스트를 실행하며, 테스트가 성공하면 AWS에 배포를 수행합니다.
반응형