XCode - Code Coverage?

2019-01-30 16:00发布

问题:

I need code coverage for my iphone app.

Can anyone provide detailed information on how to get code coverage for Xcode 4?

Thanks

回答1:

I have an entry on my blog which covers this exact topic.

It provides a step-by-step guide on how to enable GCOV in Xcode 4 as well as how to use CoverStory for displaying the results.



回答2:

These steps will help.

  1. Create a new build configuration (‘Coverage’), duplicated from the ‘Debug’ configuration.

  2. Open up build settings for the main target, make sure your new configuration is selected, and:

    Enable “Generate Test Coverage Files”
    Enable “Instrument Program Flow”
    Add “-lgcov” to “Other Linker Flags”
    
  3. Compile application with Coverage mode.

  4. Check .gcno files from your application bundle folder.

    Coverage-iphonesimulator/applicationname.build/Objects-normal

    open .gcno files with CoverStory. Download CoverStory from
    http://code.google.com/p/coverstory/downloads/list

Reference Sites

  • http://atastypixel.com/blog/unit-testing-and-coverage-with-xcode/
  • http://milesdennis.blogspot.co.uk/2011/04/code-coverage-in-xcode-4.html


回答3:

I couldn't find a good example of this, so hopefully this will help someone else.

If you want to generate HTML from your code coverage (once you get your .gcda files generated), you can install lcov and use these commands:

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"
}