如何在Xcode 6 beta3中按顺序运行测试

时间:2014-07-11 14:30:38

标签: objective-c xcode swift integration-testing

从我所看到的情况来看,Xcode看起来像是从给定的TestCase顺序运行测试,而是从不同的TestCase并行运行。

是否可以配置项目/目标,以便所有测试按顺序运行? 例如,这对于运行影响其他测试的副作用的各种集成测试很有用。 (例如,访问相同的数据库表)

编辑:清除一些混淆:我不是在谈论强制执行特定的测试序列,只是确保测试不会相互干扰。

由于

2 个答案:

答案 0 :(得分:1)

如果您需要对象具有一致的测试开始状态,我建议您添加对测试类的setUp方法的调用。 setUp在测试类中的每个测试之前调用。

如果您需要套件以特定顺序运行,则听起来您没有进行单元测试并且正在运行集成测试。您可以尝试使用setUp初始化较低级别的对象。如果您只对更高级别的行为感兴趣,请尝试模拟。 OCMock框架可用于Objective-C。

答案 1 :(得分:0)

不确定这是否解决了您的问题,但您是否可以设法将测试放入串行队列?它允许您同时运行它们,等待清除障碍。

func dispatch_barrier_async(_ queue: dispatch_queue_t,
                      _ block: dispatch_block_t)

https://developer.apple.com/library/ios/documentation/Performance/Reference/GCD_libdispatch_Ref/#//apple_ref/c/func/dispatch_barrier_async

或者,您可以设置多个上下文并在之后合并它们。