所以,我已成功使用Vagrant和Chef在Windows客户虚拟机上安装MSI。活泉!然后,我用ServerSpec编写了一些测试,检查在安装MSI之后,文件被放到适当的位置和类似的东西。
我的问题是:在接受测试安装这样的软件包时,我应该具备哪些目标?我应该检查特定文件吗?但是如果有很多文件呢?或者是检查每个文件太低级别?太接近实施细节了?在为成功的软件包安装编写验收测试时,我应该达到什么级别?
答案 0 :(得分:2)
我使用测试驱动开发,因此我的配方中每个资源通常只有一个测试。我先写测试。所以,如果我的基本设计是:
然后我在我的serverspec中写了三个测试。
package
以确保安装发生file
以确保配置文件存在,并使用正确的模式,所有者,组和内容service
服务是否正在运行。然后我使用package
,file
或template
和service
资源来撰写我的食谱。
答案 1 :(得分:0)
就个人而言,我从未订阅过这种级别的测试。 Windows Installer已经存在了大约15年以上,而且非常可预测。它已经是一种声明性语言,如果你开始编写测试来验证结果,你基本上就是维护两组不同的数据。也许我错了,自己决定。
就个人而言,我会编写测试来验证添加删除程序中的1个条目,以及它是您期望的版本。然后你可以再往前走一点来验证卸载是否干净"。您可能必须列出已知用户数据的例外情况。我能想到的唯一一个其他测试就是安装new并安装旧的,升级new会让你进入同一个文件集。
然后我会编写测试来验证应用程序功能本身。如果应用程序有效,则安装很好。如果失败,根本原因,修复应用程序或安装程序并冲洗并重复。