8

Sto cercando di inviare i miei dati di copertura di prova al servizio Code Climate, ma la documentazione su Code Climate e Travis CI non descrive in dettaglio come farlo utilizzando Python. Ancora la sua funzione supportata secondo i documenti Code Climate e Travis. Ho cercato di trovare esempi di lavoro su questo senza fortuna e non posso farlo funzionare da solo.Come posso integrare travis ci con la copertura del test codeclimate in Python?

documentazione Codice Clima: Setting Up Test Coverage, Readme: codeclimate-test-reporter

Travis CI documentazione: Using Code Climate with Travis CI

Ho impostato il CODECLIMATE_REPO_TOKEN in Travis CI come descritto in questa risposta: https://stackoverflow.com/a/31281481/1754089

mio. file travis.yml:

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 

come la linea after_success è excecuted in Travis mi dà questo nel registro-view:

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

In base al messaggio di errore, si ha un errore di battitura nello script. Notare la sottolineatura in 'codeclimate-test_reporter'. –

risposta

4

così effettivamente assomiglia a vostra fine è solo una questione di un tipo come Peter menzionato in un commento. Il tuo after_success dovrebbe avere codeclimate-test-reporter - sembra che tu ce l'abbia, ma travis sta segnalando qualcos'altro.

Ora per il motivo per cui ho aperto una taglia e perché in realtà non ero in grado di capire come funziona codeclimate_test_reporter. Volevo segnalare la mia copertura da py.test. codeclimate_test_reporter ha un bel readme su GitHub che mostra how to create a coverage report. Tuttavia, dal loro esempio, sembra che fornire un reporter di test di codeclimate come argomento per --cov invierebbe automaticamente un report a codecliamte. Questo non è il caso

Utilizzando py.test, ciò che si vuole fare è:

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

magico è accaduto, per la prima volta, ho un rapporto di copertura su codeclimate!

modifica: Ho inviato una richiesta pull a codeclimate-test-reporter per aggiornare il loro readme ed è stato unito, quindi spero meno confusione per le persone future!

+1

Grazie per il vostro tempo ed efford! –