Xcode 7 - 检测特定单元测试套件何时在iOS应用程序中运行

时间:2015-10-05 13:46:30

标签: xcode ios9 xctest

在Xcode 6 / iOS 8 SDK及更早版本中,我可以检查

的BOOL值

[NSBundle bundleWithIdentifier:@"com.mycompany.AppUnitTests"] != nil

从我的应用程序内部查看某组单元测试是否正在进行中。 (请注意,我正在运行我的测试作为应用程序测试,而不是逻辑测试。)从Xcode 7 / iOS 9 SDK开始,似乎不再有效 - 该包总是返回为nil。我怀疑Xcode 7已经改变了应用程序加载和运行单元测试的方式,但我不能指责它。任何人都知道在Xcode 7 / iOS 9 SDK下检测到这种方法的方法吗?

(顺便说一句,我知道我可以检查[NSBundle bundleForClass:NSClassFromString(@"XCTest")]以确定是否有任何单元测试正在进行中,但我有几个测试套件并且需要能够区分它们;因此通过捆绑ID进行检查谢谢。)

更新 行为的这种变化似乎是由于所描述的捆绑加载顺序的变化here。而且,正如Apple描述here+bundleWithIdentifier:只检索对已加载的包的引用 - 因此,当它尚未加载时,我无法获得对该包的引用。我想现在的问题是,如何在应用程序启动之前加载测试包?

0 个答案:

没有答案