Windows installer 使用ServerSpec测试软件包安装时有哪些目标或最佳做法?

Windows installer 使用ServerSpec测试软件包安装时有哪些目标或最佳做法?,windows-installer,chef-infra,serverspec,Windows Installer,Chef Infra,Serverspec,所以,我已经成功地使用Vagrant和Chef将MSI安装到Windows来宾VM上。呜!然后,我用ServerSpec编写了一些测试,检查MSI安装后,文件是否被放在正确的位置等等 我的问题是:在验收测试这样的软件包安装时,我应该有什么样的目标?我应该检查特定的文件吗?但是如果有很多文件呢?还是检查每个文件的级别太低?太接近实施细节?在为成功的软件包安装编写验收测试时,我应该处于什么级别?就我个人而言,我从未订阅过这种级别的测试。Windows Installer已经有15年多的历史了,而且非

所以,我已经成功地使用Vagrant和Chef将MSI安装到Windows来宾VM上。呜!然后,我用ServerSpec编写了一些测试,检查MSI安装后,文件是否被放在正确的位置等等


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

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

就个人而言,我会编写测试来验证Add-Remove程序中是否有1个条目,以及它是否是您期望的版本。然后,您可以进一步验证卸载是否“干净”。您可能必须列出已知用户数据的例外情况。我唯一能想到的另一个测试是installnew和installold,upgradenew将您带到同一个文件集


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

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

  • 我需要安装xxx
  • 我需要修复xxx的配置文件
  • 我需要启动xxx服务
  • 然后我将在我的serverspec中编写三个测试

  • 使用
    软件包检查以确保安装成功
  • 检查
    文件
    以确保配置文件存在,且模式、所有者、组和内容正确
  • 使用
    service
    检查服务是否正在运行

  • 然后,我将使用
    文件
    模板
    服务
    资源编写我的配方。

    请参阅:@Mark,这是ServerSpec的一个资源。但我想知道,从更高的层次、更哲学的角度来看,验收测试的范围应该是什么。我可以考虑进行测试的一个好处是使其具有可重复性,从而可以测试安装在应用程序更改后是否仍能正常工作。它可以在各种操作系统版本上工作。测试卸载和升级是个好主意。这是一个很好的考虑方法。与资源匹配的测试。