Cypress 스크린샷과 비디오 기록
Cypress 스크린샷과 비디오 기록
테스트가 실패하면 그 순간의 화면을 눈으로 보고 싶어져요. Cypress는 스크린샷과 비디오 기록 기능을 기본으로 제공해요. cypress run이나 cypress open에서, 심지어 CI에서도 스크린샷을 찍을 수 있어요.
출처: Capture screenshots and videos in Cypress | Cypress Documentation
스크린샷
수동 스크린샷은 cy.screenshot() 커맨드로 찍어요.
cy.screenshot()
추가로, cypress run 중 실패가 발생하면 Cypress가 자동으로 스크린샷을 캡처해요. 실패 시 스크린샷은 cypress open에서는 자동으로 찍히지 않아요.
테스트 실패 시 스크린샷 캡처는 Cypress 설정의 screenshotOnRunFailure를 false로 설정해서 완전히 끌 수 있어요.
스크린샷은 기본값이 cypress/screenshots인 screenshotsFolder에 저장돼요. cypress run 전에 Cypress는 screenshotsFolder의 전체 내용(이미지뿐 아니라 모든 파일과 중첩 하위 폴더)을 비워요. 실행 전에 스크린샷 폴더를 비우고 싶지 않다면 trashAssetsBeforeRuns를 false로 설정하면 돼요.
비디오
비디오 녹화는 기본적으로 꺼져 있어요. 설정에서 video를 true로 설정하면 켜져요.
export default defineConfig({
video: true
})
활성화하면 Cypress는 cypress run 중 테스트를 실행할 때 각 spec 파일에 대한 비디오를 기록해요. 비디오는 cypress open 중에는 기록되지 않아요.
활용 — 시각적 회귀 테스트
스크린샷의 또 다른 용도는 시각적 회귀(visual regression) 테스트예요. 이전 실행의 스크린샷과 현재 실행을 비교해 아무것도 바뀌지 않았는지 확인하는 거예요.
스크린샷과 비디오는 실패 원인을 디버깅하고, 시각적 변경을 추적하는 데 유용한 산출물이에요. Cypress Cloud의 Test Replay를 쓰면 기록된 실행을 재생하며 디버깅할 수도 있어요.
정리하면, Cypress는 cy.screenshot()으로 수동 캡처하고, cypress run 실패 시 자동으로 스크린샷을 남기며, video: true 설정으로 비디오를 기록해요. 스크린샷·비디오 폴더는 screenshotsFolder·세팅으로 관리하고, 시각적 회귀 테스트에도 활용할 수 있어요.