如何从您的项目所依赖的iOS静态库运行测试

时间:2014-02-17 21:27:27

标签: ios objective-c xcode unit-testing xctest

我创建了几个在多个iOS项目之间共享的静态库。在很多这些静态库中,我创建了单元测试。每当我测试包含静态库的项目时,我都希望运行这些测试。

我已尝试在主项目方案的“测试”部分中包含所有测试但这通常会导致“模拟器已在使用中”错误并且测试失败。可能是因为以前的测试使用的是模拟器。

scheme-tests

Skin CreatorTests用于主项目

SEUSUIKitTests,APIKitTests,PurchaseKitTests和MCSkinKitTests都是来自附加静态库的测试

我是以正确的方式解决这个问题,还是应该以不同的方式思考?

**编辑**

看起来这个堆栈溢出问题存在同样的问题。

Xcode 5: Multiple test targets in one scheme: "Simulator already in use"

**编辑2 ** 雷达:http://openradar.appspot.com/15153136

1 个答案:

答案 0 :(得分:2)

虽然正确设置单元测试几乎是一团糟,并且在XCode上浪费时间(感谢您发现的非常清晰的消息,如您所知),在您的情况下,我认为问题是您的方法。

如果您有多个从多个项目链接的静态库,则不应从引用它们的项目运行静态库的测试。每个库都应该是自包含的并且包装它自己的测试,并且只要你在那个特定的库中更改某些东西就应该运行它们。

这个想法是你应该只测试自己的代码。如果链接外部静态库,该库的作者负责正确单元测试此部分。您也是外部库的作者这一事实不会对此产生影响。