pdb断点的pytest命令行选项
pytest-pdb-break的Python项目详细描述
这有助于帮助text编辑器启动调试器并快速前进 让人感兴趣。如果您已经有一个可靠的工作流 breakpoint()片段和/或--trace和--pdb选项,有 这里没什么可看的。
This basically does …
$ pytest --trace spam.py::test_foo ... (pdb) until 42or …
deftest_foo():...pytest.set_trace(header="line 42")with a few minor conveniences sprinkled in
- Simpatico检查
- 你更喜欢一种无创的,一键式的,随身携带的方法来进入 调试器
- 您喜欢上面第二个示例提供的停止的确定性
- 您喜欢变量和属性的制表符完成方式
- 你想要在unittest.TestCases和你自己的装置里 (实验性)
- 不要安装
- 与正确的pytest插件不同,它不是作为python安装的 包裹。编辑器将通过 PYTHONPATH,但仅在使用中(不需要Internet连接)。
- 在制品
- 注意事项
不幸的是,这个东西只有在linux上试过/测试过
它主要是为了它的作者来学习PyTesta,一个体面的人。
对其的理解仍在逃避它不支持-m pytest风格的调用,这意味着 工作目录没有隐式地添加到sys.path
Actually,更像是…
$echountil42 > .pdbrc $ pytest --trace spam.py::test_foo; rm -f .pdbrc ========================== test session starts ========================== ... > /repo/spam.py(42)test_foo() -> assert True # line 42 (pdb) _
或者…
$ cp spam.py spam.py~ $ sed -i -E \ > '42{h;s/^(\s+)(.*)$/\1import pytest; pytest.set_trace()/p;g}'\ > spam.py $ pytest spam.py::test_foo; mv -f spam.py~ spam.py ========================== test session starts ========================== ... > /repo/spam.py(43)test_foo() -> assert True # line 42 (pdb) _
(假设目标行以新语句打开)
当黑客攻击主pytest插件时,忽略上面的命令 以及do install:
(.venv)repo@master$ pip install -e .
如果坚持包含的引用集成,一些额外的 可能需要欺骗。例如:
- 通过其中一个文档选项禁用“独立库”创建
- 手动管理编辑器插件(或使其与您的 经理)
如果做你自己的事,通常的规则是适用的,比如确保正确的 调用Pytest时,exec path和env vars具有优先权:
constpytest=pty.spawn('pytest',['--break=spam.py:42',nodeid],{cwd:rootdir,env:Object.assign({},process.env,modified)});// or whatever
- 待办事项
- 外部帮助程序返回--optionslist
- asyncio