运行测试时,鼻子或pytest会进入交互式控制台

时间:2013-10-03 21:17:49

标签: python unit-testing console

运行nosetests时,我想进入交互式控制台。但是,如果我在代码中的任何位置添加以下内容:

import code
code.interact(local=locals())

Nose只打印(InteractiveConsole)并且不提供控制台来输入命令。 Pytest将code.interact视为失败。有没有办法在运行测试时进入控制台,同时还要观察文件的变化?

1 个答案:

答案 0 :(得分:3)

在pytest下获取交互式会话的一种方法是使用

设置断点
import pdb
pdb.set_trace()

通常情况下,pytest会阻止这个交互式会话,只会在遇到断点时挂起。您可以通过使用-s标志运行pytest来解决这个问题,这会禁用命令行输出捕获。

在最新版本的pytest中,您可以使用pytest.set_trace()而不使用-s标志来获得相同的行为。有关信息,请参阅the docs