【发布时间】:2013-11-29 08:46:41
【问题描述】:
我有一个 Delphi 程序在运行到午夜时开始出现错误。为了制作可重现的测试用例,我必须将系统的本地时间更改为午夜之前的某个时间,运行程序一段时间,检查错误并切换回来。虽然这肯定可以手动完成,但我在自动化测试时遇到了问题。
有没有可能在不改变系统时间的情况下给应用程序一个特殊的运行时间?这可以来自程序外部甚至内部。
虽然这可能是一个常见的 Windows 问题,但我用 Delphi 标记了它,因为任何使用 Delphi 的解决方案都很好,而在这种情况下,一些其他编程环境的解决方案是无用的。
【问题讨论】:
-
除了一些现有的工具(这可能几乎无缘无故地很难开发,因为您可以轻松地制作一个工具来更改系统时间进行测试并自己更改回来),我怀疑除了重定向正在获得时间的 Windows API 函数之外还有其他方法。
-
@TLama,当然我可以写一个工具来做时间切换。由于测试应该在 CI 系统内运行,因此这次切换可能会干扰同时在该系统上运行的其他进程。它甚至可能会干扰 CI 系统本身。我已经考虑过将呼叫重定向到 GetLocalTime,但我决定先在这里询问。
-
也许您可以在测试环境中使用备用时间服务器?我找到了一个想要在 XP 中这样做的人的帖子(谷歌搜索 google.com/search?q="change+windows+time"+testing),他通过谷歌搜索找到了答案 google.com/search?hl=en&q=XP+TIME+SERVER
-
什么是“CI系统”?
-
@Sam CI = 持续集成en.wikipedia.org/wiki/Continuous_integration
标签: windows delphi time delphi-xe3