【问题标题】:Cannot load underlying module for unit tests无法为单元测试加载底层模块
【发布时间】:2018-07-09 22:04:40
【问题描述】:

我目前正在为我的 iOS 课程开发一个 swift 框架。

这是项目结构:

我想测试我的名为 SimpleCoreData 的类,但是当我转到生成的 ESGISimpleCoreDataTests 文件时,不接受导入(也生成):

无法为“ESGISimpleCoreData”加载底层模块

所以我检查了this other topic,并验证了目标,但一切似乎都很好。

框架:
测试构建阶段:

我是从 Swift 开始的,所以我可能错过了一些明显的东西。你能帮我解决这个问题吗?

【问题讨论】:

  • 尝试核对您的派生数据并重建。另一个建议是尝试将@testable import ESGISimpleCoreData 添加到 ESGISimpleCoreDataTests.swift 文件的顶部。
  • @Adrian 生成的测试文件已经以这种方式导入了 ESGISimpleCoreData。 “核对您的派生数据”是什么意思?

标签: ios swift unit-testing frameworks xctest


【解决方案1】:

最后,在检查每个提交以查看它在哪里中断后,结果发现问题可能来自我创建的单元测试文件,它有同样的问题(可能没有正确创建它),然后只有删除了它的引用,而不是将其移至垃圾箱。
所以我向后提交,使用生成的默认单元测试文件,它工作。

【讨论】:

  • 只是想在这里补充一些信息。我遇到了同样的问题,和你做了同样的事情,它得到了解决。几个小时后我所做的是打开 Finder 并查找是否有任何文件夹或文件剩余。我找到了一个“ProjectTest”文件夹,里面没有文件。我刚刚删除它,一切都得到了修复。
【解决方案2】:

这是这个主题的另一个变体。 ??

我将一个文件文件夹导入到我的主项目中,该文件夹中有一个文件,其中包含 import XCTest。

编译器没有标记这个问题,直到我使用了finder(比如CodingMouse)我才看到它。

我将这个测试文件移动到 UITests 文件夹并将其“目标成员”更改为 UITests 模块后,我进行了清理和构建以使一切恢复正常。

因此,由此得出的结论是编译器不会总是直接将您指向实际问题。使用查找器,扫描您的文件并确认没有任何可疑或不合适的地方。 ?

【讨论】:

    猜你喜欢
    • 2015-10-18
    • 2016-07-13
    • 2015-07-10
    • 1970-01-01
    • 2015-12-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-06
    相关资源
    最近更新 更多