UI 测试 Mach-O 链接器错误

UI Tests Mach-O Linker error

我正在尝试为我们正在开发的应用编写 UI 和单元测试。为了方便起见,我写了一个class,它从项目的classes中随机实例化对象,然后可以被所有测试classes使用。

我现在遇到的问题是,在构建 UI 测试时,Mach-o 链接器会抛出一些错误,提示 Symbols not found for architecture ... 并引用我项目的主要 classes和那个随机对象生成器。

奇怪的是,对于单元测试,同一个随机生成器工作得很好!

对于上下文:如果我 运行 实际设备或模拟器上的所有内容都没有关系(因此错误中的体系结构参数无关紧要)

我的项目是按以下方式设置的:

请注意,RandomObjectGenerator class 已分配给以下目标:

因此,我的 Unit/UI 测试 classes 总是指定 @testable import MyProject.

这是编译过程中抛出的错误信息:

在编辑器中,我可以很好地引用那些 classes...

如果有人有任何想法,我很乐意听到。我有点对这些错误失去了理智:(

你的问题目前不容易解决......你必须做一些疯狂的事情来绕过这个限制,例如:将所有代码包含在你的 UI 测试目标中......或提供从 UI 层访问您想要公开的逻辑的方法,以便它可以触发应用程序内部的内容。即重置所有数据层的按钮...伪造网络连接...无论您的测试是什么。

查看此答案以了解更多详细信息以及解决该问题的不同策略:

Linker error when accessing application module in UI tests in XCode 7.1