链接到二进制框架的单元测试

时间:2018-09-13 09:54:32

标签: swift xcode unit-testing

我正在尝试使用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())
    }
}

当我将所有内容都放在同一个项目中时,所有内容都可以正常工作:测试framework1,测试framework2,测试应用程序。但是,当我用lipo生成胖的framework1时,将.framework文件复制到包含framework2和演示应用程序的新项目中:我无法测试框架2和演示应用程序。但是我可以正常运行该应用程序。

启动测试时出现的错误是:

2018-09-13 11:51:04.645977 + 0200 xctest [34017:587268]无法加载捆绑包“ Framework1”,因为它已损坏或丢失了必要的资源。尝试重新安装捆绑软件。

1 个答案:

答案 0 :(得分:0)

实际上我自己找到了解决方案:

进入目标Framework2Test-> General-> Testing->在Host Application中选择demo App。

由于演示应用程序已经嵌入了二进制框架,因此测试将顺利运行