从我所看到的看来,Xcode按顺序运行来自给定TestCase的测试,但是并行运行不同的TestCase。如何在Xcode 6 beta3中按顺序运行测试
是否可以配置项目/目标以便所有测试顺序运行?例如,这对运行影响其他测试的副作用的各种集成测试会很有用。 (例如,访问相同的数据库表)
编辑:清除一些混淆:我不是说强迫测试的特定顺序,而是确保测试不会互相干扰。
感谢
从我所看到的看来,Xcode按顺序运行来自给定TestCase的测试,但是并行运行不同的TestCase。如何在Xcode 6 beta3中按顺序运行测试
是否可以配置项目/目标以便所有测试顺序运行?例如,这对运行影响其他测试的副作用的各种集成测试会很有用。 (例如,访问相同的数据库表)
编辑:清除一些混淆:我不是说强迫测试的特定顺序,而是确保测试不会互相干扰。
感谢
不知道这是否解决您的问题,但你可以设法把测试分为串行队列?它允许您同时运行它们,但尚未等待屏障被清除。
func dispatch_barrier_async(_ queue: dispatch_queue_t,
_ block: dispatch_block_t)
或者,你可以设置多个环境和事后合并。
如果您需要您的对象具有一致的测试起始状态,我会建议将调用添加到测试类的setUp方法。在测试课中的每个测试之前调用setUp。
如果你需要你的套件以特定的顺序运行,这听起来像你没有单元测试并正在运行集成测试。您可以尝试使用setUp来初始化较低级别的对象。如果您只对高级课程的行为感兴趣,请尝试模仿。 OCMock框架可用于Objective-C。
也许,但依靠测试A运行测试B之前运行通常是一个坏主意。 – trojanfoe
让我改正:我并不是说在执行B之前重新使用A的输出。我正在讨论确保A和B互不干扰(例如,因为它们使用公共数据库表,例如) –
我明白了。每个测试都应该是独立的,需要在运行之前按照他们喜欢的方式设置测试环境。这使得它们更加灵活,如果您正在修复该区域的某些东西,您可以重复运行一次测试。 – trojanfoe