2017-08-19 15 views
2

どこにもCodeclimate docsカバレッジフォーマッタの指定方法が書かれています。しかし、ときに私はCodeclimateにカバレッジを送信しようとしている:ゴランのコーデックテストカバレッジフォーマッタ

./cc-test-reporter before-build 
./cc-test-reporter after-build 

それが失敗している:

Error: could not find any viable formatter. available formatters: simplecov, lcov, coverage.py, clover, gocov, gcov, cobertura, jacoco

私はgocovがインストールされています。また、私はgoconvとレポート生成:

gocov test -coverprofile=out 

をそして、私はさまざまな方法でCodeclimateにレポートファイルを指定してみました:

./cc-test-reporter after-build out 
./cc-test-reporter after-build < out 

をしかし、運がなかった...

Iの避難所」 .codeclimate.ymlファイルのフォーマッタ関連の指令が見つかりませんでした。ドクターはスーパーの "あなたが知っている"様式で書かれているので、助けにはならなかった。どのようにCodeclimateでテストカバレッジを有効/送信するのですか?

答えて

2

輸出VAR:

CC_TEST_REPORTER_ID=... 

ラン:

for pkg in $(go list ./... | grep -v vendor); do 
    go test -coverprofile=$(echo $pkg | tr/-).cover $pkg 
done 
echo "mode: set" > c.out 
grep -h -v "^mode:" ./*.cover >> c.out 
rm -f *.cover 

./cc-test-reporter after-build 
+0

あなたのソリューションは完璧に動作します。この魔法の 'c.out'ファイルを説明してください。 'cc-test-reporter after-build'は' c.out'という名前と具体的な構文を持つファイルを期待していますか? – I159

+0

私はgocovのreadmeを読んでいます:https://github.com/axw/gocov#gocov-convert – avelino

1

アビーここにコード気候のサポートから。現在、test-reporterは、カバレッジデータがデフォルトパスのセットのどこにあるかを推測します。これは通常、カバレッジツールのデフォルト設定に従うユーザーにとっては十分です。

出力がこれらのパスの1つにない場合は、test-reporterローレベルのコマンドを使用して、 のカバレッジデータの種類とその場所を示すことができます。あなたはフラグ--helpを使用してtest-reporterコマンドを使用する方法の詳細を確認することができます

export CC_TEST_REPORTER_ID=<repo-test-reporter-id> 
./cc-test-reporter before-build 
gocov test -coverprofile=out 
./cc-test-reporter format-coverage --input-type gocov out 
./cc-test-reporter upload-coverage 

:この特定のケースでは、あなたのような何かをするだろう。たとえば、./cc-test-reporter format-coverage --helpです。

それは良い場所にあなたを取得する必要があります。そうでない場合は、[email protected]またはこちらからお知らせください。より多くの洞察を得ることができます。 :)