使用CocoaPods库进行代码覆盖率测试 - iOS单元测试

3
在Xcode 7中,使用cocoapods库时可以使用exclude来排除代码覆盖率。但是在Xcode 8中,库将包含在代码覆盖率中。是否有任何方法可以在代码覆盖率中排除库?
例如: 安装pod 'TPKeyboardAvoiding' TPKeyboardAvoidingScrollView.m将包含在代码覆盖率中。

可能是如何在Xcode中排除Pods的代码覆盖范围的重复问题。 - Paul Roub
1个回答

3

如果您不希望覆盖某些目标,请禁用代码覆盖。如果您希望所有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 目标的代码覆盖率,就像这张图片中所示。
如果您现在使用 command + U 运行测试
我在我的一个项目中尝试了这个 pod,它对我有用。 我正在使用 Xcode 版本 8.1(8B62)
无论如何,我仍然在为其他 pod(例如Cartography)而奋斗。 似乎有一个特定的设置(我还没有发现),它似乎会覆盖 CLANG_ENABLE_CODE_COVERAGE ,并且测试仍会产生该代码覆盖率。
如果这可以解决您的问题,请告诉我。

5
如果Pod是用Swift编写的,它就不会被隐藏,只有ObjC的Pod才会被隐藏。 - Islam
不要忘记运行 pod install - Tung Fam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接