Xcode:为你的项目集成单元测试时记得避开这些坑
2015-11-25 09:07
337 查看
背景:项目已经创建大约两年,编程语言是常见的 OC,项目里用到了cocoapods,也用到了Swift,现在单元测试打算用 Swift 语言(OC被抛弃只是时间问题)。
创建项目时记得勾选『include Unit Tests』
在项目创建时如果直接选择了包含单元测试是最方便的了。Xcode7 中的 UI 自动测试已经很完善,建议『include UI Tests』也一起选上。
已有项目,可以通过添加 target 的方式添加
选择 iOS Unit Testing Bundle
在 Test 分类下选择添加测试文件
在单元测试项目下,新建文件,选择 source 下的 Unit Test Case Class。
tips:如果几个test case都有一些共同的数据或逻辑,可以自己新建一个 test case 的基类,然后每个分别继承.
将要测试的 module 导入到 test case 中
import 完你需要测试的项目名称后,就可以在这个类里欢快的调用里面的类了。
使用 cocoapods 的同学注意了
在 import 完后很可能你的 swift『Bridging-Header.h』桥接文件会报如下的错:
failed to import bridging header 或者 SDWebImage/UIImageView+WebCache.h File Not Found Error
可能你不愿接受这个现实,clean了项目,重新build,或者重启了计算机。在模拟器中运行你的项目时心里默念:刚才还是好好的啊,明明能正常运行,为什么有错误!
是的。为此我已经抓掉了不少头发。
原因是:unit tests 是个单独的项目,所以一些项目配置必须重新配置一遍
在编辑区中选择 Tests 项目,在 build setting 中配置
因为Swift的桥接文件很可能在你第一次创建 Swift 类时 Xcode 自动帮你配置了项目,你可能没有意识到 build setting 其实已经更改了。
可以参照着自己项目的配置来重新配置一次。
可以参考这个链接下的回答:http://stackoverflow.com/questions/26116288/failed-to-import-bridging-header
cocoapods 同理,其实已经默认帮你配置了不少 search paths,自己手动贴进去吧,主要是下面这几个选项.
还差最后一步:Enable Testability
一切类都配置到项目后又出现了这个错误:
'Module was not compiled for testing'
在原来的项目里配置 Enable Testability 为 Yes
现在你就真的可以愉快的在 test case 中快活的测试任意一个项目中的类了
相关链接:'Module was not compiled for testing' when using @testable
创建项目时记得勾选『include Unit Tests』
在项目创建时如果直接选择了包含单元测试是最方便的了。Xcode7 中的 UI 自动测试已经很完善,建议『include UI Tests』也一起选上。
已有项目,可以通过添加 target 的方式添加
选择 iOS Unit Testing Bundle
在 Test 分类下选择添加测试文件
在单元测试项目下,新建文件,选择 source 下的 Unit Test Case Class。
tips:如果几个test case都有一些共同的数据或逻辑,可以自己新建一个 test case 的基类,然后每个分别继承.
将要测试的 module 导入到 test case 中
import 完你需要测试的项目名称后,就可以在这个类里欢快的调用里面的类了。
@testable import YQImageCompress
使用 cocoapods 的同学注意了
在 import 完后很可能你的 swift『Bridging-Header.h』桥接文件会报如下的错:
failed to import bridging header 或者 SDWebImage/UIImageView+WebCache.h File Not Found Error
可能你不愿接受这个现实,clean了项目,重新build,或者重启了计算机。在模拟器中运行你的项目时心里默念:刚才还是好好的啊,明明能正常运行,为什么有错误!
是的。为此我已经抓掉了不少头发。
原因是:unit tests 是个单独的项目,所以一些项目配置必须重新配置一遍
在编辑区中选择 Tests 项目,在 build setting 中配置
因为Swift的桥接文件很可能在你第一次创建 Swift 类时 Xcode 自动帮你配置了项目,你可能没有意识到 build setting 其实已经更改了。
可以参照着自己项目的配置来重新配置一次。
可以参考这个链接下的回答:http://stackoverflow.com/questions/26116288/failed-to-import-bridging-header
cocoapods 同理,其实已经默认帮你配置了不少 search paths,自己手动贴进去吧,主要是下面这几个选项.
还差最后一步:Enable Testability
一切类都配置到项目后又出现了这个错误:
'Module was not compiled for testing'
在原来的项目里配置 Enable Testability 为 Yes
现在你就真的可以愉快的在 test case 中快活的测试任意一个项目中的类了
相关链接:'Module was not compiled for testing' when using @testable
相关文章推荐
- 32,static对局部变量的影响
- Android Log工具之Luffy
- 【Maven】使用eclipse maven创建一个web project
- Xcode 历史版本官方下载地址 Xcode6 Xcode7
- 源码推荐(11.25):简单实用的无限循环轮播图,通用导航页
- watchOS 2 教程(二):列表
- ThinkPHP 域名部署
- powerdesiger创建mysql 数据库
- Android 数据存储方式(一.文件+内部外部存储吐血详解)
- MongoDB小结23 - 索引简介
- 初识Flutter
- jeecms网站内容页,获取固定的二级栏目
- (转)前端:将网站打造成单页面应用SPA
- JSP:自定义标签之防盗链标签开发
- Win7系统11月安全更新ISO镜像 微软官方下载
- Web开发者推荐的最佳HTML5/CSS3代码生成器
- light7(Mobile SUI)、FrozenUI、Zeptojs、Jquery完美结合的运作方式
- Git常用命令速查01 - 创建
- js中document.write的那点事
- IIS7 经典模式和集成模式的区别分析