Question

Je ne peux pas utiliser le nez (nosetests) dans un projet virtualenv - il ne peut pas sembler trouver les paquets installés dans l'environnement virtualenv

.

La chose étrange est que je peux définir

test_suite = 'nose.collector'

setup.py et exécuter les tests très bien que

python setup.py test

mais lors de l'exécution nosetests droite, il y a toutes sortes d'erreurs d'importation.

Je l'ai essayé à la fois une installation du système à l'échelle du nez et un ensemble de nez virtualenv et pas de chance.

Toutes les pensées?

Merci !!

Était-ce utile?

La solution

Êtes-vous capable de courir myenv/bin/python /usr/bin/nosetests? Cela devrait fonctionner nez à l'aide du jeu de la bibliothèque de l'environnement virtuel.

Autres conseils

Vous devez avoir une copie du nez installé dans l'environnement virtuel. Pour forcer l'installation du nez dans le virtualenv, même si elle est déjà installée dans l'économie mondiale site-packages, exécutez le pip install -I drapeau:

(env1)$ pip install nose -I

A partir de là, vous pouvez simplement courir comme d'habitude nosetests.

Dans la même situation que je devais recharger le chemin pour le virtualenv être mis à jour correctement:

deactivate
env/bin/activate

Je suis un problème similaire. La solution suivante a permis:

python `which nosetests` 

(au lieu de simplement nosestests)

Voici ce qui fonctionne pour moi:

$ 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"

J'ai créé un package vraiment basique qui avait slither, dans son setup.py, même attribut que vous test_suite mentionné ci-dessus. Ensuite, je mis le paquet source sous env1/src.

Si vous avez regardé à l'intérieur test, vous verriez:

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 

Je peux exécuter les tests en utilisant nosetests sous-commande:

(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

Ou, je peux exécuter les mêmes tests avec --exe:

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

Notez également que peut être pointilleux <=> sur les executables. Vous pouvez passer si vous voulez <=> à découvrir des tests dans les modules Python qui sont exécutables.

Si tout le reste échoue, essayez d'installer le nez dans votre venv, et / ou d'exécuter nosetests-2.7. Je crois que la réponse de @ andrea-Zonca a le même effet si votre python est venv 2.7

Peut-être est un changement récent, mais pour moi, quand j'ai installé nosetests par pip, il y avait un nosetests exécutable installé dans .virtualenvs/<env>/bin, qui (sans surprise) fonctionne correctement avec le virtualenv.

Vous pourriez avoir un qui est installé nosetests ailleurs dans votre priorité plus élevée PATH que celle installée dans votre virtualenv. Un moyen rapide pour donner le module associé et nose script installé dans <=> votre priorité supérieure de virtualenv actuelle est de modifier votre <=>:

export PATH=/path/to/current/virtualenv/bin:$PATH
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top