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