프로그래밍은 세팅이 반이다.
코드를 치는 것보다 코드를 치기 위한 과정이 더 어려울 수 있습니다. 특히나 처음 개발을 접허가나 처음 접하는 스택에 대해서는 더욱 더 그럴 수 있습니다.
매번 세팅에 대한 내용을 공식문서에서 찾아서 적용할 수도 없으며, Cypress에 대한 한글 자료가 생각보다 많이 없기 때문에 이번 포스팅이 많은 개발자들에게 도움이 되길 바라며,,
Cyperss는 JavaScript 언어를 기반으로 하고 있어 설치하기도 굉장히 편리합니다.
Cypress는 npm에서 사용할 수 있는 모듈 자체로 존재하기 때문에 프로젝트 폴더 내부에서 아래 명령어를 입력해주면 됩니다.
배포 이후에는 개발자들이 사용하는 툴이기 때문에 --save-dev
옵션을 추가하여 설치합니다.
$ npm install --save-dev cypress
자, 벌써 개발의 절반을 마쳤습니다.
이제 아래의 명령어를 통해 Cypress 테스트를 실행해볼 수 있습니다.
npx cypress open
👉 Cypress GUI 실행하기npx cypress run
👉 Cypress Headless 실행하기아무런 테스트 코드를 작성하지 않고 Cypress GUI를 실행하면, 예시 코드를 제공하는데요.
폴더 구조를 보면 다음과 같습니다.
❗️10.0.0 이후 version 기준입니다.❗️
+--cypress.config.ts
+--cypress
+--e2e
| +-- test1.cy.ts
| +-- test2.cy.ts
+--fixtures
| +-- data.json
| +-- image.png
+--support
| +-- commands.ts
| +-- e2e.ts
+--screenshots
+--videos
+--tsconfig.json
// cypress/tsconfig.json
{
"compilerOptions": {
"target": "es5",
"lib": ["es5", "dom"],
"types": ["cypress", "node"]
},
"include": ["**/*.ts"]
}
*.cy.ts
형식으로 파일을 관리하고 있습니다.데이터
를 담고 있는 디렉토리입니다.Cypress를 실행하는 방법은 위에서 설명했듯이 두가지 방법이 있습니다.
개발팀 입맛에 맞게 혹은 더 효율적인 방법을 위해 package.json
파일의 scirpts를 추가하여 선택적으로 Cypress를 실행할 수 있습니다.
추가할 수 있는 옵션의 플래그는 다음과 같습니다:
--config
:: 테스트 실행 환경을 설정할 수 있습니다.--browser
:: 테스트 브라우저 플랫폼을 설정할 수 있습니다.// package.json
...
...
scripts: {
"cy:open" : "cypress open--config baseUrl=https://my-service.com --broswer chrome ", // cypress app 실행
"cy:test" : "cpyrees run --browser chrome" // cypress cli 실행
}
마찬가지로 테스트 환경 설정을 할 수 있는 파일입니다.
package.json
파일과 동일한 경로에 위치하며, 테스트를 위한 환경변수, viewport 등 테스트에 필요한 환경 설정을 할 수 있습니다.
e2e
:: 테스트 간 필요한 plugin들을 관리할 수 있습니다.env
:: 테스트 실행에 필요한 환경변수를 설정할 수 있습니다.baseUrl
:: 테스트를 실행하는 url 주소의 기본값을 설정할 수 있습니다. package.json에 이미 명시가 되어 있다면 override되지 않고 package.json에서 설정한 url을 기본 값으로 인식합니다.// cypress.config.ts
import { defineConfig } from 'cypress';
export default defineConfig({
e2e: {
setupNodeEvents(on, config) {
// plugins or setNodeEvents
},
env: {
// environmental variables for cypress test.
},
baseUrl: 'https://my-service.com'
},
});
더 많은 설정 플래그와 옵션은 공식 문서를 참조하면 좋겠습니다.
Cypress 공식 홈페이지 :: 이동하기