web-dev-qa-db-fra.com

Pytest et Python 3

J'ai installé pytest 2.3.4 sous Debian Linux. Par défaut, il fonctionne sous Python 2.7, mais parfois j'aimerais l'exécuter sous Python 3.x, qui est également installé. Je ne peux pas semblent trouver des instructions sur la façon de le faire.

Les classificateurs PyPI Trove affichent Python :: 3 donc cela doit être possible. Mis à part py.test somedir/sometest.py, Je peux utiliser python -m pytest ..., ou même python2.7 -m pytest ..., mais si j'essaie python3 -m pytest ... Je reçois

/usr/bin/python3: No module named pytest

37
Joe Abbate

J'ai trouvé une solution de contournement:

  1. Installée python3-pip en utilisant aptitude, qui a créé /usr/bin/pip-3.2.
  2. Suivant pip-3.2 install pytest qui a réinstallé pytest, mais sous un chemin python3.2.
  3. Ensuite, j'ai pu utiliser python3 -m pytest somedir/sometest.py.

Pas aussi pratique que d'exécuter py.test directement, mais réalisable.

50
Joe Abbate

python3 n'a pas le module py.test installé. Si vous le pouvez, installez le python3-pytest paquet.

Si vous ne pouvez pas faire cela, essayez ceci:

  1. Installer virtualenv
  2. Créez un virtualenv pour python3
    • virtualenv --python=python3 env_name
  3. Activez le virtualenv
    • source ./env_name/bin/activate
  4. Installez py.test
    • pip install py.test
  5. Maintenant, en utilisant ce virtualenv, essayez d'exécuter vos tests
25
Joe

Cela a fonctionné pour moi:

python3 $(which py.test) ...
6
XPlatformer

En plus des python3 -m pytest, cela pourrait également fonctionner:

env pytest
2
GPHemsley