【问题标题】:UI Tests Mach-O Linker errorUI 测试 Mach-O 链接器错误
【发布时间】:2017-04-28 08:43:16
【问题描述】:

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

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

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

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

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

  • 工作区:
    • 项目:我的项目
      • Foo 类
      • 类栏
    • 目标:单元测试
      • 类 RandomObjectGenerator
      • 单元测试 1
    • 目标:UI 测试
      • UI 测试 1

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

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

这是编译期间抛出的错误消息:

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

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

【问题讨论】:

  • 我目前正在经历类似的事情 - 运气好能解决吗?

标签: ios testing swift3 linker mach-o


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-04-06
    • 2012-12-21
    • 2023-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多