我们目前面临的问题是我们的UITest需要很长时间。
原因是从最后一个UITest终止应用程序需要20到50秒。使用90 UITest,我们目前在一轮测试中达到90分钟(由于限制为90分钟,目前我们的CI失败)。
这里是测试步骤的一小部分。
2018-05-18 11:15:34.757243+0200 OurAppUITests-Runner[46090:16633867] Currently executing: "Given the app is launched"
t = 0.21s Given the app is launched
t = 0.21s Open de.ourApp.ourApp
t = 0.26s Launch de.ourApp.ourApp
t = 0.26s Terminate de.ourApp.ourApp:46132
t = 32.21s Wait for de.ourApp.ourApp to idle
我们尝试在每个UITest结束时终止应用程序,但它只是将“等待”时间移到了UITest的末尾。
我们正在使用Cucumberish来生成小黄瓜文件的测试。但我们使用XCUITests运行测试。
我会感谢所有可能导致终止这么久的原因。
答案 0 :(得分:0)
Git Bisect向我们展示了在为测试目标启用Thread Sanitizer时问题已经开始。 禁用它修复了问题。
我可能会开始一个新的问题或/并打开一个关于此问题的雷达,因为当测试在Xcode中运行时,这个问题并没有发生。只有使用xcodebuild(fastlane)才能浮出水面。
答案 1 :(得分:0)
我没有您问题的确切答案,但有一种替代方法可以解决您的时间限制问题。
您可以使用并行化,它可以同时在 3 个不同的模拟器中运行特征文件。为此,您需要编辑测试目标方案。在方案编辑菜单中选择构建选项卡并选中并行构建框。
现在尝试测试,终止仍然需要时间,但现在至少终止 3 个测试而不是一个。