ios - Realm Swift 单元测试错误 : Missing required modules: 'Realm.Private' , 'Realm'?

标签 ios swift unit-testing realm

我需要将我的应用程序的单元测试与 Realm Swift 集成。但即使添加了 import RealmSwift ,它仍然报告问题:

缺少必需的模块:“Realm.Private”、“Realm”

然后我尝试在“Build Phase/Link Binary With Libraries”中添加Realm & realmSwift,但是直接崩溃并报错:

类 _TtGC10RealmSwift4ListC3AMA14ROOperatorItem_ 在两个 ?? 中实现(0x7fdf040223b8) 和 ?? (0x7fdf040c8468)。将使用两者之一。哪一个未定义。

终于在其官网找到了解决方案https://www.mongodb.com/docs/realm/sdk/swift/test-and-debug/

enter image description here

但我使用 SPM 来管理包,而不是本地嵌入 RealmRealmSwift 框架,这样一来,父级是什么RealmSwift.framework 的路径

您可以下载一个简单的示例项目来重现 OneDrive 中的问题: RealmUnitTestError_GitHub

这是 stackoverflow 上的一个类似问题,但所有答案现在都不起作用:

"Missing required module 'XYZ'" on Unit Tests when using Swift Package Manager

以及 Github 上的一些讨论:

https://github.com/apple/swift-nio/issues/1128#issuecomment-527566361

提前非常感谢您!

最佳答案

似乎对此有一个“修复”,因此将其发布为完整性的答案。

问题是 Realm 库和 RealmSwift 库之间存在冲突和/或断开连接。修复方法是更改​​测试目标中的链接二进制文件

  1. 在主应用程序目标上,将 Realm 和 RealmSwift 库保留在 Linked Binary With Library 部分中 enter image description here

  2. 在测试目标上,从 Linked Binary With Library 部分中删除 RealmSwift 库,仅保留 Realm 库 enter image description here

关于ios - Realm Swift 单元测试错误 : Missing required modules: 'Realm.Private' , 'Realm'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75581435/

相关文章:

javascript - 单元测试时如何测试绑定(bind)函数是否相等?

unit-testing - Clojure.spec:基于生成器中其他字段的字段存在

Python、单元测试和模拟导入

ios - 保持 UIbuttons 背景图片的纵横比

ios - 将 UIPageViewController 与 UITableViewController 和 UINavigationController 集成到现有应用程序中

ios - 在 App 中使用的 GameCenter 图标

ios - Flutter iOS 推送未收到

swift - Swift 中的阴影与 Sketch 中的完全不同

ios - 自定义演示文稿转换在 iOS13 上崩溃

swift - 文件存在则返回,否则返回false