(这是How can I make py.test tests accept interactive input?)更具体的版本。
我正在使用py.test,我正在尝试使stdin和stdout正常工作 - 即print()应该立即打印到终端,而input()(这是Python 3.5)应该接受交互式输入线。
(我试图让我的测试用例执行此操作,我知道单元测试不正常,我不试图让我的测试用例测试使用stdin和stdout的其他东西)
使用-s标志运行pytest非常符合我的要求,但我宁愿将其作为我的测试模块或单个测试函数中的选项集。特别是因为我只想在一些测试中使用它。 capsys.disabled()作为上下文管理器不会削减它 - 它只处理stdout和stderr,而不是stdin。
有没有办法做到这一点,通过标记/装饰/上下文管理器调用pytest选项,或者在我的模块中“重新连接”sys.stdin / stdout的方法?
谢谢。
答案 0 :(得分:-2)
http://doc.pytest.org/en/latest/capture.html提供了如何禁用stdout捕获:
np.max(image)
2.9269187
np.min(image)
-1.759946