2015-09-06 9 views
6

Al momento ho un progetto con il .travis.yml seguente file:Che aspetto dovrebbe avere una struttura di progetto Python per Travis CI per trovare ed eseguire test?

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

A livello locale, tox esegue correttamente e corre 35 test, ma su Travis CI, che gira 0 test.

Maggiori dettagli: https://travis-ci.org/neverendingqs/pyiterable/builds/78954867

Ho provato anche altri modi, tra cui:

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" 

Inoltre non riuscivano a trovare any tests.

La mia struttura del progetto è Like This:

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

sono il progetto/cartelle strutturate in modo errato?

+0

Hai provato a specificare la posizione dei test nel comando nosetest? Io uso solo Travis CI in uno dei miei progetti e uso 'test nosetest /' per eseguire i test. Prova ad aggiustare il tuo tox.ini a 'test nosetests/--with-coverage --cover-package = pyiterable' – bnlucas

+0

Ho appena provato - nessun successo = [ – neverendingqs

+0

@bnlucas posso vedere la tua struttura di pronti contro termine? – neverendingqs

risposta

2

Non c'era niente di sbagliato nella struttura delle cartelle.

Sembra che i file sul Travis CI sono considerate eseguibili (tronchi da 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 

ho cambiato tox.ini a correre nosetests con --exe (nosetests --exe --with-coverage --cover-package=pyiterable), sulla base di Run all Tests in Directory Using Nose. Dopo aver corretto alcuni errori non correlati, sono riuscito a far eseguire i test @https://travis-ci.org/neverendingqs/pyiterable/builds/79049983!

+0

Per chiarire - non è che TravisCI * pensi * che siano eseguibili - sono ** eseguibili **, almeno secondo il repository GitHub corrente (vai a qualsiasi file ad es. [iterable.py] (https://github.com/neverendingqs/pyiterable/blob/master/pyiterable/iterable.py) e vedi in alto che dice 'eseguibile'). A volte i file eseguibili sono la giusta chiamata, ma non penso che verrà eseguita senza uno shebang ('#!/Usr/bin/env python' o simile) - quindi suppongo che vuoi entrambi (shebang ed eseguibile) autorizzazioni) o nessuno dei due. – dwanderson

+0

Il mio commento non è valido, quando hai bisogno di file Python eseguibili, il tag '--exe' è la strada da percorrere - buona scoperta! – dwanderson

Problemi correlati