Python测试整个脚本

时间:2016-01-07 22:36:43

标签: python unit-testing python-3.x testing automated-tests

我有一个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

2 个答案:

答案 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)