无法在测试框架中使用XCTUnwrap

问题描述 投票:0回答:1

我正在尝试创建一个包含一些扩展的测试框架。通过遵循此处的建议,我可以在框架中使用import XCTesthttps://stackoverflow.com/a/35102636/3475906

但是,每当我尝试使用XCTUnwrap时,都会出现错误:Use of unresolved identifier 'XCTUnwrap'

基本上,我想要这样的东西:

import XCTest

extension Optional {
    func unwrap() -> Wrapped {
        do {
            return try XCTUnwrap(self)
        } catch {
            print("Handle error")
        }
    }
}

有人有什么想法吗?

ios swift unit-testing frameworks xctest
1个回答
1
投票

XCTUnwrap API仅在主要测试包目标中可用,而在其他库或框架中不可用。有两种方法可以解决此问题:

  1. 将您的Optional扩展名移至主捆绑包,这显然不是您想要执行的操作:)
  2. 在测试框架目标中修改以下构建设置:
SYSTEM_FRAMEWORK_SEARCH_PATHS = (
    "$(inherited)",
    "$(PLATFORM_DIR)/Developer/Library/Frameworks",
);
LIBRARY_SEARCH_PATHS = (
    "$(inherited)",
    "$(PLATFORM_DIR)/Developer/usr/lib",
);
SWIFT_INCLUDE_PATHS = "$(inherited) $(PLATFORM_DIR)/Developer/usr/lib"
© www.soinside.com 2019 - 2024. All rights reserved.