使用ServerSpec测试软件包安装时有哪些目标或最佳实践?

时间:2015-02-10 20:25:00

标签: windows-installer chef serverspec

所以,我已成功使用Vagrant和Chef在Windows客户虚拟机上安装MSI。活泉!然后,我用ServerSpec编写了一些测试,检查在安装MSI之后,文件被放到适当的位置和类似的东西。

我的问题是:在接受测试安装这样的软件包时,我应该具备哪些目标?我应该检查特定文件吗?但是如果有很多文件呢?或者是检查每个文件太低级别?太接近实施细节了?在为成功的软件包安装编写验收测试时,我应该达到什么级别?

2 个答案:

答案 0 :(得分:2)

我使用测试驱动开发,因此我的配方中每个资源通常只有一个测试。我先写测试。所以,如果我的基本设计是:

  1. 我需要安装xxx
  2. 我需要修复xxx的配置文件
  3. 我需要启动xxx服务
  4. 然后我在我的serverspec中写了三个测试。

    1. 检查package以确保安装发生
    2. 检查file以确保配置文件存在,并使用正确的模式,所有者,组和内容
    3. 检查service服务是否正在运行。
    4. 然后我使用packagefiletemplateservice资源来撰写我的食谱。

答案 1 :(得分:0)

就个人而言,我从未订阅过这种级别的测试。 Windows Installer已经存在了大约15年以上,而且非常可预测。它已经是一种声明性语言,如果你开始编写测试来验证结果,你基本上就是维护两组不同的数据。也许我错了,自己决定。

就个人而言,我会编写测试来验证添加删除程序中的1个条目,以及它是您期望的版本。然后你可以再往前走一点来验证卸载是否干净"。您可能必须列出已知用户数据的例外情况。我能想到的唯一一个其他测试就是安装new并安装旧的,升级new会让你进入同一个文件集。

然后我会编写测试来验证应用程序功能本身。如果应用程序有效,则安装很好。如果失败,根本原因,修复应用程序或安装程序并冲洗并重复。