2015-09-06 2 views
6

Ich habe derzeit ein Projekt mit der folgenden .travis.yml Datei:Wie sollte eine Python-Projektstruktur aussehen, damit Travis CI Tests findet und ausführt?

language: python 
install: "pip install tox" 
script: "tox" 

Lokale tox korrekt ausgeführt und 35 Tests ausgeführt wird, aber auf Travis CI, läuft es 0 Tests.

Weitere Details: https://travis-ci.org/neverendingqs/pyiterable/builds/78954867

Ich habe versucht, auch andere Möglichkeiten, einschließlich:

language: python 
python: 
    - "2.6" 
    - "2.7" 
    - "3.2" 
    - "3.3" 
    - "3.4" 
    - "3.5.0b3" 
    - "3.5-dev" 
    - "nightly" 
# also fails with just `nosetest` and no `install` step 
install: "pip install coverage unittest2" 
script: "nosetests --with-coverage --cover-package=pyiterable" 

Sie auch nicht any tests finden konnten.

Meine Projektstruktur ist Like This:

- ... 
- <module> 
- tests (for the module) 
- ... 

das Projekt/Ordner strukturiert falsch ist?

+0

Haben Sie versucht, den Testort im nosetest-Befehl anzugeben? Ich benutze Travis CI nur in einem meiner Projekte und benutze 'nosetest tests /', um die Tests durchzuführen. Versuchen Sie, Ihre tox.ini an 'nosetests Tests anzupassen/--mit-Abdeckung - Abdeckung-Paket = pyiterable' – bnlucas

+0

Probieren Sie es einfach - kein Erfolg = [ – neverendingqs

+0

@bnlucas konnte ich Ihre Repo Struktur sehen? – neverendingqs

Antwort

2

Es war nichts falsch mit der Ordnerstruktur.

Es sieht aus wie die Dateien auf Travis CI sind ausführbar betrachtet (Protokolle von https://travis-ci.org/neverendingqs/pyiterable/builds/79049179):

nosetests --verbosity=3 
nose.config: INFO: Ignoring files matching ['^\\.', '^_', '^setup\\.py$'] 
nose.selector: INFO: /home/travis/build/neverendingqs/pyiterable/LICENSE.txt is executable; skipped 
nose.selector: INFO: /home/travis/build/neverendingqs/pyiterable/pyiterable/iterable.py is executable; skipped 
nose.selector: INFO: /home/travis/build/neverendingqs/pyiterable/readme.md is executable; skipped 
nose.selector: INFO: /home/travis/build/neverendingqs/pyiterable/setup.cfg is executable; skipped 
nose.selector: INFO: /home/travis/build/neverendingqs/pyiterable/tox.ini is executable; skipped 
nose.selector: INFO: /home/travis/build/neverendingqs/pyiterable/tests/test_iterable.py is executable; skipped 

I tox.ini geändert nosetests mit --exe (nosetests --exe --with-coverage --cover-package=pyiterable) auszuführen, basierend auf Run all Tests in Directory Using Nose. Nachdem ich einige nicht zusammenhängende Fehler behoben hatte, konnte ich die Tests ausführen lassen @https://travis-ci.org/neverendingqs/pyiterable/builds/79049983!

+0

Um zu verdeutlichen - es ist nicht, dass TravisCI denkt * sie sind ausführbar - sie ** sind ** ausführbar, zumindest nach dem aktuellen GitHub Repo (zu jeder Datei navigieren , zB [iterable.py] (https://github.com/neverendingqs/pyiterable/blob/master/pyiterable/iterable.py) und sehe oben, dass es "ausführbar" heißt. Manchmal sind ausführbare Dateien der richtige Aufruf, aber ich denke nicht, dass es ohne einen Shebang ('#!/Usr/bin/env python' oder ähnlichem) ausgeführt wird - also würde ich annehmen, dass Sie beides wollen (Shebang und Executable) Berechtigungen) oder keines von beiden. – dwanderson

+0

Mein Kommentar nicht, wenn Sie ausführbare Python-Dateien benötigen, ist das '- EXE' Tag der Weg zu gehen - gut zu finden! – dwanderson