티스토리 뷰

안녕하세요 Hani입니다.

이번에는 Code Coverage 측정해볼 거예욥. ☺️

 

 

 


프로젝트를 하나 생성해둔 모습입니당.

오른쪽에서 Target Membership을 볼 수 있는데 체크할 수 있는 목록은 프로젝트의 타겟이예요.

 

 

 

 

프로젝트의 타겟을 누르고 Build Phases의 Compile Sources로 들어가면

어떤 소스 파일을 컴파일할지 결정할 수 있습니다.

 

 

 

 

Xcode - Product - Scheme - Edit Scheme - Test - Options로 가면

Code Coverage를 측정할 건지 체크할 수 있고 타겟을 지정할 수 있어요.

커버리지 볼 거니까 체크해 줄 겁니당.

 

 

 

 

일단은 유닛 테스트를 아무것도 작성하지 않고

UnitTestProjectTests를 실행시켜서 커버리지를 측정해볼 거예욥.

 

 

 

 

아까 Code Coverage에 체크를 했기 때문에

Build와 Log사이에 있는 Coverage를 통해 결과를 확인할 수 있습니다.

 

아무것도 안 건드렸는데 커버리지도 오르고

결국 App의 커버리지가 뻥튀기되는 상황이 발생.. 🥺

 

 

 

 

UnitTestProject 타겟 아래에 한 객체를 생성해두고

 

 

 

 

뷰컨에서 사용을 하면

 

 

 

 

단위 테스트를 작성하지 않았는데도 커버리지가 오름 .. 😡

 

 

 

 

UnitTestProject를 우클릭하고 Duplicate를 누르면 똑같은 게 만들어지는데

이름을 일단 UnitTestProject2로 지어두겠습니당.

 

 

 

Compile Sources에는 필요한 거 빼고 다 지워주세욥.

왼쪽에는 duplicate때문에 만들어진 plist 파일이 있는데

이름을 적당히 바꿔준 다음에 

 

 

 

 

Target - Build Settings - Packaging - Info.plist File에도 동일하게 바꿔주세요.

 

 

 

 

Tests 타겟에는 앱에서 사용되는 소스 파일이 들어가면 안 됩니다.

 

 

 

Tests 타겟의 General - Testing에서 Host Application을

새로 만든 타겟으로 바꿔주세욥.

 

 

 

 

그담엔 커버리지 보고 싶은 타겟만 추가해줍니다

(Xcode - Product - Scheme - Edit Scheme - Test)

 

 

 

 

테스트할 파일들에 "@testable import 새 타겟" 을 해주고

테스트 눌러보면~!

 

 

 

 

엄 😅

 

 

 

 

앱델은 못 참지

 

 

 

 

흡.. 앱델 빼고 성공적으로 잘 나왔습니다..

 

 

 

 

테스트할 메서드의 코드를 짜주고 빌드를 눌러주면

 

 

 

 

앱델 빼고는..!

원하는 커버리지만 얻을 수 있습니다.

 

 

 

혹시 앱델빼고 방법이 있다면 알려주십쇼..

 

 

댓글