首页 > 解决方案 > 暂停 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

标签: pythonpython-3.xpytest

解决方案


好吧,它总是取决于你在测试什么,但我的建议是针对外部 API 运行 ContractTests 并记录对后者的响应,以便让这些数据可用于你的功能测试。

要记录响应,您可以使用 vcr,它是一个 Ruby 工具:https ://github.com/vcr/vcr ,但也有一个 python 实现(我没有使用它)https://github.com/kevin1024 /vcrpy


推荐阅读