Domanda

Non sono in grado di utilizzare il naso (nosetests) in un progetto virtualenv - non riesco a trovare i pacchetti installati nell'ambiente virtualenv

.

La cosa strana è che posso impostare

test_suite = 'nose.collector'

in setup.py ed eseguire le prove bene come

python setup.py test

, ma durante l'esecuzione nosetests dritto, ci sono tutti i tipi di errori di importazione.

Lo ho provato sia con un impianto a livello di sistema del naso e un pacchetto virtualenv naso e senza fortuna.

Qualche idea?

Grazie !!

È stato utile?

Soluzione

Sei in grado di eseguire myenv/bin/python /usr/bin/nosetests? Questo dovrebbe funzionare naso utilizzando set biblioteca del ambiente virtuale.

Altri suggerimenti

È necessario disporre di una copia di naso installata in un ambiente virtuale. Per forzare l'installazione del naso nel virtualenv, anche se è già installato nel sito-pacchetti globali, eseguire pip install con la -I bandiera:

(env1)$ pip install nose -I

Da allora in poi si può solo eseguire nosetests come al solito.

Nella stessa situazione ho bisogno per ricaricare la virtualenv per il percorso da aggiornato correttamente:

deactivate
env/bin/activate

Ho un problema simile. La seguente soluzione ha aiutato:

python `which nosetests` 

(invece di nosestests)

Ecco ciò che funziona per me:

$ virtualenv --no-site-packages env1
$ cd env1
$ source bin/activate            # makes "env1" environment active,
                                 # you will notice that the command prompt
                                 # now has the environment name in it.

(env1)$ easy_install nose        # install nose package into "env1"

Ho creato un pacchetto veramente di base slither che ha avuto, nella sua setup.py, lo stesso attributo test_suite come lei ha ricordato sopra. Poi ho messo il pacchetto sorgente in env1/src.

Se avete guardato dentro test, vedreste:

slither/setup.py
slither/slither/__init__.py
slither/slither/impl.py          # has some very silly code to be tested
slither/slither/tests.py         # has test-cases 

Posso eseguire i test utilizzando nosetests sottocomando:

(env1)$ pushd src/slither
(env1)$ python setup.py test
# ... output elided ...
test_ctor (slither.tests.SnakeTests) ... ok
test_division_by_zero (slither.tests.SnakeTests) ... ok
Ran 2 tests in 0.009s
OK
(env1)$ popd

In alternativa, posso eseguire gli stessi test con --exe:

(env1)$ pushd src
(env1)$ nosetests slither/
..
Ran 2 tests in 0.007s
OK
(env1)$ popd

Si noti inoltre che <=> può essere pignoli su eseguibili. È possibile passare <=> se si vuole scoprire prove in moduli Python che sono eseguibili.

Se tutto il resto fallisce, provare a installare il naso nel vostro venv, e / o gestiscono nosetests-2.7. Credo che la risposta di @ andrea-Zonca ha lo stesso effetto se il pitone venv è 2.7

Forse questo è un recente cambiamento, ma per me, quando ho installato nosetests attraverso pip, c'era un nosetests eseguibili installati in .virtualenvs/<env>/bin, che (com'era prevedibile) funziona correttamente con il virtualenv.

Si potrebbe avere un nosetests che viene installato da qualche altra parte nel vostro PATH con priorità più alta rispetto a quella installata nel virtualenv. Un modo veloce per dare al nose modulo ed associato <=> script installato nella vostra priorità virtualenv top attuale è quella di modificare il <=>:

export PATH=/path/to/current/virtualenv/bin:$PATH
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top