python - 导入失败时pytest打印堆栈跟踪

标签 python pytest

假设一个 python 测试模块生成一个 ImportErrorpytest(版本 3.0.2)生成一个紧凑的错误报告:

__________________________________________ ERROR collecting tests/wc_tests/log/test_logger.py __________________________________________
ImportError while importing test module '/Users/arthur_at_sinai/gitOnMyLaptopLocal/Mpn-Example/tests/wc_tests/log/test_logger.py'.
Original error message:
'No module named 'wc.config.core''
Make sure your test modules/packages have valid Python names.

相比之下,nosetests-3.4 生成一个堆栈跟踪,如下所示:

ERROR: Failure: ImportError (No module named 'wc.config.core')
----------------------------------------------------------------------
Traceback (most recent call last):
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/nose/failure.py", line 39, in runTest
    raise self.exc_val.with_traceback(self.tb)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/nose/loader.py", line 418, in loadTestsFromName
    addr.filename, addr.module)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/nose/importer.py", line 47, in importFromPath
    return self.importFromDir(dir_path, fqname)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/site-packages/nose/importer.py", line 94, in importFromDir
    mod = load_module(part_fqname, fh, filename, desc)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/imp.py", line 234, in load_module
    return load_source(name, filename, file)
  File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/imp.py", line 172, in load_source
    module = _load(spec)
  File "<frozen importlib._bootstrap>", line 693, in _load
  File "<frozen importlib._bootstrap>", line 673, in _load_unlocked
  File "<frozen importlib._bootstrap_external>", line 665, in exec_module
  File "<frozen importlib._bootstrap>", line 222, in _call_with_frames_removed
  File "/Users/arthur_at_sinai/gitOnMyLaptopLocal/Mpn-Example/tests/wc_tests/log/test_logger.py", line 12, in <module>
    from wc.sim.core import Simulator
  File "/Users/arthur_at_sinai/gitOnMyLaptopLocal/Mpn-Example/wc/sim/core.py", line 16, in <module>
    from wc.log.checkpoint import CheckpointLogger
  File "/Users/arthur_at_sinai/gitOnMyLaptopLocal/Mpn-Example/wc/log/checkpoint.py", line 9, in <module>
    from wc.config.core import config
ImportError: No module named 'wc.config.core'

如何让 pytest 产生类似的堆栈跟踪信息?这些选项可用

-l, --showlocals      show locals in tracebacks (disabled by default).
--tb=style            traceback print mode (auto/long/short/line/native/no).
--full-trace          don't cut any tracebacks (default is to cut).

但他们都没有为我带来结核病。 pytest -vv 也没有。

谢谢

亚瑟

最佳答案

这是 changed一周前在 pytest 中显示完整的回溯。

如果您不想等待下一个版本,您可以通过 pip install git+https://github.com/pytest-dev/pytest.git 使用 git 存储库中的 pytest > 与此同时。

关于python - 导入失败时pytest打印堆栈跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39982332/

相关文章:

python - Pycharm 在使用 Python 的 pytest 框架进行测试时为测试生成奇怪的代码模板

python - 在带有范围的 for 循环的最后一次迭代中获取余数

python - Scrapy 没有给出手机所有评论的单独结果?

python - 是否可以将参数传递给python中的拆卸 fixture ?

pytest - 在测试完成时运行的基本 pytest 拆解

python - 从 noses setup package() 迁移到 pytest

python - 从兄弟目录导入模块以与 py.test 一起使用

python - 将不同的编码转换为ascii

python - 定义在初始化时按顺序计算属性的类的最佳实践

python - 我有 4 个嵌套的 div 标签,当我使用 find_all 打印文本时,它打印文本 4 次