0

因此,我已成功使用 Vagrant 和 Chef 将 MSI 安装到 Windows 来宾 VM 上。哇!然后,我用 ServerSpec 编写了一些测试,检查在安装 MSI 后,文件是否被放入了适当的位置等等。

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

4

2 回答 2

2

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

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

然后我会在我的 serverspec 中编写三个测试。

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

然后我会使用package,filetemplate, 和service资源来编写我的食谱。

于 2015-02-11T16:45:32.840 回答
0

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

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

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

于 2015-02-10T22:49:05.180 回答