我正在尝试为我们正在开发的应用程序编写 UI 和单元测试。为了方便起见,我编写了一个类,它随机实例化项目类中的对象,然后所有测试类都可以使用它。
我现在遇到的问题是,在构建 UI 测试时,Mach-o 链接器会抛出一些错误,提示 Symbols not found for architecture ...
并引用我项目的主要类和那个随机对象生成器。
奇怪的是,对于单元测试,同一个随机生成器工作得很好!
对于上下文:如果我在实际设备或模拟器上运行所有内容都没有关系(因此错误中的体系结构参数无关紧要)
我的项目是按以下方式设置的:
- 工作区:
- 项目:我的项目
- Foo 类
- 类(class)酒吧
- 目标:单元测试
- 类 RandomObjectGenerator
- 单元测试 1
- 目标:用户界面测试
- 界面测试 1
- 项目:我的项目
请注意,RandomObjectGenerator 类分配给以下目标:
因此,我的单元/UI 测试类总是指定 @testable import MyProject
。
在编辑器中,我可以很好地引用这些类...
如果有人有任何想法,我很乐意听到。我有点对这些错误失去了理智:(
最佳答案
你的问题目前不容易解决......你必须做一些疯狂的事情来绕过这个限制,例如:将所有代码包含在你的 UI 测试目标中......或提供访问你的逻辑的方法想要从 UI 层公开,以便它可以触发应用程序内部的内容。即重置所有数据层的按钮...伪造网络连接...无论您的测试是什么。
查看此答案以了解更多详细信息以及解决该问题的不同策略:
Linker error when accessing application module in UI tests in XCode 7.1
关于ios - UI 测试 Mach-O 链接器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43675846/