在腳本開始時,我使用platform.system
和platform.release
來確定腳本運行在哪個操作系統和版本上(因此它知道它的數據位於Mac上的應用程序支持,位於unix-like和non-mac unix,appdata窗口< = XP,以及appdata /在Windows> = Vista上漫遊)。我想測試一系列if
s,elif
s和else
s是什麼決定了操作系統和發行版,但我只能訪問Mac 10.6.7,某些未知版本的Linux和Windows 7。有沒有辦法喂platform
假系統和釋放信息,所以我可以肯定XP,Solaris等,將無需安裝正確處理腳本?給python「平臺」庫僞造平臺信息?
3
A
回答
2
也許像
>>> platform.system = lambda: "whatever"
>>> platform.system()
'whatever'
1
您可能想探索mockingplatform
爲您的測試。或者,您可以直接使用修補程序platform
,甚至直接與sys.modules
混淆以覆蓋默認的platform
模塊,但mock已被設計爲自包含,並且還具有在代碼中清楚地顯示什麼是和不是測試工具的好處,所以你不會無意中獲得生產代碼中發佈的測試功能。
1
你可以創建你的初始化函數把這些變量作爲參數,所以很容易欺騙他們在測試中
相關問題
- 1. 尋找x平臺python控制檯庫
- 2. 跨平臺Python通知庫
- 3. 有關設備,平臺等的信息
- 4. 在Android平臺上存儲信息表
- 5. snmp和平臺特定信息
- 6. 平臺與移動平臺
- 7. IOCP,跨平臺庫?
- 8. 如何平臺CSS僞元素
- 9. 如何使用Python 3.1.1獲取dll的目標平臺信息?
- 10. 聊天(XMPP)消息平臺
- 11. 消息傳遞平臺
- 12. 跨平臺錯誤消息
- 13. Python - 平臺無關5.1聲音庫
- 14. Android開發跨平臺到iOS平臺
- 15. 跨平臺移動平臺編程
- 16. 任何CPU平臺和X86平臺
- 17. 多平臺便攜式python
- 18. 將跨平臺C++庫移植到Windows Phone 8平臺
- 19. 開發跨平臺XNA庫
- 20. Java平臺庫的hashCode
- 21. 比較數據庫平臺
- 22. 跨平臺Ruby FFI庫
- 23. 會話不平靜平臺
- 24. 平臺「windows」
- 25. 多平臺getResourceAsStream
- 26. 跨平臺
- 27. 遊戲平臺
- 28. Android跨平臺
- 29. Android平臺
- 30. 黑莓平臺
我忘了提,我不希望虛擬化。 – tkbx