【发布时间】:2015-08-20 16:59:40
【问题描述】:
我想知道是否有办法为安装程序定义测试(例如单元测试),特别是用 WiX 和 InstallShield 制作的安装程序。
【问题讨论】:
标签: windows-installer tdd automated-tests installshield-2012
我想知道是否有办法为安装程序定义测试(例如单元测试),特别是用 WiX 和 InstallShield 制作的安装程序。
【问题讨论】:
标签: windows-installer tdd automated-tests installshield-2012
为了测试您的自定义操作,Wix 工具集中有一个叫做 Lux 的东西。我确实尝试过一次,但还没有实现它,因为我不确定它所提供的优势。
关于很久以前我提出的问题很少。以下是一些可能对您有所帮助的信息
http://wixtoolset.org/documentation/manual/v3/overview/lux.html
除此之外,我不知道其他任何事情。
【讨论】:
您需要准确定义您认为需要测试的功能。验证 MSI 文件是否能正确安装文件似乎毫无意义,因为这只是测试 Microsoft 功能。这就像测试资源管理器是否会将一堆文件从 A 复制到 B。另一个示例:如果您正确指定该数据,MSI 将正确安装服务,但您如何知道您在 MSI 文件中获得的内容在第一名? Alsom 请记住,MSI 安装是事务性的 - 它会全部工作或全部失败,因此如果它完成则它工作,如果它失败它全部回滚。没有部分安装之类的东西。
问题是安装的几乎所有功能都属于 Microsoft,所以剩下的就是确保您的自定义操作代码检测到错误并在适当的情况下使安装失败,并且您被告知的所有内容(其中文件应该安装,它们的依赖关系、COM 信息、先决条件等)是正确的。
我从未遇到过任何人测试 MSI 文件中的内容是否已安装在系统上,因为这只是测试 Microsoft 软件是否完成了它的工作。因此,如果您被告知在某个位置安装文件,那么您可以验证该文件是否已安装在那里,但如果应用程序由于位置错误而失败,那么您只是在浪费时间!因此,IMO 唯一重要的测试是对已安装产品的完整测试。
【讨论】: