2016-01-07 115 views
1

我有一個Python腳本。我使用unittest進行測試,但是如何測試整個腳本。Python測試整個腳本

我的想法是這樣的:

def test_script(self): 
    output=runScript('test.py --a 5 --b 3') 
    self.assertEqual(output, '8') 

test.py採用參數a和b和打印A + B,在這種情況下,8

回答

1

可以使用subprocess庫調用腳本並捕獲輸出。

import subprocess 

p = subprocess.Popen(
    ['./test.py', '--a', ...], 
    stdout=subprocess.PIPE, 
    stderr=subprocess.STDOUT 
) 

print p.stdout.read() 
0

不知道這是你想要的,使用Python單元測試的收官之黑盒測試

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') 

添加測試用例到單元測試

if __name__ == '__main__': 
    suite = unittest.TestLoader().loadTestsFromTestCase(ScriptTest) 
    unittest.TextTestRunner(verbosity=2).run(suite)