python nosetest在遇到「sys.exit()」時會退出,並且這個內置模擬不起作用。感謝您的建議。如何解決python nosetest中的「sys.exit()」問題?
11
A
回答
22
您可以嘗試捕獲SystemExit異常。當有人打電話給sys.exit()
時,會引發這個問題。
with self.assertRaises(SystemExit):
myFunctionThatSometimesCallsSysExit()
7
import sys
sys.exit = lambda *x: None
請記住,程序可能相當不希望sys.exit()
後繼續,所以修補它可能沒有實際的幫助......
+0
不一定。我使用sys.exit()來守護我的服務器。 –
5
如果您使用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
1
這是unittest
框架的例子。
with self.assertRaises(SystemExit) as cm:
my_function_that_uses_sys_exit()
self.assertEqual(cm.exception.code, expected_return_code)
相關問題
- 1. 如何解決python nosetest中的內存分配錯誤?
- 2. pygame中的sys.exit()問題
- 3. 用python解決ODE問題
- 4. 如何解決asp.net中的COM問題?
- 5. 如何解決FindBugs中的FCBL_FIELD_COULD_BE_LOCAL問題?
- 6. 如何解決IE中TInyMCE的問題?
- 7. 如何解決JBoss中的OutOfMemoryError問題?
- 8. 如何解決TFS2015中的TF53001問題?
- 9. 如何解決MongoDB中的「Digg」問題
- 10. 如何解決asp.net中的cookies問題
- 11. 如何解決SPF問題
- 12. 如何解決此問題?
- 13. 如何解決mysql_fetch_array()問題
- 14. 如何解決DataGridView.RowValidating問題
- 15. NSThread問題如何解決?
- 16. 如何解決IE7問題
- 17. 如何解決`PlaceAutocompleteFragment`問題?
- 18. 如何解決nsusredefaults問題
- 19. 如何解決connection.session問題
- 20. 如何解決SecurityException問題?
- 21. 如何解決javax.mail.AuthenticationFailedException問題?
- 22. 如何解決zkemkeeper問題?
- 23. 在Python中解決縮進問題
- 24. 如何在Python中解決未處理的NameError問題
- 25. 如何解決python中的安全問題?
- 26. 如何解決python中的LCP(線性互補問題)?
- 27. 如何解決在Eclipse中的問題「無法解決」?
- 28. 的Python:解決問題,我的類
- 29. 如何在Eclipse中解決此問題
- 30. Python:如何解決IndentationError
與self.assertRaises(SystemExit): myFunction的() –
輝煌!當你使用其他人的腳本和編排自動化工具時,這真的很有用:) – theMarceloR