有没有办法从代码覆盖范围排除 Pod? 我想只看到我编写的代码的代码覆盖率。
不是它应该重要,但我正在使用Xcode 8。
答案 0 :(得分:28)
这些步骤将有所帮助:
1。将这些行添加到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
2。运行pod install
现在你不会在测试覆盖范围内看到pod。
注意:它只排除了Objective-c pod但不包括Swift
答案 1 :(得分:9)
要禁用swift代码的覆盖,您可以使用SWIFT_EXEC的包装器(到目前为止,我使用Xcode 9.3验证了这一点)。因此,完整的解决方案(包括Swift)将如下:
附加到您的Podfile(并在之后调用pod install
):
post_install do |installer|
installer.pods_project.targets.each do |target|
target.build_configurations.each do |configuration|
configuration.build_settings['CLANG_ENABLE_CODE_COVERAGE'] = 'NO'
configuration.build_settings['SWIFT_EXEC'] = '$(SRCROOT)/SWIFT_EXEC-no-coverage'
end
end
end
将以下脚本(将其命名为SWIFT_EXEC-no-coverage)放在源树的根目录(必要时为chmod + x):
#! /usr/bin/perl -w
use strict;
use Getopt::Long qw(:config pass_through);
my $profile_coverage_mapping;
GetOptions("profile-coverage-mapping" => \$profile_coverage_mapping);
exec(
"/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swiftc",
@ARGV);
这是指向相应要点的链接:https://gist.github.com/grigorye/f6dfaa9f7bd9dbb192fe25a6cdb419d4
答案 2 :(得分:6)
答案 3 :(得分:2)
如果您正在开发一个pod并希望仅为您的代码覆盖:
export *
答案 4 :(得分:2)
答案 5 :(得分:0)
基于@Tung Fam的答案,为某些豆荚添加了排除列表
= A1:A1000 + (2/24)