app.build 的 gcda/gcno 文件与 appTests.build 的 gcda/gcno 文件?

Posted

技术标签:

【中文标题】app.build 的 gcda/gcno 文件与 appTests.build 的 gcda/gcno 文件?【英文标题】:app.build's gcda/gcno files vs appTests.build's gcda/gcno files? 【发布时间】:2014-03-05 03:46:40 【问题描述】:

我正在尝试为我的 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 中查看文件,某些文件的覆盖范围是不同的)。

【问题讨论】:

【参考方案1】:

您有两个不同的目标,并且为两个测试目标“仪器程序流程”启用了标志“生成测试覆盖文件”。

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

前一个在某些情况下很有用,例如您想确定未使用代码的哪一部分。

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

【讨论】:

以上是关于app.build 的 gcda/gcno 文件与 appTests.build 的 gcda/gcno 文件?的主要内容,如果未能解决你的问题,请参考以下文章

Heroku ENOENT:没有这样的文件或目录,stat '/app/build/index.html'

React / Express - 错误:ENOENT:没有这样的文件或目录,stat '/app/build/index.html'

FAILURE:构建失败并出现异常。 * 其中:构建文件 'D:\AProjects\flutter_app\android\app\build.gradle' 行:24

无法解析 Flutter 应用程序的 android/app/build.gradle 文件中的符号 GradleException

andriod学习-01

Android Studio怎么用