2014年7月15日火曜日

[C++] Coveralls でコードカバレッジ - その3 (lcov + lcoveralls)

前回、「Coveralls でコードカバレッジ - その2」でカバレッジ集計ができるようになったのですが、いつの間にかおかしな状態になってしまっていました。
なぜか CHANGED が 0 のままで前回との差分が見れなくなってしまいました。
ちょっとお手上げ状態なので、誰か助けてください。
と言うついでに、環境変えたら直るんじゃね?というとこから locv + lcoveralls に対応してみました。

lcov + lcoveralls に鞍替え
https://github.com/pcolby/lcoveralls
こちらに手順が書いてあるのでそのとおりに .travis.yml を編集します。
インストール
install:
  - sudo apt-get install lcov rubygems
  - gem install lcoveralls
ビルド ~ lcov
gcov のときと同様に -coverage オプションを付けてビルド、実行ファイルを実行します。
.gcda と .gcno が生成されるので、そこで
lcov -c -d . -o coverage.info
と実行する。
集計したくないファイルがある場合は、--remove(-r) オプションで削除します。
lcov -r coverage.info *gcc* -o coverage.info
lcoveralls
続いて、以下のコマンドを実行する。
lcoveralls coverage.info
今回は Travis CI 上で実行するので、token 指定は不要です。
もし、それ以外で実行する場合は --token オプションを指定する必要があります。

実行、結果
以上で設定は終わりです。実行すると以下のようにログが出力されます。

gcov + cpp-coveralls と比べて色付きログが出るの見やすい!
また、coveralls.io でちゃんと集計もされています。


が、やっぱり CHANGED は 0 のままで検出してくれませんでした。
しかたがないので、coveralls.io から一旦リポジトリを削除しました。

が、やっぱダメでした。

う~ん。困った。。。

2014/09/30 追記
issue 出てましたが、反応なし。
'source change' and 'coverage change' not detected · Issue #327 · lemurheavy/coveralls-public

0 件のコメント:

コメントを投稿