运行鼻子测试时,我想进入交互式控制台。但是,如果我将以下内容放在我的代码中的任何位置:
import code
code.interact(local=locals())
Nose 只是打印 (InteractiveConsole) 并且不提供控制台来输入命令。Pytest 将 code.interact 视为失败。有没有一种方法可以在运行测试时进入控制台,同时还可以查看文件的更改?
运行鼻子测试时,我想进入交互式控制台。但是,如果我将以下内容放在我的代码中的任何位置:
import code
code.interact(local=locals())
Nose 只是打印 (InteractiveConsole) 并且不提供控制台来输入命令。Pytest 将 code.interact 视为失败。有没有一种方法可以在运行测试时进入控制台,同时还可以查看文件的更改?
在 pytest 下获得交互式会话的一种方法是设置断点
import pdb
pdb.set_trace()
通常,pytest 会抑制这个交互式会话,并在它遇到断点时挂起。您可以通过使用-s
标志运行 pytest 来解决这个问题,这会禁用命令行输出捕获。
在最新版本的 pytest 中,您可以pytest.set_trace()
不使用-s
标志来获得相同的行为。有关信息,请参阅文档。