2013-03-13 1 views
1

나는 Cocoapods의 마법을 우리 회사에 가져 오기 위해 노력하고 있지만 작은 걸림돌을 맞았습니다. Cocoapods에서 나온 단위 테스트 코드를 사용할 수 있어야합니다.Unit Test CocoaPod Code는 어떻게 작성합니까?

제 질문은, 다른 누구도 자신의 회사에서이 문제가 발생했는지 (아니면이 코드를 테스트하고 어떻게 계산했는지 신경 쓸만큼 편집적인 사람일까요?). 그것은 우리를위한 거래 차단기가 아닐지도 모르지만, 나는 이것을 미리 정렬 해 두었다면 관리를 통해 매끄러운 일을 확실히 도울 것입니다.

아마도 클라이언트 응용 프로그램에 테스트를 삽입 할 수 있지만 수작업을 줄이기 위해 포드를 사용한다고 생각하면 엄청난 수동 작업이 필요합니다. 어떻게 든 그것을 한 번하는 것이 좋을 것입니다. 에서

답변

3

Podfile 내가 이런 걸 사용 link_with ['Sail', 'Sail-Tests']

이 내 일반 대상 및 내 테스트 대상 모두 내 모든 포드를 연결합니다. 그렇다면 내 테스트에서 내가 원하는 것을 가져 와서 테스트 할 수 있습니다. 이것은 '클라이언트 응용 프로그램에 테스트 삽입'과 중복 될 수 있습니다. 당신은 (테스트 대상이 테스트중인 하나에 따라 다름) 엑스 코드에 의해 생성 된 것과 유사한 설정을 사용하려는 경우

1

는, 다른 대안은 다음과 같습니다 독점 대상을 표시

pod 'ObjectiveSugar', '~> 0.5' 

target :test, :exclusive => true do 
    pod 'OCMock', '~> 2.0.1' 
end 

가 있음을 나타냅니다 부모의 의존성을 상속해서는 안됩니다. 이렇게하면이 설정에서 중복 된 기호 오류가 발생하지 않습니다.

0

저는 Cocoapods를 사용하여 동일한 '기본'앱의 화이트 라벨이 붙은 버전 인 20 개가 넘는 앱 전체의 핵심 기능을 중앙 집중화했습니다. 이를 위해 두 개의 Xcode 프로젝트 구조를 설정했습니다.

첫 번째 부분에는 기대되는 동작 (내 경우에는 키위)을 확인하는 단위 테스트를 비롯한 핵심 기능이 포함되어 있습니다. 스펙과 xcodeproj는 podspec에 표시되지 않지만 프로젝트는 CI (Jenkins)에서 테스트됩니다.

두 번째 프로젝트에는 whitelabeled app (앱당 하나의 프로젝트)가 포함되어 있으며 Podfile을 통한 첫 번째 프로젝트 설정에 대한 종속성이 있습니다. 이 가벼운 애플 리케이션에서 키위 사양도 특정 애플 리케이션에 대한 모든 사용자 정의 코드를 테스트합니다. 핵심 클래스를 이미 테스트 했으므로 더 이상 테스트하지 않습니다. 이 프로젝트는 CI에서 진행됩니다.

질문에 대한 주요 대답은 라이브러리가 종속 프로젝트에 필요한 소스 파일뿐만 아니라 단위 테스트를 실행하는 컴파일 Xcode 프로젝트 (응용 프로그램 또는 라이브러리)를 포함한다는 것입니다.