从我所看到的情况来看,Xcode看起来像是从给定的TestCase顺序运行测试,而是从不同的TestCase并行运行。
是否可以配置项目/目标,以便所有测试按顺序运行? 例如,这对于运行影响其他测试的副作用的各种集成测试很有用。 (例如,访问相同的数据库表)
编辑:清除一些混淆:我不是在谈论强制执行特定的测试序列,只是确保测试不会相互干扰。由于
答案 0 :(得分:1)
如果您需要对象具有一致的测试开始状态,我建议您添加对测试类的setUp方法的调用。 setUp在测试类中的每个测试之前调用。
如果您需要套件以特定顺序运行,则听起来您没有进行单元测试并且正在运行集成测试。您可以尝试使用setUp初始化较低级别的对象。如果您只对更高级别的行为感兴趣,请尝试模拟。 OCMock框架可用于Objective-C。
答案 1 :(得分:0)
不确定这是否解决了您的问题,但您是否可以设法将测试放入串行队列?它允许您同时运行它们,等待清除障碍。
func dispatch_barrier_async(_ queue: dispatch_queue_t,
_ block: dispatch_block_t)
或者,您可以设置多个上下文并在之后合并它们。