2017-07-31 1 views
1

J'ai un projet avec la structure de répertoire suivant:Configuration de pytest rootdir?

. 
.. 
core/start.py 
tests/test_curve.py 
pytest.ini 

Le contenu de pytest.ini sont:

[pytest] 
testpaths = tests 

Le contenu de test_curve.py sont:

import core.start 

def test_curve(): 
    assert some_valid_stuff 

Lorsque Je cours pytest dans le dossier racine du projet, je reçois:

import core.start 
ImportError: No module named 'core' 

Qu'est-ce que je fais mal?

+0

Ce n'est pas le problème de pytest, mais les importations python. 'core' et' tests' ne sont pas du même paquetage donc vous ne pouvez pas faire 'import core.start' soit' partir de ..core import start' – Arount

Répondre

1

Vous devez définir PYTHONPATH avant d'exécuter les essais:

PYTHONPATH=`pwd` pytest 

Ou installer le code en mode de développeur:

pip install -e . 
pytest 

Ou exécuter les tests dans un environnement virtuel dans lequel le code est installé:

virtualenv mycode 
. mycode/bin/activate 
pip install . 
pytest 
deactivate 

ou d'utiliser pour créer/activer/désactiver ces environnements virtuels automatiquement.