xcrun llvm-cov 显示:未找到覆盖率数据
xcrun llvm-cov show: No coverage data found
xcrun llvm-cov show 命令出现return错误的可能原因是什么:无法加载覆盖范围:没有这样的文件或目录?
我有一个 iOS 库。
lib 构建的结果是 *.a 二进制文件。
我在项目中有一个方案,其中也包含 GTest 单元测试。
所以我执行:
xcodebuild test \
-sdk iphonesimulator \
-destination "$DESTINATION" \
-derivedDataPath "$ROOT"/DerivedData \
-scheme unitTestsTarget \
-project "$ROOT"/libProject.xcodeproj \
-enableCodeCoverage YES
之后
xcrun llvm-profdata merge .../Coverage.profdata .../EA8FF09E-3BFE-42D2-BFA7-A39D69E7F688-45921.profraw -output ./merged.profdata
和
xcrun llvm-cov show -format=html -use-color=true -output-dir=./coverage-html -instr-profile ./merged.profdata -object ./DerivedData/Build/Products/Debug-iphonesimulator/myLib.a -ignore-filename-regex='\''.*\.h'\'''
最后一个命令给了我
error: ./myLib.a: Failed to load coverage: No such file or directory
我有 3 个结构相似的模块,其中一个工作正常,另外 2 个给我这个错误。
如果有人可以提示此错误的可能原因以及尝试的可能解决方案,我将不胜感激。
我的静态库遇到了 Xcode 正在构建的相同问题。
经过一些探索,我注意到传入构建期间生成的显式 .o
文件似乎可行,但输出仅限于该文件。
xcrun llvm-cov report \
--instr-profile=Build/ProfileData/40F9DE10-F76F-46C0-A8D2-E1D427DE08A5/Coverage.profdata \
--object Build/Intermediates.noindex/MyStaticLib.build/Debug-iphonesimulator/MyStaticLib.build/Objects-normal/x86_64/some_file.o
我尝试手动 link Build 文件夹中存在的所有这些 .o
文件,如下所示,以生成组合目标文件:
ld -r -o CombinedObject.o \
Build/Intermediates.noindex/MyStaticLib.build/Debug-iphonesimulator/MyStaticLib.build/Objects-normal/x86_64/*.o
之后,我能够 运行 并获得覆盖率报告。
xcrun llvm-cov report \
--instr-profile=Build/ProfileData/40F9DE10-F76F-46C0-A8D2-E1D427DE08A5/Coverage.profdata \
CombinedObject.o
所以基本上我必须将单独的 .o
文件组合成一个组合的目标文件,然后 llvm-cov
才能处理。
xcrun llvm-cov show 命令出现return错误的可能原因是什么:无法加载覆盖范围:没有这样的文件或目录?
我有一个 iOS 库。 lib 构建的结果是 *.a 二进制文件。 我在项目中有一个方案,其中也包含 GTest 单元测试。
所以我执行:
xcodebuild test \
-sdk iphonesimulator \
-destination "$DESTINATION" \
-derivedDataPath "$ROOT"/DerivedData \
-scheme unitTestsTarget \
-project "$ROOT"/libProject.xcodeproj \
-enableCodeCoverage YES
之后
xcrun llvm-profdata merge .../Coverage.profdata .../EA8FF09E-3BFE-42D2-BFA7-A39D69E7F688-45921.profraw -output ./merged.profdata
和
xcrun llvm-cov show -format=html -use-color=true -output-dir=./coverage-html -instr-profile ./merged.profdata -object ./DerivedData/Build/Products/Debug-iphonesimulator/myLib.a -ignore-filename-regex='\''.*\.h'\'''
最后一个命令给了我
error: ./myLib.a: Failed to load coverage: No such file or directory
我有 3 个结构相似的模块,其中一个工作正常,另外 2 个给我这个错误。
如果有人可以提示此错误的可能原因以及尝试的可能解决方案,我将不胜感激。
我的静态库遇到了 Xcode 正在构建的相同问题。
经过一些探索,我注意到传入构建期间生成的显式 .o
文件似乎可行,但输出仅限于该文件。
xcrun llvm-cov report \
--instr-profile=Build/ProfileData/40F9DE10-F76F-46C0-A8D2-E1D427DE08A5/Coverage.profdata \
--object Build/Intermediates.noindex/MyStaticLib.build/Debug-iphonesimulator/MyStaticLib.build/Objects-normal/x86_64/some_file.o
我尝试手动 link Build 文件夹中存在的所有这些 .o
文件,如下所示,以生成组合目标文件:
ld -r -o CombinedObject.o \
Build/Intermediates.noindex/MyStaticLib.build/Debug-iphonesimulator/MyStaticLib.build/Objects-normal/x86_64/*.o
之后,我能够 运行 并获得覆盖率报告。
xcrun llvm-cov report \
--instr-profile=Build/ProfileData/40F9DE10-F76F-46C0-A8D2-E1D427DE08A5/Coverage.profdata \
CombinedObject.o
所以基本上我必须将单独的 .o
文件组合成一个组合的目标文件,然后 llvm-cov
才能处理。