在脚本开始时,我使用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