所以,我已经开始使用FBSnapshotTestCase
了,一切都按预期工作,除了没有从包中正确加载的图像。我已经测试了,它们被装入另一个包中。
请参阅下面的调试详情:
(lldb) po [NSBundle allBundles]
<__NSArrayI>(
NSBundle </Applications/Xcode.app/Contents/.../Xcode/Agents> (loaded),
NSBundle </.../DerivedData/.../ProjectTests.xctest/Frameworks> (not yet loaded),
NSBundle </.../DerivedData/.../ProjectTests.xctest> (loaded)
)
(lldb) po [NSBundle mainBundle]
NSBundle </Applications/Xcode.app/Contents/.../Xcode/Agents> (loaded)
(lldb) po [NSBundle bundleForClass:[self class]]
NSBundle </.../DerivedData/.../ProjectTests.xctest> (loaded)
因此,当我运行[UIImage imageNamed:@"image"]
时,它会返回nil
,但是当我运行时:
[UIImage imageNamed:@"image" inBundle:[NSBundle bundleForClass:[self class]] compatibleWithTraitCollection:nil]
加载很好。但我不能在应用程序中更改所有图像加载,我不知道如何在故事板中更改它。我尝试过研究,但无法手动设置mainBundle
。
底线:是否有针对目标设置捆绑包的目标特定配置,还是创建脚本以将资产移动到正确捆绑包的方法?
我已经验证所有资产都已检查测试目标,并且它们位于测试目标的Copy Bundle Resources
构建阶段内。事实上,它们已被加载,但不知何故主要的捆绑不是我期待的那样
答案 0 :(得分:1)
按照this guide中的步骤后,它开始工作正常,但我不得不重新配置一些依赖项。 我缺少的是:
4)单击Build Settings选项卡并将Bundle Loader设置为$(BUILT_PRODUCTS_DIR)/MyExistingApp.app/MyExistingApp
5)将测试主机构建设置设置为$(BUNDLE_LOADER)