首页 > 解决方案 > 运行单元测试用例时无法加载模块

问题描述

我正在构建一个框架(Provider),在这个框架中,我使用了库(sdk.a)。这个库是用 Objective C 编写的。我的框架是用 Swift 编写的,所以我使用了modulemap. 在modulemap我命名库 SDK

在我使用的代码中

import SDK //this line issue error when run unit testcase
class Manager{
    public static let shared = Manager()
    private var agent: LocalAgent? //SDK class
    public connect: Bool
    //no issue it works fine
     private func find(_ device: Device) {
        //more logical codes
        self.connect = true
    } 
}

当我构建框架或从另一个应用程序使用框架时,上面的代码工作正常。

问题是当我testConnect()从单元测试用例文件运行时,Manager.swift 文件import SDK语句中的编译器发出错误“没有这样的模块‘SDK’”

测试用例文件:ManagerTest.swift

@testable import SDK
@testable import Provider
func testConnect(){
    let manager = Manager.shared
    manager.find(device)
}

标签: swift

解决方案


您需要SDK.a为目标设置目标成员资格ProviderTests。喜欢,

  1. 选择SDK.a文件
  2. 添加勾选该文件的测试目标成员资格
  3. 然后清理构建并再次运行测试。

图片来源:中等帖子


推荐阅读