swift - 链接到二进制框架的单元测试
问题描述
我正在尝试使用 2 个框架构建一个应用程序:1 个已经编译,另一个是我项目的正常目标。我可以让应用程序运行,但我很难运行单元测试。我创建了一个包含 3 个元素的虚拟项目来简化事情:
框架 1 仅包含一个类:
public class DummyClassFramework1{
public static func helloWorld()-> String {
return "Hello from Framework 1"
}
}
框架 2 仅包含一个类:
import Framework1
public class DummyClassFramework2{
public static func helloWorld()-> String {
return DummyClassFramework1.helloWorld() //Calling a class from framework1
}
}
使用此视图控制器的演示应用程序:
import Framework2
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
print(DummyClassFramework2.helloWorld())
}
}
当我将所有内容放在同一个项目中时,一切正常:测试框架1,测试框架2,测试应用程序。但是,当我使用 lipo 生成胖 framework1 时,将 .framework 文件复制到包含 framework2 和演示应用程序的新项目中:我无法测试框架 2 和演示应用程序。但是我可以正常运行该应用程序。
启动测试时出现的错误是:
2018-09-13 11:51:04.645977+0200 xctest[34017:587268] 无法加载捆绑包“Framework1”,因为它已损坏或缺少必要的资源。尝试重新安装捆绑包。
解决方案
好吧,我实际上自己找到了解决方案:
进入目标 Framework2Test -> General -> Testing -> 在 Host Application 中选择 demo App。
由于demo App已经嵌入了二进制框架,测试会顺利运行
推荐阅读
- javascript - 手机允许访问传感器但浏览器不支持“陀螺仪”类型?
- r - 使用 terra 中的行/列索引对栅格进行子集化
- javascript - 如何创建以变量为键的对象?
- linux - 除 tty1 外,所有 tty 都会对我的显示器造成“无信号”
- python - 如何在代码中制作两个循环只有一个循环
- javascript - 为什么 JavaScript 不将数字转换为浮点数?
- python - 以特定方式从python中的字典中写入键值对
- algorithm - 重叠矩形凸包算法
- javascript - 点击里面时防止materializecss下拉菜单关闭?
- date - 自定义处理 AMAZON.DATE 槽类型以仅查找过去日期