python - 暂停 PyTest 并等待用户输入
问题描述
如何暂停正在运行的测试并等待用户输入?
我有一个非常规测试(python 3,pytest),我想在继续测试之前“暂停”向用户(我)询问 id 代码。
我知道这不是标准的,并且想知道如何解决这个问题。
示例测试:
def test_oauth_flow(self):
url_jwt = auth(id=client_id, scope=scope)
id_code = webbrowser.open_new(url_jwt)
# pause wait for user input.
# use code to complete flow etc....
auth = auth(code)
assert auth is 1
解决方案
好吧,它总是取决于你在测试什么,但我的建议是针对外部 API 运行 ContractTests 并记录对后者的响应,以便让这些数据可用于你的功能测试。
要记录响应,您可以使用 vcr,它是一个 Ruby 工具:https ://github.com/vcr/vcr ,但也有一个 python 实现(我没有使用它)https://github.com/kevin1024 /vcrpy
推荐阅读
- php - 连接到 Cloud Datastore 时出现致命错误代码 401
- sql - 消息 240,锚点和列中的递归部分之间的类型不匹配
- java - 为什么我编码错误,geotools create shapefile chinese setAttribute error
- kotlin - 通过 vert.x 发送文件作为响应的表达式的名称是什么
- python - 如何消除导入文本的一部分
- reactjs - 导入默认导出未定义
- symfony - Symfony 4登录表单:认证成功,但重定向后认证立即丢失
- .net - 安装 Windows 服务时 Topshelf 抛出错误
- c++ - 为什么擦除命令会结束我的 while 循环?
- installation - 黑板安装