ios - UI 测试 Mach-O 链接器错误

标签 ios testing swift3 linker mach-o

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

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

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

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

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

  • 工作区:
    • 项目:我的项目
      • Foo 类
      • 类(class)酒吧
    • 目标:单元测试
      • 类 RandomObjectGenerator
      • 单元测试 1
    • 目标:用户界面测试
      • 界面测试 1

请注意,RandomObjectGenerator 类分配给以下目标: RandomObjectGenerator Target

因此,我的单元/UI 测试类总是指定 @testable import MyProject

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

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

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

最佳答案

你的问题目前不容易解决......你必须做一些疯狂的事情来绕过这个限制,例如:将所有代码包含在你的 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/

相关文章:

ios - 如何让 Spotlight 更容易找到自定义 iOS 应用程序

java - 如果部分测试花费的时间太长,如何从 JUnit 测试返回到 main 方法

ios - swift 3 : only nil values in destination view controller of segue

node.js - TestCafe-错误 : Cannot establish one or more browser connections

arrays - Swift 3 对元组数组进行排序

ios - 如何将字典值传递给数组?

iOS 使用 UIActivityViewController 将图像和 URL 共享到 whatsapp

iphone - 如何限制 UITextView 中的字符?

UITabBarItem 中的 iOS 自定义动画

ios - 你如何更新 SignalR-Objc