Objective c 如何在已安装的Cocoa应用程序上运行Gcov?
我有一个Cocoa应用程序,它使用安装程序。我希望能够在代码上运行代码覆盖率(安装后) 这不是通常的单元测试场景,其中单个二进制文件将运行一组测试。相反,所讨论的测试将在运行时与UI和应用程序后端交互,因此我理想情况下希望能够在知道Gcov正在对其进行评测的情况下启动应用程序,然后对其运行测试 有什么想法吗 更新 感谢mustISignUp。为了澄清我为什么提出这个问题: 我犯的错误是认为对象、.gcno和.gcda文件必须与二进制文件一起安装(从而使安装程序变得困难)。碰巧,文件的原始位置与检测代码一起硬连接到代码中 我使用的解决方案是在构建机上压缩代码,并将其放在测试机的磁盘上Objective c 如何在已安装的Cocoa应用程序上运行Gcov?,objective-c,cocoa,xcode,code-coverage,gcov,Objective C,Cocoa,Xcode,Code Coverage,Gcov,我有一个Cocoa应用程序,它使用安装程序。我希望能够在代码上运行代码覆盖率(安装后) 这不是通常的单元测试场景,其中单个二进制文件将运行一组测试。相反,所讨论的测试将在运行时与UI和应用程序后端交互,因此我理想情况下希望能够在知道Gcov正在对其进行评测的情况下启动应用程序,然后对其运行测试 有什么想法吗 更新 感谢mustISignUp。为了澄清我为什么提出这个问题: 我犯的错误是认为对象、.gcno和.gcda文件必须与二进制文件一起安装(从而使安装程序变得困难)。碰巧,文件的原始位置与检
lcov
(或者只是gcov
)可以从那里运行。或者,将在磁盘上创建.gcda文件,并且必须将它们复制回包含源代码的计算机
无论采用哪种方式,源代码都不必在安装和运行时出现,但如果您希望以lcov方式返回结果,则生成的覆盖率计数器文件必须与源代码保持一致。应用程序需要使用正确的GCC标志进行编译,该标志将在代码中插入评测指令。它不是你可以打开和关闭的东西。ie在编译时修改代码以输出覆盖率信息
因此,如果您使用正确的标志编译应用程序,它将发出覆盖率数据,如果您不使用,它将不会发出覆盖率数据(对于您要发布的应用程序,您肯定不希望它发出覆盖率数据)。应用程序需要使用正确的GCC标志编译,这将在代码中插入分析指令。它不是你可以打开和关闭的东西。ie在编译时修改代码以输出覆盖率信息 因此,如果您使用正确的标志编译应用程序,它将发出覆盖率数据,如果您不这样做,它将不会发出覆盖率数据(对于您要发布的应用程序,您当然不希望它发出覆盖率数据)