如何用 XCode4, SDK 5做单元测试(Unit Test)和Code Coverage

本文详细介绍了如何在Xcode4中优化OCUnit的使用,包括配置逻辑测试与应用测试的不同策略,以及如何通过设置特定的Build Setting实现代码覆盖率的跟踪与分析。此外,文章分享了生成GCDA文件的经验,并提供了使用CoverStory工具查看代码覆盖的指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


几经辗转,xcode 4总算把OCUnit融合的更好操作了。

http://developer.apple.com/library/ios/#documentation/Xcode/Conceptual/ios_development_workflow/135-Unit_Testing_Applications/unit_testing_applications.html%23//apple_ref/doc/uid/TP40007959-CH20-SW3

按照Apple提供的文档,基本可以把Unit test配置好。

不过中间有几条关键点,我的经验总结如下:

1) Logic Test 不需要像Xcode3时代一样复制原有的Target.也不要设置Test Host和Bundle  Loader. 但是要求所有测试的类文件都要Compile到测试Target中去。

2) Application Test 最好作为app target所在的scheme中的测试步骤

3) Logic Test 自己独立的Scheme (我还没有成功把Application Test和Logic test同时放在一个Scheme里面)

按照原来XCode3的方法,可以实现在编译后运行Unit Test的方法. 目前用Scheme的方法似乎还不能达到这一要求,虽然Build Setting里面有Test After Build但是还是不去执行Unit test如果哪位同学有更好的方式,也请告诉我。


写好了测试之后,就是要看Code Coverage了。

LLVM已经把Code Coverage的接口和原来的GCC统一了。所以大家所需要做的就是设置这几个参数

  •  "Compiler for C/C++/Objective-C" 写为 "Apple LLVM Compiler 3.0"
  •  "Generate Test Coverage Files" 设为 "Yes"
  •  "Instrument Program Flow" 设为 "Yes"
  • 然后在被测试的Target的build phase选项中假如一下lib: /Developer/usr/lib/libprofile_rt.dylib 
  • 通过Scheme 的Test 进行测试,结果应该在一个很偏僻的角落里,找到Project的Build目录然后在appName.build目录下找到刚刚测试编译出的targetName.build里面有个Object-Normal包含所有的gcda文件。我推荐用Cover Story来查看整个目录,可以看到源代码已经呗标注为不同颜色,被测试过的是绿色,红色为没有测试过的代码部分。

我的疑问,也许是我个设置结果,目前只有Application Test可是生成gcda文件。 Logic Test仍然没有Code Coverage. 不过已经可以起一定作用了。希望有新发现的朋友回复我的Post.先到这里吧。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值