Pytest正在搜索竞赛更高一级

时间:2019-07-18 21:17:52

标签: python pytest

我正在尝试在一台计算机上运行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=./

1 个答案:

答案 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已加载并执行。