前提条件
- Xcode4でカバレッッジレポートを出していた
- 対象osが6も含んでいる
解決方法
- ターゲットをios7にすると *.gcda ファイルが作成されないのでカバレッジが出せない。
なので、ターゲットを6.1などにする。XCTestObserverというものでやるらしい。
http://stackoverflow.com/questions/19136767/generate-gcda-files-with-xcode5-ios7-simulator-and-xctest - nameはxcodeの左上のスキーマ部分に表示されている文言と合わせる
- jenkinsでも、build時に以下のシェルを叩くようにする
- jenkinsサーバーでは、権限で動作しないことがないように、workspaceなどにファイルを置くようにする
/usr/bin/xcodebuild -scheme SampleCommandLineUnitTest -workspace Sample.xcworkspace -destination OS=6.1,name='iPhone Retina (4-inch)' -configuration Debug clean build test
SYMROOT=${WORKSPACE}/build CONFIGURATION_BUILD_DIR=${WORKSPACE}/build CONFIGURATION_TEMP_DIR=${WORKSPACE}/build
あとは、以下のようにカバレッジを表示する
/usr/local/bin/gcovr -v --xml -e '.*Tests/' -o cobertura-coverage-report.xml -r ${WORKSPACE}