gpt4 book ai didi

ios - 使用带有 logicTestBucketSize 的 XCTool 运行时测试失败

转载 作者:行者123 更新时间:2023-11-29 02:16:14 27 4
gpt4 key购买 nike

我有一个包含超过 1000 个单元测试的项目,并且正在考虑通过使用 xctool 的并行化选项来加速构建。

所以我打开它并将 logicTestBucketSize 设置为 50。测试运行,但有些失败,但在不使用此选项时不会失败。

我的问题:存储桶是在自己的沙箱中独立运行,还是共享单元测试可能设置的全局变量?这可能解释了测试之间的一些交叉污染

最佳答案

是的。并行运行测试时,xctool 将在单个进程中运行每个桶的测试,并在不同进程中同时运行多个桶。此外,您可以使用 -bucketBy class 选择是在案例还是类的基础上进行分桶。除非您有包含许多测试用例的非常大的测试类,否则您可能应该使用类。

您的测试现在可能会失败,尽管以前不会,因为:

  1. 测试用例依赖于先前测试用例设置的全局状态,即使来自不同的测试类,只要它被分组到相同的二进制文件中。该测试现在会失败,因为测试的运行顺序可能不同,或者根本不运行。
  2. 测试改变了全局状态并导致后面的测试失败。以前这可能不是问题,因为该测试是在可能受影响的其他测试已经运行之后运行的。

处理第一种类型的故障的一个好方法是使用桶大小 1 运行(无论是逐类模式还是逐个桶模式,具体取决于您稍后将运行的模式)。

关于ios - 使用带有 logicTestBucketSize 的 XCTool 运行时测试失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28718941/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com