运行nosetests时,我想进入交互式控制台。但是,如果我在代码中的任何位置添加以下内容:
import code
code.interact(local=locals())
Nose只打印(InteractiveConsole)并且不提供控制台来输入命令。 Pytest将code.interact视为失败。有没有办法在运行测试时进入控制台,同时还要观察文件的变化?
答案 0 :(得分:3)
在pytest下获取交互式会话的一种方法是使用
设置断点import pdb
pdb.set_trace()
通常情况下,pytest会阻止这个交互式会话,只会在遇到断点时挂起。您可以通过使用-s
标志运行pytest来解决这个问题,这会禁用命令行输出捕获。
在最新版本的pytest中,您可以使用pytest.set_trace()
而不使用-s
标志来获得相同的行为。有关信息,请参阅the docs。