J'essaie d'utiliser nosetests
❯ nosetests '/ pathTo/test'
mais il utilise python 2.7
pour mes tests:
sys.version_info(major=2, minor=7, micro=5, releaselevel='final', serial=0)
Certains échouent donc, car ils ont été écrits en python 3.3
.
Je le contourne et installe l'environnement virtuel:
pyvenv-3.3 py3env
Activé le:
source ~/py3env/bin/activate
Vérifiez python virsion dans un environnement virtuel:
❯ python --version ⏎
Python 3.3.3
(py3env)
Ok. Mais nosetest utilise toujours python2.7
même dans un environnement virtuel:
sys.version_info(major=2, minor=7, micro=5, releaselevel='final', serial=0)
Donc, mes tests échouent. Comment faire en sorte que nez utilise python3?
Dans les versions Python 3.4
et supérieures: pour utiliser le nez, python3
suffit de lancer ...
python3 -m "nose"
... dans le répertoire cible avec les tests.
Les configurations de l'environnement ne sont pas nécessaires.
J'ai trouvé moyen d'utiliser nosetest avec python3 sans environnement:
cd /Library/Frameworks/Python.framework/Versions/3.3/bin
Et alors:
❯ nosetests-3.3 '/folder/with/tests'
nosetests-3.3
utilise python 3
C'est tout.
Et si vous voulez utiliser la commande nosetests
au lieu de nosetests-3.3
, ajoutez ~/.bash_profile
:
nosetests()
{
/Library/Frameworks/Python.framework/Versions/3.3/bin/nosetests-3.3 $1
}
Maintenant vous pouvez utiliser:
nosetests '/folder/with/tests'
de n'importe quel répertoire. Il utilise python3
.
À installer:
Sudo apt-get install python-nose python3-nose
Courir:
nosetests-2.7 ; nosetests3
Cela exécute la suite de tests sous PY2 et PY3.
Ce n'est pas un problème de virtualenv autant qu'un problème de Linux.
Cela signifie que lorsque vous utilisez la commande nosetests
depuis le terminal, linux recherche dans ses chemins disponibles (/bin
, /sbin
ou quel que soit votre choix) un tel fichier exécutable.
Votre python global 2 nosetests
est trouvé en premier et exécuté.
Votre variable virtuelle python3 nosetests
se trouve plus tard dans la liste des chemins disponibles et n'est donc jamais atteinte.
Je suggérerais d'installer uniquement nose ou toute autre commande python par environnement virtuel.