일을 하다가 iOS도 Code Coverage가 가능하냐는 질문을 받았다.
Code Coverage가 뭐지...? 처음 들었다.
찾아보니까 Xcode도 이런 기능이 있어서 정리해보려고한다.
제드님이 잘 정리해주셔서 따라 해보면서 추가 정리를 하도록 해야겠다.
Code Coverage의 정의 (사전적 정의는 코드의 적용 범위)
테스트의 가치를 측정하는 도구다. Xcode뿐만아니라 다양한 IDE에 존재하고 있고 실행 된 소스 파일을 확인하고
정확하게는 그 소스 파일에 어떤 함수가 동작했는지도 체크해 볼 수 있다!
Product > Scheme > Edit Scheme 에 들어가보도록 하자.
그럼 이런 화면이 뜨는데 Test에서 Options 누르고 이동해서
Gather coverage for 에 체크해주고 모든 타깃을 할지 섬 타겟을 할지 선택해주고
해당하는 타겟을 넣어주도록 밑에 + 버튼을 눌러서 추가해주도록 하자.
이렇게 하고 빌드 버튼을 TEST로 바꿔서 실행해봤떠니 계속 같은 에러가 떴다.
무슨 에러였나면
내 프로젝트가 테스트를 위한 구성이 안되었단다.
뭐 어떡하라고.....ㅠㅠ
방법은?? 테스트를 위한 타깃을 변경해주어야한다.
New > File > 가서 보면 Test 항목에 UI Testing Bundle, Unit Testing Bundle이 존재한다!!
저거를 추가해보자.
나는 UIit Test로 해봐야지.
그러면 왼쪽 소스 네비게이터에 요런게 생긴다.
빌드가 잘 될 것이다.
지금 보이는 곳에서 테스트가 성공적으로 끝났다고 나오면 여기처럼 어떤 파일이 동작되었고??
어느 함수가 사용되었는지 나온다!! 신기하네.. 근데 어떻게 실무에서 응용하면 좋을지는 모르겠다 ㅎㅎ
프로젝트를 왔다갔다 했는데 헷갈ㄹ리지 않았으면 ㄷ좋ㅎㅎ겠따 ㅎㅎ 방법은 그대로 따라해보면 좋을듯!?
각 실행한 메소드들을 클릭해보면 해당 메소드들로 이동하는데
옆에 초록색과 빨간색으로 칠해져있을 것이다.
초록색은 사용된 것
빨간색은 사용 안된 것
스프라이트 표시들은 부분만 사용되었다는 것 같다.
실제로 기본적으로 작성되어있는 테스트 코드들만 있기 때문에 Test를 해볼 수 있는 방법들도 공부를 다음에 해보아야겠다.
대충 이런식의 테스트 방법도 지원하고 있다고 하고 코드 커버리지를 사용 했을 때 좋은 점? 안좋은 점 알아보자
일단은 데이터를 수집하기 때문에 성능 저하가 있을 수 있다고 한다.
(뭐 테스트하는건데 조금 저하되어두 문제 없지 않을까?)
좋은 점은
어떤 코드들이 실제로 실행되는지 알수 있고,
어떤 코드들이 테스트 안되었는지?? 정확하게 파악 할 수 있을 것 같다.
이런게 TDD인가..?
맛만 보고 갑니당~
'개발 > 개발' 카테고리의 다른 글
[iOS] - Realm 사용해보자 - Realm 메뉴얼 (0) | 2021.05.23 |
---|---|
[iOS] - 움직이는 애니메이션 효과 Lottie (0) | 2021.04.10 |
iOS - 레이아웃 사이클 및 드로잉 사이클 (0) | 2021.03.29 |
[iOS] - 프로젝트에 SwiftLint 적용 시키기 (0) | 2021.03.21 |
Unable to install "App Name" (2) | 2021.03.19 |