XCode - 代码覆盖率?

时间:2011-05-01 22:51:14

标签: iphone objective-c xcode unit-testing code-coverage

我的iphone应用需要代码覆盖率。

任何人都可以提供有关如何获取Xcode 4代码覆盖率的详细信息吗?

由于

3 个答案:

答案 0 :(得分:10)

我有一个entry on my blog,涵盖了这个确切的主题。

它提供了有关如何在Xcode 4中启用GCOV以及如何使用CoverStory显示结果的分步指南。

答案 1 :(得分:9)

这些步骤会有所帮助。

  1. 创建一个新的构建配置('Coverage'),从'Debug'配置中复制。

  2. 打开主目标的构建设置,确保选择了新配置,并且:

    Enable “Generate Test Coverage Files”
    Enable “Instrument Program Flow”
    Add “-lgcov” to “Other Linker Flags”
    
  3. 使用Coverage模式编译应用程序。

  4. 检查应用程序包文件夹中的.gcno文件。

    覆盖 - iphonesimulator / applicationname.build /对象正常

    使用CoverStory打开.gcno文件。从中下载CoverStory http://code.google.com/p/coverstory/downloads/list

  5. 参考网站

答案 2 :(得分:3)

我找不到一个很好的例子,所以希望这会帮助其他人。

如果要从代码覆盖率生成HTML(生成.gcda文件后),可以安装lcov并使用以下命令:

function generate-codecoverage-html() {
    if [[ $1 == "-h" || ! $# -eq 2 ]]; then
        echo "    usage: $0 path/to/codecoverage/dir/ path/to/htmldir/"
        return
    fi

    timestamp=$(date)
    tmpfile="/tmp/codecoverage.info-$date"
    lcov --no-checksum --directory "$1" --capture --output-file "$tmpfile"
    genhtml --output-directory  "$2" "$tmpfile"
}