我创建了几个在多个iOS项目之间共享的静态库。在很多这些静态库中,我创建了单元测试。每当我测试包含静态库的项目时,我都希望运行这些测试。
我已尝试在主项目方案的“测试”部分中包含所有测试但这通常会导致“模拟器已在使用中”错误并且测试失败。可能是因为以前的测试使用的是模拟器。
Skin CreatorTests用于主项目
SEUSUIKitTests,APIKitTests,PurchaseKitTests和MCSkinKitTests都是来自附加静态库的测试
我是以正确的方式解决这个问题,还是应该以不同的方式思考?
**编辑**
看起来这个堆栈溢出问题存在同样的问题。
Xcode 5: Multiple test targets in one scheme: "Simulator already in use"
**编辑2 ** 雷达:http://openradar.appspot.com/15153136
答案 0 :(得分:2)
虽然正确设置单元测试几乎是一团糟,并且在XCode上浪费时间(感谢您发现的非常清晰的消息,如您所知),在您的情况下,我认为问题是您的方法。
如果您有多个从多个项目链接的静态库,则不应从引用它们的项目运行静态库的测试。每个库都应该是自包含的并且包装它自己的测试,并且只要你在那个特定的库中更改某些东西就应该运行它们。
这个想法是你应该只测试自己的代码。如果链接外部静态库,该库的作者负责正确单元测试此部分。您也是外部库的作者这一事实不会对此产生影响。