如果链接到自定义框架,则单元测试失败,没有任何消息

时间:2014-12-29 00:40:16

标签: xcode cocoa-touch unit-testing swift

更新(来自构建日志):

"The bundle “Lib2Tests” couldn’t be loaded because it is damaged or missing necessary resources." 

(dlopen_preflight(/Users/abc/Library/Developer/Xcode/DerivedData/Lib2-gaplfrtqethacsgkmjmlivcyuity/Build/Products/Debug-iphonesimulator/Lib2Tests.xctest/Lib2Tests): 

Library not loaded: @rpath/Lib1.framework/Lib1

似乎lib2.framework项目只链接了Lib1.framework并且它没有嵌入它,并且没有选项将框架嵌入到另一个可可触摸框架中,这就是为什么最终单元测试失败,因为它无法'找到引用的Lib1.framework。

简单地说,如果FrameworkB依赖于FrameworkA来实现某些功能,那么FrameworkB的UnitTests将停止运行 - 如果FrameworkA链接到FrameworkB


设置

我创建了一个简单的孤立案例来演示和重现问题。

我有2个Swift可可触控框架(Lib1&amp; Lib2 - Lib2依赖Lib1 - 单个swift文件,每个单元测试一次)< / p>

Lib2单元测试仅在您删除链接的Lib1时才有效。有趣的是,如果独立运行,两个项目都可以自行运行。

问题:这是Xcode中的一个错误吗?任何解决方法?

最小的可重复示例项目https://www.dropbox.com/s/kycnvt1qvz8zw4o/LibTest.zip?dl=0

我正在附加屏幕截图,很奇怪,没有错误消息或控制台中的故障详细信息,我得到的是单元测试失败的通知。测试并不复杂,单行实例化一个类,如果我删除了自定义框架的链接,它就会成功运行。 (自定义框架本身也很简单,并且可以自行运行/测试)要观察此行为,只需从项目文件中删除链接的框架,然后再次运行“测试”。我相信错误与项目文件设置等有关,解决方案需要查看项目文件本身。

enter image description here

0 个答案:

没有答案