我有一个Python脚本。我使用unittest
进行测试,但我如何测试整个脚本。
我的想法是这样的:
def test_script(self):
output=runScript('test.py --a 5 --b 3')
self.assertEqual(output, '8')
test.py接受参数a和b并打印a + b,在本例中为8
答案 0 :(得分:1)
您可以使用subprocess库来调用脚本并捕获输出。
import subprocess
p = subprocess.Popen(
['./test.py', '--a', ...],
stdout=subprocess.PIPE,
stderr=subprocess.STDOUT
)
print p.stdout.read()
答案 1 :(得分:0)
不确定这是你想要的,使用python unittest来完成黑盒测试
import unittest # install and import
将您的测试包装在TestCase
中class ScriptTest(unittest.TestCase):
def test_script(self):
output=runScript('test.py --a 5 --b 3')
self.assertEqual(output, '8')
将TestCase添加到unittest
if __name__ == '__main__':
suite = unittest.TestLoader().loadTestsFromTestCase(ScriptTest)
unittest.TextTestRunner(verbosity=2).run(suite)