Recentemente sono incappato in qualche problema con le misurazioni di copertura in esecuzione all'interno dell'ambiente virtuale. Non ricordo problemi simili in passato, né sono stato in grado di trovare soluzioni sul web.Copertura in corso all'interno virtualenv
Fondamentalmente, quando sto cercando di eseguire la suite di test in virtualenv, funziona perfettamente. Ma non appena cerco di farlo usando coverage
, fallisce a causa della mancanza di moduli necessari. Sulla base di alcune risposte su StackOverflow, ho controllato il mio script e ho scoperto che coverage
utilizza un interprete diverso, anche se in esecuzione dallo stesso virtualenv
.
Ecco come riprodurre esso:
$ virtualenv --no-site-packages venv
New python executable in venv/bin/python
Installing Setuptools................................................done.
Installing Pip.......................................................done.
$ source venv/bin/activate
(venv)$ echo 'import sys; print(sys.executable)' > test.py
(venv)$ python test.py
/home/tadeck/testground/venv/bin/python
(venv)$ coverage run test.py
/usr/bin/python
La domanda è: come fare coverage
lavoro con ambiente virtuale senza soluzione di continuità? Potrei modificare sys.path
o installare i moduli richiesti a livello di sistema, ma ci deve essere un modo più pulito.
Non riesco a riprodurre questo su Windows, ho paura. La copertura funziona bene. + 1 per aiutare un altro pitonista bisognoso :) –
Hai provato a installare il pacchetto '' coverage'' nella virtualenv che stai creando? – fjarri
@Bogdan: Era già lì, quindi non ho provato a (ri) installarlo. Ma quando eseguo 'pip install -U coverage', ottengo" 'Requisito già aggiornato: coverage in./Venv/lib/python2.7/site-packages'". – Tadeck