使用Swift包管理器时的仅测试依赖项

时间:2016-12-30 19:34:20

标签: swift3 xcode8 xctest swift-package-manager server-side-swift

我在使用Swift软件包管理器时看到了仅测试依赖项的提及但是还没有能够让它们工作。例如:

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中使用依赖项(例如,针对特定目标),但不在已部署的包中应用。

赞赏工作范例。

2 个答案:

答案 0 :(得分:5)

目前,Swift Package Manager中禁用了“仅测试依赖项”功能。它最初已实施,但已被删除in this commit

来自提交的说明:

  

从PackageDescription中删除testDependencies   此功能应该仅支持root用户的依赖项   包但但在某些时候它仍然停止工作,但API仍然存在   仍然开放。此修补程序删除了公共API。这是有效的   期望的功能,它应该在它通过后回来   对快速进化的适当评论。

答案 1 :(得分:2)

@Vadim的回答是正确的,目前还没有针对测试依赖的官方API,但有一些解决方法。例如,ReactiveSwift使用alternate Package.swift进行测试,在CI上执行测试时覆盖原始测试(请参阅他们的travis config file)。它并不优雅但很好,直到SPM带回这个非常需要的功能之前它才能完成。