2024-06-16 11:30:25 发布
网友
当遇到“sys.exit()”时,python nosetest似乎将退出,并且对这个内置的模拟不起作用。谢谢你的建议。
您可以尝试捕获SystemExit异常。当有人调用sys.exit()时,它会被引发。
sys.exit()
with self.assertRaises(SystemExit): myFunctionThatSometimesCallsSysExit()
如果使用mock修补sys.exit,则可能修补不正确。
mock
sys.exit
这个小测试对我来说很好:
import sys from mock import patch def myfunction(): sys.exit(1) def test_myfunction(): with patch('foo.sys.exit') as exit_mock: myfunction() assert exit_mock.called
调用方式:
nosetests foo.py
输出:
. ---------------------------------------------------------------------- Ran 1 test in 0.001s OK
import sys sys.exit = lambda *x: None
请记住,程序可能合理地预期在sys.exit()之后不会继续,因此修补它实际上可能没有帮助。。。
您可以尝试捕获SystemExit异常。当有人调用
sys.exit()
时,它会被引发。如果使用
mock
修补sys.exit
,则可能修补不正确。这个小测试对我来说很好:
调用方式:
输出:
请记住,程序可能合理地预期在
sys.exit()
之后不会继续,因此修补它实际上可能没有帮助。。。相关问题 更多 >
编程相关推荐