嘿,我一直在搞乱Python,我需要知道如果有一种测试方式,如果Python脚本的输出等于什么。继承人我一直在尝试:如何测试Python脚本的输出是什么
a = """
print("Hey")
b = 5
print(str(b+5))
"""
if str(exec(a)) == "Hey\n10":
print("True")
它只是打印出执行'a'的答案。
我在做什么错?
嘿,我一直在搞乱Python,我需要知道如果有一种测试方式,如果Python脚本的输出等于什么。继承人我一直在尝试:如何测试Python脚本的输出是什么
a = """
print("Hey")
b = 5
print(str(b+5))
"""
if str(exec(a)) == "Hey\n10":
print("True")
它只是打印出执行'a'的答案。
我在做什么错?
试试这个:
把你想要在一个Python文件来测试代码:
myFile.py
a = """
print("Hey")
b = 5
print(str(b+5))
"""
exec(a)
现在,使用bash脚本来运行Python脚本,并将结果在另一个文件(用于比较)
test.sh
#!/bin/bash
python myFile.py > output.txt
现在,使用Python脚本调用bash脚本,然后测试输出(从输出文件中读取)要求:
test.py
import subprocess
subprocess.check_call("test.sh", shell=True)
with open('output.txt') as infile:
output = infile.read()
if output == "Hey\n10":
print("True")
尝试更换默认SYS。标准输出
import sys
from StringIO import StringIO
a = """
print("Hey")
b = 5
print(str(b+5))
"""
buffer = StringIO()
sys.stdout = buffer
exec (a)
#remember to restore the original stdout!
sys.stdout = sys.__stdout__
print buffer.getvalue()
这样你就可以存储你的exec输出