我正在尝试在我的项目中实现一些 UI 测试。只要我保持简单,一切都很好:记录测试用例,添加一些断言,然后运行测试。这很好用,但是当我尝试从测试内部访问应用程序模块时,链接器会引发错误(见下文):
在应用程序源文件中:
func foo() {
assert(true)
}
在 UI 测试中:
import XCTest
@testable import MyApp
func testExample() {
foo()
}
错误:
体系结构 i386 的未定义符号:“MyApp.foo () -> ()”,引用自:MyAppUITests.MyAppUITests.testExample (MyAppUITests.MyAppUITests)() -> () in MyAppUITests.old:未找到符号架构 i386 clang:错误:链接器命令失败,退出代码为 1(使用 -v 查看调用)
架构 x86_64 的未定义符号:“MyApp.foo () -> ()”,引用自:MyAppUITests.MyAppUITests.testExample (MyAppUITests.MyAppUITests)() -> () in MyAppUITests.o ld:未找到符号架构 x86_64
我在这里报告了类似的问题:
https ://forums.developer.apple.com/thread/20609
但没有解决方案。在我看来,@testable
根本无法正常工作。developer.apple.com上的那个人试图通过在设置中添加测试主机和捆绑加载器来解决问题,但我认为这不是正确的方法。我认为@testable
应该让一切正常工作,目前看起来不像。任何帮助表示赞赏!