在VirtualBox虚拟机上测试结构脚本
fabtest的Python项目详细描述
fabtest是一组帮助测试fabric的实用程序和基本测试用例 针对VirtualBox虚拟机的脚本。许可证是麻省理工学院的。
vm在每次测试之前回滚到初始状态,以便测试可以执行任何操作 对于目标系统;fabric命令可以从python运行。
安装
pip install fabtest
虚拟机
为了运行测试,您需要VirtualBox4.x和一个os映像。 映像应安装ssh服务器。
示例vm(它们可以通过文件导入到virtualbox->;导入设备):
由于VirtualBox中存在错误,最好转换导入的.vmdk磁盘映像 到.vdi图像,例如:
VBoxManage clonehd Ubuntu-10.10-disk1.vmdk Ubuntu-10.10-disk.vdi --format VDI
然后从vm分离(并移除)vmdk磁盘并附加vdi映像。
获取图像后,确保它没有运行并执行 fabtest-preparevm脚本(将虚拟机名称或uid传递给它):
fabtest-preparevm Lenny
此命令配置端口转发(127.0.0.1:2222到Guest 22端口, 127.0.0.1:8888到来宾80端口)并拍摄“Fabtest初始”快照 用于测试回滚(为了 加速测试)。
编写测试
子类fabtest.virtualboxtest或fabtest.fabtest并将fabtest.fab用于 结构命令执行:
from fabric.api import run from fabtest import FabTest, fab def whoami(): return run('whoami') class MyTestCase(FabTest): def test_root_login(self): output = fab(whoami) self.assertEqual(output, 'root')
查看源代码(和example/runtests.py)了解更多信息。
变化
0.1.5(2012-04-19)
- 改进了针对VirtualBox Bug的解决方法。
0.1.4(2012-04-19)
- 解决windows下的virtualbox错误。
0.1.3(2012-04-14)
- 包装修复。
0.1.1(2012-03-02)
- 更好的异常处理(保留原始回溯)。
0.1(2012-03-01)
- 支持fabric>;=1.4(并且是必需的);
- 更可靠的VirtualBox快照处理;
- fab函数现在包装结构的execute和 返回单个值,而不是值列表。
0.0.8(2011-03-22)
- 许多调整和错误修复。
0.0.1(2011-02-16)
初始实验版本(摘自django fab deploy)。