8

Ich versuche, dass mein Travis CI Test-Coverage-Daten an den Code Climate Service schickt, aber die Dokumentation zu Code Climate und Travis CI beschreibt nicht im Detail, wie man das mit Python macht. Dennoch ist es nach Code Climate und Travis Dokumentationen unterstützt. Ich habe versucht, irgendwelche Arbeitsbeispiele dafür ohne Glück zu finden und kann es nicht alleine machen.Wie integriere ich Travis ci mit codeclimate Testabdeckung in Python?

-Code Klima Dokumentation: Setting Up Test Coverage, Readme: codeclimate-test-reporter

Travis CI Dokumentation: Using Code Climate with Travis CI

ich die CODECLIMATE_REPO_TOKEN in Travis CI festgelegt haben, wie in dieser Antwort beschrieben: https://stackoverflow.com/a/31281481/1754089

Meine. travis.yml Datei:

language: python 
python: 
    - 2.7 
install: 
    - pip install -r requirements.txt 
    - pip install coverage 
    - pip install codeclimate-test-reporter 
#commands to run tests: 
script: 
    - python mytests.py 
    - coverage run mytests.py 
after_success: 
    - codeclimate-test-reporter 

als die after_success Linie in Travis excecuted ist es mir diese in Log-Ansicht gibt:

/home/travis/build.sh: line 45: codeclimate-test_reporter: command not found 
+1

Entsprechend Ihrer Fehlermeldung haben Sie einen Tippfehler in Ihrem Skript. Beachten Sie den Unterstrich in 'codeclimate-test_reporter'. –

Antwort

4

so in die Tat sieht es aus wie an Ihrem Ende ist es nur eine Frage von einem Typ wie Peter in einem Kommentar erwähnt. Ihr after_success sollte codeclimate-test-reporter haben - es sieht so aus als hätten Sie es, aber Travis meldet etwas anderes.

Nun zu, warum ich ein Kopfgeld eröffnet und warum es war eigentlich nur ich nicht zu verstehen, wie codeclimate_test_reporter funktioniert. Ich wollte meine Berichterstattung von py.test berichten. codeclimate_test_reporter hat eine ziemlich readme auf GitHub mit how to create a coverage report. Aus ihrem Beispiel sieht es jedoch so aus, als ob coconclimate-test-reporter als Argument für -cov bereitgestellt wird, das automatisch einen Bericht an codecliamte sendet. Das ist nicht der Fall

py.test verwenden, was Sie tun möchten, ist:

script: 
- py.test --cov=YourModuleYouWantToCover test_folder 
- codeclimate-test-reporter --file .coverage 

Magie passiert ist, zum ersten Mal, ich habe eine Berichterstattung Bericht über codeclimate haben!

edit: Ich habe eine Pull-Anfrage an codeclimate-test-reporter geschickt, um ihre Readme zu aktualisieren und sie wurde zusammengeführt, also hoffentlich weniger Verwirrung für zukünftige Leute!

+1

Vielen Dank für Ihre Zeit und Mühe! –