dhr*_*hrm 32 xcode objective-c xcode5 xctest
当我在XCode 5中运行我的测试时,我的OS X应用程序的主窗口在运行测试时会在屏幕上显示几秒钟.为什么?即使我取消注释我的所有测试,它仍会打开我的主窗口.
Bry*_*hen 37
您正在运行应用程序测试,而不是逻辑测试.这意味着您的应用程序实例将启动,然后运行单元测试.这允许您执行一些需要您的应用程序运行的集成测试.
以下是设置应用程序测试和逻辑测试的指南.
如果你想将它改为逻辑测试(所以它运行得更快,不需要先启动你的应用程序):
Bundle
小智 10
多数民众赞成在右边,您必须从构建设置中删除"Bundle Loader"和"Test Host".
但是您必须将必要的实现文件添加到单元测试目标中.必要的文件是您要在单元测试用例中使用的文件.你需要这样做,因为在逻辑测试中,XCode不会编译整个应用程序.所以你的一些文件将丢失.
如果您遗漏了文件,则会显示错误消息:
Undefined symbols for architecture i386:
"_OBJC_CLASS_$_Module", referenced from:
objc-class-ref in Lobic Network.o
objc-class-ref in Logic_Unit.o
ld: symbol(s) not found for architecture i386
clang: error: linker command failed with exit code 1 (use -v to see invocation)
Run Code Online (Sandbox Code Playgroud)
您可以通过选择实施文件并调出文件检查器来添加缺少的文件.将有一个名为"目标成员资格"的部分,您也可以将文件目标成员资格设置为单元测试.
随着XCTest,应用程序文件不要需要包含XCTest目标之内.XCTest包与应用程序链接,后者在运行时使这些文件可用.
要使其工作,请确保编译器选项" 默认情况下隐藏的符号 " 在应用程序目标中设置为NO.
这是一篇博客文章,屏幕截图清晰:http: //zmcartor.github.io/code/2014/02/24/slim-xctest-targets
这种方法的优点是测试目标的构建速度要快得多.
| 归档时间: |
|
| 查看次数: |
18945 次 |
| 最近记录: |