2

Swift 패키지 관리자를 사용할 때 테스트 전용 종속성에 대해 언급했지만 해당 기능을 사용할 수 없었습니다. 예를 들어 :Swift Package Manager를 사용할 때의 테스트 전용 종속성

https://lists.swift.org/pipermail/swift-evolution/Week-of-Mon-20160104/005409.html https://github.com/apple/swift-package-manager/pull/74 http://blog.krzyzanowskim.com/2016/08/09/package-swift-manual/#testDependencies

는 내가 원하는 종속성 (특정 대상에 대해, 예를 들면) 내 XCtests에 사용되지만 배포 된 패키지에 적용되지 것입니다.

작동 예제에 대한 포인터가 도움이 될 것입니다.

답변

5

현재 "테스트 전용 종속성"기능은 Swift Package Manager에서 사용할 수 없습니다. 처음에는 구현되었지만 in this commit은 제거되었습니다. 의 커밋 설명에서

:

이 기능은 루트 패키지에 대한 종속성을 지원하기로했다 PackageDescription 에서 testDependencies를 제거하지만, 어떤 점에서 그것은 그러나 API를 작동이 중지 여전히 개방 남아 있었다. 이 패치는 공용 API를 제거합니다. 유효한 원하는 기능입니다. 신속한 진화에 대한 적절한 검토를 거친 후에 다시 돌아올 예정입니다.

+0

행복한 얼굴과 슬픈 얼굴;). Vadim에게 감사드립니다. 당신은 개발의 일부입니까? 이게 언제 돌아 왔는지 아세요? –

+0

@ChrisPrince 아니요, 아닙니다. 언제 다시 올지 모르겠습니다. 나는이 기능에 어떤 일이 일어 났는지 궁금했다. –

1

@ Vadim의 답변이 정확합니다. 현재 테스트 종속성에 대한 공식 API는 없지만 해결 방법이 있습니다. ReactiveSwift는 예를 들어 alternate Package.swift을 사용하여 CI 테스트를 실행할 때 원래 테스트를 덮어 쓰는 테스트를합니다 (travis config file 참조). 우아하지는 않지만 SPM이 매우 필요한 기능을 다시 가져올 때까지 작업을 수행합니다.