- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
pytest
无法导入模块,即使这些模块在 vanilla python
解释器下导入正常。特别是从 conftest
导入的模块无法解析。当 pytest 尝试重写模块中的断言信息时,会引发 ImportErrori。
回溯示例:
================================================================================================================================================ test session starts ================================================================================================================================================
platform darwin -- Python 3.6.2, pytest-3.8.1, py-1.5.4, pluggy-0.7.1 -- /yyy/venv/bin/python3.6
cachedir: .pytest_cache
rootdir: /yyy/corporategovernance, inifile: setup.cfg
plugins: timeout-1.3.1, cov-2.5.1, populus-1.9.0, flaky-3.4.0, celery-4.1.0, splinter-1.8.5+headless
collecting 0 items / 1 errors
====================================================================================================================================================== ERRORS =======================================================================================================================================================
_________________________________________________________________________________________________________________________________ ERROR collecting corporategovernance/__init__.py __________________________________________________________________________________________________________________________________
../venv/lib/python3.6/site-packages/_pytest/config/__init__.py:381: in _getconftestmodules
return self._path2confmods[path]
E KeyError: local('/xxx/tests')
During handling of the above exception, another exception occurred:
../venv/lib/python3.6/site-packages/_pytest/config/__init__.py:412: in _importconftest
return self._conftestpath2mod[conftestpath]
E KeyError: local('/xxx/tests/conftest.py')
During handling of the above exception, another exception occurred:
../venv/lib/python3.6/site-packages/_pytest/config/__init__.py:418: in _importconftest
mod = conftestpath.pyimport()
../venv/lib/python3.6/site-packages/py/_path/local.py:668: in pyimport
__import__(modname)
../venv/lib/python3.6/site-packages/_pytest/assertion/rewrite.py:290: in load_module
six.exec_(co, mod.__dict__)
corporategovernance/tests/conftest.py:4: in <module>
import corporategovernance.backend
E ModuleNotFoundError: No module named 'corporategovernance.backend'
During handling of the above exception, another exception occurred:
../venv/lib/python3.6/site-packages/_pytest/runner.py:201: in __init__
self.result = func()
../venv/lib/python3.6/site-packages/_pytest/runner.py:261: in <lambda>
call = CallInfo(lambda: list(collector.collect()), "collect")
../venv/lib/python3.6/site-packages/_pytest/python.py:624: in collect
for x in self._collectfile(path):
../venv/lib/python3.6/site-packages/_pytest/python.py:579: in _collectfile
ihook = self.gethookproxy(path)
../venv/lib/python3.6/site-packages/_pytest/python.py:568: in gethookproxy
my_conftestmodules = pm._getconftestmodules(fspath)
../venv/lib/python3.6/site-packages/_pytest/config/__init__.py:395: in _getconftestmodules
mod = self._importconftest(conftestpath)
../venv/lib/python3.6/site-packages/_pytest/config/__init__.py:431: in _importconftest
raise ConftestImportFailure(conftestpath, sys.exc_info())
E _pytest.config.ConftestImportFailure: ModuleNotFoundError("No module named 'corporategovernance.backend'",)
E File "/yyy/venv/lib/python3.6/site-packages/_pytest/assertion/rewrite.py", line 290, in load_module
E six.exec_(co, mod.__dict__)
E File "/xxx/tests/conftest.py", line 4, in <module>
E import corporategovernance.backend
===Flaky Test Report===
如何解决?
最佳答案
如果您的 tests
文件夹和子文件夹下有 __init__.py
文件,那么 pytest 可能会很挑剔。这可能会导致 pytest 在某些情况下以错误的顺序解析 Python 模块。
解决方法是删除所有测试中的 __init__.py
文件。
关于python - py.test 未正确从 conftest 导入模块 - 失败并显示 ConftestImportFailure : ModuleNotFound,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52589912/
我有一个很大的 conftest.py 文件,我希望将其拆分成更小的部分,原因有二: 文件非常大(约 1000 行,包括文档) 一些固定装置依赖于其他固定装置,当用户查找相关固定装置时,我没有理由将这
1、conftest.py的特点 1、可以跨.py文件调用,有多个.py文件调用时,可让conftest.py只调用了一次fixture,或调用多次fixture 2、conftest.py与
我在使用交叉编译器链接到许多库时遇到问题。是否可以在每次生成文件 conftest.c 时将其转储到安全位置? 我试图取消注释这些行 rm -f conftest 从配置脚本,但它继续像它没有任何意义
我正在尝试在计算机上运行 pytest,但 pytest 不断获取更高一级的 conftest。我正在使用的目录没有 __init__.py 17:09:36 /shared/functionalt
我的目录中有如下目录结构 tests | |__A | |__test_1.py |__B | |__test_2.py |__C | |__test3.py |__D | |__test4.
我最近发现 pytest .看起来很棒。但是,我觉得文档可能会更好。 我想了解什么 conftest.py文件旨在用于。 在我的(目前很小的)测试套件中,我有一个 conftest.py项目根目录下的
最近我一直在熟悉 pytest 以及如何使用 conftest.py 来定义在我的测试中自动发现和导入的装置。我很清楚 conftest.py 是如何工作的以及如何使用它,但我不确定为什么这被认为是某
这是我的测试目录: test/ unit/ some test files conftest.py acceptance/ some t
我想做的 pytest 总是涉及短回溯(--tb=short)和报告跳过原因(-rsx) 所以我不必每次都执行 pytest --tb=short -rsx,我可以在某个地方指定它吗,也许是 conf
我尝试在 py.test 文档测试中使用固定装置。文档中有getfixture函数,可以直接在doctests中使用。 getfixture('tmpdir') 这按预期工作。 现在我尝试使用在 co
目前,我有两个包作为我的测试存储库的一部分,其文件夹结构如下: Package_A |--__init__.py |--conftest.py |--test_A.py Package_B |--__
这是我的 API 测试目录布局: api_tests ├── conftest.py └── query └── me_test.py conftest.py 的内容: print("CONF
当我尝试运行 pytest repo/tests/test_file.py 时出现以下错误: $ pytest repo/tests/test_file.py Traceback (most rece
问题: 是否可以将 conftest.py 文件放入测试包旁边的另一个包中,如下所示? 描述 项目结构如下: ------------------------------------ GUI_pyte
我对 pytest 和创建包(模块)总体来说还很陌生。我用 pytest 编写了一些测试,这些测试运行良好,直到我重构脚本结构。这其实是有必要的,因为剧本很多,定位比较困惑。当前的目录结构如下所示:
问题: 是否可以将 conftest.py 文件放入测试包旁边的另一个包中,如下所示? 描述 项目结构如下: ------------------------------------ GUI_pyte
我有一个定义测试支持模块的项目,包括像这样的包子目录中的 py.test 插件: bokeh/_testing ├── __init__.py ├── plugins │ ├── __init__
我有一个具有以下结构的项目: Project/ | +-- src/ | | | +-- proj/ | | | +-- __init__.py | +--
我有以下目录结构 /home/ubuntu/test/ - Foo/ - Foo.py - __init__.py - Test/ - conftest.py - __in
我有myprj项目,文件如下。 $ tree myprj/ myprj/ ├── prj │ ├── __init__.py │ ├── config.py │ ├── my_logger
我是一名优秀的程序员,十分优秀!