1. 개요
UI 테스트 도구인 Cypress의 설치방법과 실행방법에 대해 소개한다.
2. Cypress 설치
프로젝트 폴더에서 npm이나 yarn을 사용하여 Cypress를 설치한다.
$ npm install cypress $ yarn add cypress
Cypress를 GUI 형태로 실행하면 다음과 같이 cypress 설정 파일과 cypress 디렉터리가 생성된다. 디렉터리 하위에는 테스트 코드 예제가 들어있다.
# Cypress 실행
$ npx cypress open
$ ls -altr
...
-rw-r--r-- 1 snowball staff 3 12 18 19:56 cypress.json
drwxr-xr-x 6 snowball staff 192 12 18 19:56 cypress
$ tree cypress
.
├── fixtures
│ └── example.json
├── integration
│ └── examples
│ ├── actions.spec.js
│ ├── aliasing.spec.js
│ ├── assertions.spec.js
│ ├── connectors.spec.js
│ ├── cookies.spec.js
│ ├── cypress_api.spec.js
│ ├── files.spec.js
│ ├── local_storage.spec.js
│ ├── location.spec.js
│ ├── misc.spec.js
│ ├── navigation.spec.js
│ ├── network_requests.spec.js
│ ├── querying.spec.js
│ ├── spies_stubs_clocks.spec.js
│ ├── traversal.spec.js
│ ├── utilities.spec.js
│ ├── viewport.spec.js
│ ├── waiting.spec.js
│ └── window.spec.js
├── plugins
│ └── index.js
└── support
├── commands.js
└── index.js
3. Cypress 실행하기
GUI로 Cypress를 실행하면 테스트가 어떻게 진행되는지 직접 확인할 수 있다는 장점이 있다.
하지만 테스트 자동화를 위해 CI 툴과 통합하여 사용하려면 GUI가 아닌 커맨드라인으로 실행하는 것이 유용하다.
# 테스트를 실행할 브라우저를 지정 $ npx cypress run --browser chrome # 헤드리스로 테스트를 실행 $ npx cypress run --headless
4. Allure Plugin을 사용하여 리포트 생성하기
Cypress로 테스트를 수행한 결과를 Allure를 통해 리포트로 변환하여 확인할 수 있다.
1) cypress-allure 플러그인을 설치한다.
$ npm i -D @shelex/cypress-allure-plugin
2) cypress/plugins/index.js 파일에 아래 내용을 추가하여 allure plugin을 사용할 수 있도록 한다.
const allureWriter = require('@shelex/cypress-allure-plugin/writer'); ... module.exports = (on, config) => { ... allureWriter(on, config); ... };
3) cypress/support/index.js 파일을 수정하여 allure plugin을 import한다.
import '@shelex/cypress-allure-plugin';
4) Allure 결과 파일을 저장할 디렉토리를 cypress.json 파일에 지정한다.
{ "env": { "allureResultsPath": "allure/allure-results" } }
5) Cypress를 headless로 실행한다.
$ npx cypress run --config video=false --env allure=true --headless
6) 생성된 allure 결과 파일을 기반으로 allure 리포트를 생성한다.
$ cd allure $ allure generate $ allure open