有人成功测试过他们的fabric任务吗?是否有任何可以帮助的库?
我对补丁/模拟非常熟悉,但是使用fabric却很困难,我也查看了fabric自己的测试套件,可惜没有帮助,fabric文档中似乎也没有相关主题。
这些是我正在尝试测试的任务...如果可能的话,我想避免启动虚拟机。
感谢您的帮助,提前致谢。
有人成功测试过他们的fabric任务吗?是否有任何可以帮助的库?
我对补丁/模拟非常熟悉,但是使用fabric却很困难,我也查看了fabric自己的测试套件,可惜没有帮助,fabric文档中似乎也没有相关主题。
这些是我正在尝试测试的任务...如果可能的话,我想避免启动虚拟机。
感谢您的帮助,提前致谢。
def agnostic_install_lsb():
def install_helper(installer_command):
ret = run('which %s' % installer_command)
if ret.return_code == 0:
sudo('%s install -y lsb-release' % installer_command)
return True
return False
install_commands = ['apt-get', 'yum', 'zypper']
for cmd in install_commands:
if install_helper(cmd):
return True
return False
agnostic_install_lsb
的任务,如何在本地机器上进行功能测试?run
、local
和 sudo
的调用来进行单元测试,但在集成测试方面并没有太多的选择。
如果您愿意满足于简单的单元测试,那么除了使用 mock
和 nose
之外,就不需要太多的测试框架,因为所有的单元测试都在严格控制的条件下进行。sudo
、local
和 run
函数将其命令记录到一组 StringIO
或文件中,但是,除非我忽略了某些聪明的东西,否则您还必须非常小心地模拟它们的返回值。
继续陈述您可能已经知道的事情,您的模拟要么必须了解 Fabric 上下文管理器(困难),要么必须模拟您使用的所有上下文管理器(仍然困难,但不像前者那么糟糕)。run
、sudo
和您正在使用的 Fabric 的任何其他部分的模拟,而不是尝试在每个测试基础上进行更少量的模拟。
此时,您将构建一个相对通用的 Fabric 测试框架,应该将其作为 "mabric" 在 PyPi 上共享。run('echo "cthulhu" | sudo tee /etc/hostname')
切换到 sudo('echo "cthulhu" > /etc/hostname')
不应该破坏测试,但很难看到如何通过简单的模拟来实现这一点。
这是因为我们开始模糊功能和单元测试之间的界限,而这种基本的模拟是试图将单元测试方法应用于功能测试。