2016-10-11 6 views
1

Предположим, что тестовый модуль python генерирует ImportError. pytest (версия 3.0.2) генерирует компактный отчет об ошибке:pytest print stacktrace при ошибке импорта

__________________________________________ 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 генерирует StackTrace, как это:

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 производить подобную информацию StackTrace? Эти варианты доступны

-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). 

, но ни один из них не делает tb для меня. Также pytest -vv.

Благодаря

Артур

ответ

2

Это было в pytest changed неделю назад, чтобы отобразить полный отслеживающий.

Если вы не хотите ждать следующего выпуска, вы можете использовать pytest из репозитория git через pip install git+https://github.com/pytest-dev/pytest.git.

+0

Работает отлично. Потрясающие. Для будущих специалистов эта функция появляется в pytest 3.0.4. Благодарю. – Arthur

+0

Спасибо, «Компилятор». – Arthur

+0

Право - 3.0.4 или 3.1.0, что бы ни случилось первым;) –

 Смежные вопросы

  • Нет связанных вопросов^_^