使用ServerSpec测试软件包安装时的一些目标或最佳实践是什么



因此,我已经成功地使用Vagrant和Chef在Windows来宾虚拟机上安装了MSI。哇!然后,我用ServerSpec写了一些测试,检查MSI安装后,文件是否被放在了正确的位置等等。

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

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

  1. 我需要安装xxx
  2. 我需要修复xxx的配置文件
  3. 我需要启动xxx服务

然后我会在我的服务器规范中写三个测试。

  1. package核实以确保安装成功
  2. 使用file进行检查,以确保配置文件存在,具有正确的模式、所有者、组和内容
  3. 使用service检查服务是否正在运行

然后,我会使用packagefiletemplateservice资源编写我的食谱。

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

就我个人而言,我会写测试来验证"添加-删除程序"中是否有1个条目,以及它是否是您期望的版本。然后,您可以进一步验证卸载是否"干净"。您可能需要列出已知用户数据的例外情况。我唯一能想到的另一个测试是安装新的和旧的,升级新的可以让你进入同一个文件集。

然后我会编写测试来验证应用程序功能本身。如果应用程序正常工作,则安装良好。如果失败,请找出根本原因,修复应用程序或安装程序,然后冲洗并重复。

最新更新