cocoapods 库的代码覆盖率 - iOS 单元测试

Posted

技术标签:

【中文标题】cocoapods 库的代码覆盖率 - iOS 单元测试【英文标题】:Code coverage with cocoapods library - iOS Unit Test 【发布时间】:2016-10-18 07:23:45 【问题描述】:

在 Xcode 7 中,cocoapods 库的库具有排除代码覆盖率。

但在 Xcode 8 中,该库将包含代码覆盖率。

我是否可以在代码覆盖范围内排除该库?

示例: 安装吊舱“TPKeyboardAvoiding” TPKeyboardAvoidingScrollView.m 包含在代码覆盖范围内。

【问题讨论】:

How to exclude Pods from Code Coverage in Xcode的可能重复 【参考方案1】:

您应该为不想被覆盖的目标禁用代码覆盖。如果您希望您的所有 pod 不包含在代码覆盖范围内,您可以添加到您的 podfile 中

#   Disable Code Coverage for Pods projects
post_install do |installer_representation|
   installer_representation.pods_project.targets.each do |target|
       target.build_configurations.each do |config|
            config.build_settings['CLANG_ENABLE_CODE_COVERAGE'] = 'NO'
       end
   end
end

这将禁用您的 Pod 目标的代码覆盖率,例如 this image

如果您现在使用command + U 运行测试

我在我的一个项目中尝试使用这个 pod,它对我有用。我正在使用 Xcode 版本 8.1 (8B62)

无论如何,对于像 Cartography 这样的其他 pod,我仍在努力解决同样的问题。有一个特定的设置(我还没有发现)它似乎覆盖了CLANG_ENABLE_CODE_COVERAGE,并且测试仍然为此生成代码覆盖率。

如果这能解决您的问题,请告诉我。

【讨论】:

看起来 pod 是否在 Swift 中 - 它不会被隐藏,只有 ObjC pod 被隐藏 别忘了运行pod install

以上是关于cocoapods 库的代码覆盖率 - iOS 单元测试的主要内容,如果未能解决你的问题,请参考以下文章

cocoapods_第二篇

CocoaPods的使用及安装

IOS -> cocoapodspod

CocoaPods安装和使用笔记 by STP

愉 | iOS CocoaPods私有库

[iOS开发]关于cocoapods的使用