testing自动化:如何模拟电源故障/机器故障?

我有一个delphi应用程序依靠SQLite3,一个数据库引擎广告作为防崩溃。

到目前为止,我能够使我的整个应用程序防崩溃,但现在我需要模拟残酷的机器重新启动/电源故障。

很显然,为了进行这个testing,我的机器会每天100次地重新启动,这太疯狂/不切合实际了。

我想知道是否有一种方法来模拟使用VirtualBox(或类似的)以编程方式/自动化方式的电源故障

任何其他的方法/思想都会比欢迎,我的目标是确保我的用户的数据永远不会损坏。

PS。 这个问题适用于Windows XP或更高版本

在虚拟主机上运行这个应该可以做到

VBoxManage controlvm(vmname)重置/关闭

VBoxManage controlvm(vmname)reset在虚拟机上的效果与在真实计算机上按下“重置”按钮相同:虚拟机的冷重新启动,将立即重新启动并重新引导客户机操作系统。 虚拟机的状态不会预先保存,数据可能会丢失。 (这相当于在GUI的“机器”菜单中选择“重置”项目。)

VBoxManage controlvm(vmname)poweroff在虚拟机上的效果与在真实计算机上拉动电源线相同。 同样,VM的状态不会事先保存,数据可能会丢失。 (这相当于在GUI的“机器”菜单中选择“关闭”项目,或者按下窗口的关闭按钮,然后在对话框中选择“关闭机器”)。