代码覆盖率检查CodeCoverage

代码覆盖率检查主要用到的工具是gcov。这个工具会随着 Xcode 一起安装。
具体的安装位置为:/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
这个位置还包括了gcc编译器之类的工具。

  • 使用gcov命令生成代码覆盖率。
    gcda gcno .m 文件放在同一个文件夹下,运行
1
gcov sample.m

即可生成gcov文件,此文件是文本文件,可以直接用文本编辑器打开查看。

  • 关于@property的覆盖率
    有如下代码:
1
@property (nonatomic, strong) NSString *testStr;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 如果不对属性进行任何操作,覆盖率结果文件会显示@property那一行没有执行到

// 对属性赋值操作可以覆盖到
self.testStr = @"abc";

// 直接对属性进行赋值不会走到
_testStr = @"abc";

// 读取属性会走到
NSLog(@"%@", self.testStr);

// 同时读取属性和覆盖 get 方法不会走到
NSLog(@"%@", self.testStr);
- (NSString *)testStr{
return @"1";
}

//像这样重写 set 方法也不会走到。
self.testStr = @"1";
NSLog(@"%@", _testStr);
- (void)setTestStr:(NSString *)testStr{
_testStr = testStr;
}

总结:关于@property,编译器自动生成的 get set 方法必须要能走到一个,不然@property覆盖不到。


代码覆盖率检查CodeCoverage
https://dnacore.github.io/post/b0faf008-e47d-46a4-abfd-381ec60dda7d.html
作者
DNACore
发布于
2019年4月2日
更新于
2023年7月14日
许可协议