Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios app.build';s gcda/gcno文件vs appTests.build';s gcda/gcno文件?_Ios_Iphone_Objective C_Xcode - Fatal编程技术网

Ios app.build';s gcda/gcno文件vs appTests.build';s gcda/gcno文件?

Ios app.build';s gcda/gcno文件vs appTests.build';s gcda/gcno文件?,ios,iphone,objective-c,xcode,Ios,Iphone,Objective C,Xcode,我正在尝试为iOS项目配置代码覆盖率。我已经为我的应用程序目标和测试目标设置了项目设置、“生成测试覆盖率文件”和“仪器程序流”。我还使用Coverstory的gcovr flush hack在iOS7中生成gcda文件 我的问题是,当我在清理过的构建上运行测试时,我会在两个目录中看到gcda和gcno文件(对于我的每个项目源文件,例如AppDelegate.gcda,位于两个目录中): ~/Library/Developer/Xcode/DerivedData/MyApp-/Build/Inte

我正在尝试为iOS项目配置代码覆盖率。我已经为我的应用程序目标和测试目标设置了项目设置、“生成测试覆盖率文件”和“仪器程序流”。我还使用Coverstory的gcovr flush hack在iOS7中生成gcda文件

我的问题是,当我在清理过的构建上运行测试时,我会在两个目录中看到gcda和gcno文件(对于我的每个项目源文件,例如AppDelegate.gcda,位于两个目录中):

~/Library/Developer/Xcode/DerivedData/MyApp-/Build/Intermediates/MyApp.Build/Debug iphonesimulator/MyApp.Build/Objects normal/i386/

~/Library/Developer/Xcode/DerivedData/MyApp-/Build/Intermediates/MyApp.Build/Debug iphonesimulator/MyAppTests.Build/Objects normal/i386/


在每个目录中生成gcno和gcda文件的方式有什么区别?(有一些不同,因为如果我在Coverstory中查看文件,某些文件的覆盖范围是不同的)。

您有两个不同的目标,并且您为两个测试目标“Instrument Program Flow”启用了“Generate Test coverage files”标志

当构建在模拟器上运行时,MyApp.build包含代码覆盖率,MyAppTests显示实际的测试代码覆盖率

前一种方法在某些情况下非常有用,例如,您需要确定不使用代码的哪个部分

为了避免混淆,您应该始终在主目标中启用标志。当您运行单元测试用例时,它将覆盖同一文件夹中的gcda文件,始终为您提供两种配置的最新信息