你仍然可以使用标准
unittest
将整个应用程序格式化并作为标准函数进行测试。制作一个使脚本入口点成为简单包装器的包装器,如:
if __name__ == "__main__":
sys.exit(main(sys.argv))
只要你不滥用全局变量来保持状态,你只需要测试
main()
功能。
如果你想测试你无法控制的脚本,你仍然可以使用
单元测试
和
subprocess
通过编写一个测试,比如:
def test_process(self):
result = subprocess.run(['your_script', 'your_args', ...], capture_output=True)
self.assertIn('expected out', result.stdout)
def test_process_failure(self):
result = subprocess.run(['your_script', 'your_args', ...], capture_output=True)
self.assertEqual(result.returncode, 1)