文件正在library / Developer / Xcode / DerivedData / vIEwer-evgaabclrjcouyDWveuptwroeofm / Build / Intermediates / vIEwer.build / Coverage-iphonesimulator / vIEwer_generic / vIEwer_generic.build / Objects-normal / i386下生成.
所有(.o,.d,.dia,.gcda,.gdno)文件都在此目录下.没有子文件夹.
我可以使用Cover Story打开单个.gcda文件.现在我想生成一个可以使用cobertura查看的报告.
我正在尝试使用gcovr.在终端我到了上面的文件夹
Command: gcovr -r `pwd` -x -vOutput:(Several lines of similar output as below)Running gcov: 'gcov /Users/abc/library/Developer/Xcode/DerivedData/vIEwer-evgaabclrjcouyDWveuptwroeofm/Build/Intermediates/vIEwer.build/Coverage-iphonesimulator/vIEwer_generic/vIEwer_generic.build/Objects-normal/i386/file_name.gcda --branch-counts --branch-probabilitIEs --preserve-paths --object-directory /Users/abc/library/Developer/Xcode/DerivedData/vIEwer-evgaabclrjcouyDWveuptwroeofm/Build/Intermediates/vIEwer.build/Coverage-iphonesimulator/vIEwer_generic/vIEwer_generic.build/Objects-normal/i386' in '/Users/abc/library/Developer/Xcode/DerivedData/vIEwer-evgaabclrjcouyDWveuptwroeofm/Build/Intermediates/vIEwer.build/Coverage-iphonesimulator/vIEwer_generic/vIEwer_generic.build/Objects-normal/i386' Parsing coverage data for file /Users/abc/documents/Perforce/DPS-MacBookPro/depot/sandBox/VIEwer-Labatt/Blue/vIEwers/ipadvIEwer/iphone/apps/vIEwer/Classes/vIEw/zooming/file_name.mm Filtering coverage data for file /Users/abc/documents/Perforce/DPS-MacBookPro/depot/sandBox/VIEwer-Labatt/Blue/vIEwers/ipadvIEwer/iphone/apps/vIEwer/Classes/vIEw/zooming/file_name.mm Gathered coveraged data for 0 files <?xml version="1.0" ?> <!DOCTYPE coverage SYstem 'http://cobertura.sourceforge.net/xml/coverage-03.dtd'> <coverage branch-rate="0.0" line-rate="0.0" timestamp="1354144430" version="gcovr 2.4 (r2774)"> <sources> <source> /Users/abc/library/Developer/Xcode/DerivedData/vIEwer-evgaabclrjcouyDWveuptwroeofm/Build/Intermediates/vIEwer.build/Coverage-iphonesimulator/vIEwer_generic/vIEwer_generic.build/Objects-normal/i386 </source> </sources> <packages/> </coverage>
我看到一个警告:gcno:版本’404′,更喜欢’402′
请帮我弄清楚为什么gcovr无法生成报告.
解决方法 Tl; dr:LLVM输出的代码覆盖率文件比gcovr预期的更新.如果您使用链接版本(版本2.4)替换您的gcovr版本,那么它应该可以工作.也许.在LLVM之前,Xcode使用GCC作为其编译器. GCC包含一个名为’gcov’的工具,它生成了所有这些文件,.gcno,.gcda及其同类.
那时候,Macs预装了(现在仍然是)GCC版本4.2.因此,Xcode将使用gcc 4.2编译您的项目,然后运行gcov 4.2版,这将生成4.2版本的测试覆盖文件.这对gcovr来说很好,因为2.0之前的Alpha版本似乎是用gcov 4.2编写的.
但是,当苹果公司改用LLVM时,情况就变得很糟糕了.如果在目标设置中设置“生成测试覆盖率文件”标志,LLVM还会输出gcov样式的测试覆盖率文件.但是,LLVM默认输出gcov 4.4文件,而不是4.2.
This person认为如果我们可以告诉LLVM输出4.2版本的文件(我认为它可能在技术上可以),那么它将解决问题.这可能是真的,但我不知道该怎么做.
然而,我确实找到了自己的解决方案.我打开终端,检查了我的gcovr版本:
gcovr --version
它告诉我,我的gcovr版本实际上是gcovr 2.0-prerelease.此版本不支持gcov 4.4版本的测试覆盖率文件.
所以我发现了一个版本.
这是托管的页面:https://software.sandia.gov/trac/fast/wiki/gcovr
以下是脚本本身的链接:https://software.sandia.gov/trac/fast/export/2800/gcovr/trunk/scripts/gcovr
这个脚本是gcovr 2.4,它支持最高gcc 4.8.从理论上讲,它应该对LLVM输出的4.4版本的测试覆盖文件非常满意.这个警告现在完全消失了.试一试,让我知道它是怎么回事!
总结以上是内存溢出为你收集整理的ios6 – 如何使用gcovr for iOS生成Cobertura格式的xml文件?全部内容,希望文章能够帮你解决ios6 – 如何使用gcovr for iOS生成Cobertura格式的xml文件?所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)