본문 바로가기
Swfit/Unit test

SPM 사용 시 XCTest에도 library 추가하기

by GGShin 2023. 5. 6.

Firestore와 FirebaseAuth를 사용하게 되어, TDD를 해보려는데

아무런 코드도 추가하지 않은 Test 파일 빌드가 되지 않았다. 알고보니 Project Target에 추가해 둔 Firebase 관련 라이브러리들이 Test Target에는 추가가 되지 않아서 발생하는 문제였다.

 

아래와 같은 에러가 발생

Test Target에 라이브러리를 추가하는 방법은 

원하는 Target 선택 > Build Phases > Link Binary With Libraries 에 필요한 package들 추가 해주면 된다.

Package 추가할 때 project target에 추가된 package를 정확히 추가해주어야 한다. 그렇지 않으면 계속 에러가 발생한다. 

내 경우는 FirebaseStorage 패키지 대신 다른 패키지를 추가해버렸는데, 계속 위와 같은 에러가 발생했다. 문제는 FirebaseStorage module이 없다는 문구가 아닌 다른 세가지 모듈이 없다고 하고, 해당 모듈들은 내가 추가할 수 없는 모듈들이었다.. 그래서 헤매다가 다시 테스트 번들을 추가하기 전 브랜치로 넘어가 새로이 패키지를 추가해주었고, 이 때는 제대로 넣어서인지 위의 에러가 발생하지 않았다. 

 

배운 점

1. 지금처럼 기능별로 브랜치는 잘 나누어서 기능을 추가하자

2. 테스트 타겟에도 라이브러리를 추가해주어야 하고, 프로젝트 타겟과 동일하게 추가해주어야 한다.

반응형