我正在尝试在一台计算机上运行pytest
,但是pytest
继续将conftest
的采购量提高了一个级别。我正在使用的目录没有__init__.py
17:09:36 /shared/functionaltests/kubernetesTests
17:09:36 + rm __init__.py
17:09:36 + ls
17:09:36 conftest.py
17:09:36 helper_functions.py
17:09:36 kubernetesTests.groovy
17:09:36 readme.txt
17:09:36 test_complete.py
17:09:36 + pytest ./
17:09:36 ImportError while loading conftest '/shared/functionaltests/conftest.py'.
17:09:36 ../conftest.py:8: in <module>
17:09:36 import functionaltests.panda_functions as pf
17:09:36 ../panda_functions.py:1: in <module>
17:09:36 import pandas
17:09:36 E ModuleNotFoundError: No module named 'pandas'
-Removed __init__.py
-launching pytest using py.test and python -m pytest
-using --rootdir=./
答案 0 :(得分:0)
这是一种预期的行为,因为您没有明确指定根目录(例如,将pytest.ini
放在目录中)并将conftest.py
放在父目录中。 pytest
将上升到父级目录中,寻找pytest.ini
,将遇到conftest.py
并将目录作为rootdir本身或rootdir的子目录。如果要使kubernetesTests
成为rootdir,请在其中放置一个空的pytest.ini
:
touch /shared/functionaltests/kubernetesTests/pytest.ini`
现在将不会加载父conftest
。
另一种解决方案是通过将/shared
添加到sys.path
来修复导入:
PYTHONPATH=/shared pytest
现在/shared
仍然是rootdir(应该是它的根目录),并且父conftest.py
已加载并执行。