有一个15年的项目需要加功能(用的是ASIHttpRequest,哈哈),然后用Xcode8打开一运行就报错: 'SenTestingKit/SenTestingKit.h' file not found ,谷歌了很多方法还是不行,然后心一横(横之前备份了代码),把SenTestingKit.frame删除了```然后竟然可以运行了````
当时,不死心,我在想,如果不配置在test target里,直接放在编译app的target是不是就可以在真机跑起来呢,结果发现编译不过,SenTestingKit 不支持真机运行。 追溯源代码发现KIF的用例管理是基于系统测试的用例形成的,而系统这一套用例SenTestingKit 库是不支持真机的,代码如下: @interface KIFTestCase : XCTestCase 查看源码,发现GHUnit自己维护了一套类似SenTestingKit 库这样的用例管理,但是没有做UI控件的识别机制。因此还是停留在接口类型的测试能力上。 将KIF里用例管理依赖的SenTestingKit 库替换成GHUnit库,然后将GHUnit用例页面展示功能以插件的形式放在GT插件中。下面是在浏览器上实践的效果图: ?
在 Xcode 5 中 SenTestingKit 已经被 XCTest 完全取代,不过两者使用上没有太多区别,我们可以通过 Xcode 的 Edit -> Refactor -> Convert to XCTest 选项来切换到新的测试框架 我们将要使用的另一个工具是一个测试框架,开发者工具的一部分:Sente 的 SenTestingKit。 SenTestingKit 会运行你的测试。通过 SenTestingKit,你将测试组织在类中。你需要给每一个你想测试的类创建一个测试类,类名以 Tests 结尾,它反应了这个类是干什么的。 注意,前缀 ST 源自于 SenTestingKit。这些宏和Xcode 集成,会把失败显示到侧边面板的Issues导航栏中。
众所周知苹果在Xcode5中引入了XCTest框架替换了原来的SenTestingKit。这也显示了苹果一直致力于在iOS开发中集成更方便可用的测试。