2016-08-08 58 views
0

Ich bin haben folgende script Abschnitt in meiner .travis.yml Datei:Coverage auf Travis versagt, aber nicht auf dem lokalen Rechner - Fehlern sind abhängig von der Reihenfolge der Flaggen

script: 
    # run all tests in mymodule/tests and check coverage of the mymodule dir 
    # don't report on coverage of files in the mymodule/tests dir itself 
    - coverage run -m --source mymodule --omit mymodule/tests/* py.test mymodule/tests -v 

Dies auf meinem eigenen gut funktioniert (Windows) Maschine, aber wirft einen Fehler auf Linux und OSX auf dem Travis Build. Der Fehler lautet:

Import nach Dateiname wird nicht unterstützt.

mit den Flaggen in einer anderen Reihenfolge ich einen anderen Fehler zu sehen (nur auf dem Linux-Build - die Tests OSX mit dieser Reihenfolge der Flaggen passieren):

-coverage run --source eppy --omit eppy/tests/* -m py.test eppy/tests -v 

nicht gefunden '__main__' Modul in 'mymodule/tests/geometrie_tests'

Was mache ich hier falsch?

Antwort

0

Gelöst durch Wechsel von coverage direkt zur Verwendung pytest-cov.

script: 
    # run all tests in mymodule/tests and check coverage of the mymodule dir 
    - py.test -v --cov-config .coveragerc --cov=mymodule mymodule/tests 

Und die .coveragerc Datei:

# .coveragerc to control coverage.py 
[run] 
# don't report on coverage of files in the tests dir itself 
omit = 
    mymodule/tests/* 

Ich weiß nicht, warum das funktioniert, wo der bisherige Ansatz nicht der Fall war, aber dies löst zumindest das Problem.