PyTest文档指出stdin被重定向到null,因为没有人会想要在批处理测试上下文中进行交互式测试。这是事实,但交互并不是stdin的唯一用途。我想测试使用stdin的代码,就像使用任何其他文件一样。我很高兴stdout和sterr被捕获但是如何实际上将stdin连接到io.StringIO对象以符合PyTest的方式说?
答案 0 :(得分:5)
您可以mock it:
def test_method(monkeypatch):
monkeypatch.setattr('sys.stdin', io.StringIO('my input'))
# test code
答案 1 :(得分:0)
也许您可以将脚本作为import subprocess
def test_a_repl_session():
comlist = ['./executable_script.py']
script = b'input\nlines\n\n'
res = subprocess.run(comlist, input=script,
stdout=subprocess.PIPE, stderr=subprocess.PIPE)
assert res.returncode == 0
assert res.stdout
assert res.stderr == b''
来运行?在Python 3.6中:
fs.rename("${nombreHtml}.html",(err)=>{
console.log(err)
})
fs.appendFileSync("${nombreHtml}.html", htmlSeparado, () => { })