3

运行鼻子测试时,我想进入交互式控制台。但是,如果我将以下内容放在我的代码中的任何位置:

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

Nose 只是打印 (InteractiveConsole) 并且不提供控制台来输入命令。Pytest 将 code.interact 视为失败。有没有一种方法可以在运行测试时进入控制台,同时还可以查看文件的更改?

4

1 回答 1

5

在 pytest 下获得交互式会话的一种方法是设置断点

import pdb
pdb.set_trace()

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

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

于 2013-10-04T12:33:06.053 回答