所以,我手头已有项目,我正在尝试使用苹果提供的这个新的精美 UI 测试包来创建一些 UI 测试。问题是测试目标无法访问任何外部框架(我需要对其中之一进行一些设置)。在构建阶段添加框架和从主要目标应对框架搜索路径没有任何作用。
经过一天的浏览,我只发现了一件事,那就是“让事情有点不同”。通过将 Bundle Loader 和测试主机设置为 $(BUILT_PRODUCTS_DIR)/App.app/App ,我仍然无法将外部框架导入 test.m,但我可以导入为它们执行此操作的类自己。除非它没有破坏某些东西,否则一切都会很好而且花花公子。现在通过设置 Bundle 和 Host,我的 UI 测试无法执行启动方法:
[[[XCUIApplication alloc] init] launch];
它因错误而崩溃:断言失败:UI 测试失败 - 应用状态仍未终止。
最后我可以从设置中删除启动方法并手动触发每个测试,因此它每次在执行前都会重新启动应用程序,但这个解决方案似乎是错误的(尤其是对于一些更大的项目)。有谁知道处理这个问题的正确方法吗?
最佳答案
我为此所做的是向 XCUIApplication
添加一个环境变量以指定正在运行的 UI 测试。然后我在应用程序的主要部分对 #DEBUG
进行预处理器检查,然后检查是否设置了 test
环境变量;如果有,请执行 UI 测试的必要步骤。
从本质上讲,这将允许您根据需要如何配置您的应用程序以运行 UI 测试。这也意味着预处理器检查将完全删除发布版本的设置代码。
关于ios - 将外部框架连接到 UI 单元测试目标,iOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31045668/