티스토리 뷰
Xcode Code Coverage 이슈
pilot376 2020. 7. 27. 08:59Xcode에서 테스트 코드가 없음에도 불구하고 커버리지가 높게 나오는 이슈가 있다.
아래 순서대로 이슈를 재현해보자.
1) CodeCoverage 이름으로 프로젝트를 생성한다. 이때 Include Unit Tests 항목을 체크한다.
2) 커버리지를 활성화한다.
- Edit Scheme 클릭
- Test > Options 메뉴에서 Gather coverage for 체크박스 선택
3) CodeCoverageTests.swift 파일을 열어보자.
testExample()와 testPerformanceExample() 함수에 아무런 내용이 없기 때문에 테스트 시 커버리지가 0%가 나올 것으로 예상된다.
4) 테스트를 실행하고 커버리지를 확인해보자.
- Command-U 단축키로 테스트 실행
- show the report navigator 메뉴 > coverage 확인
작성된 테스트 코드는 없지만 커버리지는 높게 나온다.
왜 그럴까?
Xcode는 테스트 시 아래의 순서로 커버리지를 체크한다.
- code coverage 리포팅 시 구동되는 코드의 범위를 측정
- xcode 테스트 실행 시 시뮬레이터에서 실제 앱이 구동됨 (= 앱이 시작되고 관련 코드들이 실행됨)
- 테스트 코드에 의한 실행된 코드와 실제 앱이 구동되면서 실행된 코드를 모두 커버되었다고 판단함
- 테스트 코드가 하나도 없더라도 커버리지가 0%로 나오지 않고 시뮬레이터 구동 시 실행된 코드의 퍼센트만큼 표시됨
참고
댓글
글 보관함
최근에 올라온 글
최근에 달린 댓글
TAG
- 앱링크
- css
- 유닛테스트
- ubuntu
- Android
- jekyll
- 파이어폭스
- JSON.stringify
- 풋볼매니저 터치 2018
- JavaScript
- axios-mock-adapter
- TDD
- 렌더링 이슈
- vue.js
- JSONPlaceholder
- javascipt
- dev tools
- nginx
- BASE64
- Git
- AWS
- html
- chrome
- Total
- Today
- Yesterday