无法在测试框架中使用 XCTUnwrap
Not able to use XCTUnwrap in Test Framework
我正在尝试创建一个包含一些扩展的测试框架。我可以按照此处的建议在框架中 import XCTest
:
但是,每当我尝试使用 XCTUnwrap 时,我都会收到错误消息:Use of unresolved identifier 'XCTUnwrap'
基本上,我想要这样的东西:
import XCTest
extension Optional {
func unwrap() -> Wrapped {
do {
return try XCTUnwrap(self)
} catch {
print("Handle error")
}
}
}
有人知道吗?
XCTUnwrap
API 仅在主要测试包目标中可用,在其他库或框架中不可用。有两种方法可以解决此问题:
- 将您的
Optional
扩展移至主包,这显然不是您想要做的事情:)
- 修改测试框架目标中的以下构建设置:
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"
至少从 Xcode 11.4 开始,您可以启用:
ENABLE_TESTING_SEARCH_PATHS = 是
在您的项目或目标的“构建设置”中。
我正在尝试创建一个包含一些扩展的测试框架。我可以按照此处的建议在框架中 import XCTest
:
但是,每当我尝试使用 XCTUnwrap 时,我都会收到错误消息:Use of unresolved identifier 'XCTUnwrap'
基本上,我想要这样的东西:
import XCTest
extension Optional {
func unwrap() -> Wrapped {
do {
return try XCTUnwrap(self)
} catch {
print("Handle error")
}
}
}
有人知道吗?
XCTUnwrap
API 仅在主要测试包目标中可用,在其他库或框架中不可用。有两种方法可以解决此问题:
- 将您的
Optional
扩展移至主包,这显然不是您想要做的事情:) - 修改测试框架目标中的以下构建设置:
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"
至少从 Xcode 11.4 开始,您可以启用:
ENABLE_TESTING_SEARCH_PATHS = 是
在您的项目或目标的“构建设置”中。