2017-08-19 1 views
2

Nulle part Codeclimate docs écrit comment spécifier le formatage de couverture. Mais quand je suis en train d'envoyer une couverture à Codeclimate:Codeclimate test couverture formateur pour Golang

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

Il échoue:

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

Je gocov installé. Aussi je généré un rapport avec goconv:

gocov test -coverprofile=out 

Et j'ai essayé de spécifier le fichier de rapport Codeclimate de diverses manières:

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

mais n'a pas eu de chance ...

paradis I » t trouvé toutes les directives relatives au formateur pour le fichier .codeclimate.yml. Le doc est écrit en super style "tu sais", donc ça n'a pas aidé. Comment activer/envoyer une couverture de test avec Codeclimate?

Répondre

2

Export var:

CC_TEST_REPORTER_ID=... 

Run:

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

Votre solution fonctionne parfaitement. Expliquez s'il vous plait ce fichier magique 'c.out'. Est-ce que 'cc-test-reporter after-build' attend un fichier avec le nom' c.out' et une syntaxe concrète? – I159

+0

Je lis sur gocov readme: https://github.com/axw/gocov#gocov-convert – avelino

1

Abby du code de support climatique ici. Actuellement, le test-reporter essaie de déduire où les données de couverture pourraient provenir d'un ensemble de chemins par défaut. Cela est généralement suffisant pour les utilisateurs suivant la configuration par défaut de l'outil de couverture. Mais, dans le cas où la sortie ne se trouve pas sur l'un de ces chemins, vous pouvez utiliser les commandes de bas niveau test-reporter pour indiquer le type de données de couverture et où il se trouve. Dans ce cas particulier, vous feriez quelque chose comme:

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 

Vous pouvez vérifier plus sur la façon d'utiliser une commande test-reporter en utilisant le drapeau --help. Par exemple, ./cc-test-reporter format-coverage --help.

Cela devrait vous mettre dans une bonne position. Si non, laissez-nous savoir à [email protected] ou ici, et je peux obtenir plus de perspicacité. :)