单元测试安装程序

时间:2009-10-13 21:38:11

标签: tdd wix

我开始使用WiX(yay,而不是Installshield)进行一些安装程序工作,我希望能够安装一些TDD。有人知道一个简单的方法吗?

4 个答案:

答案 0 :(得分:6)

听起来我更像是集成测试,而不是TDD。

据我所知,本身没有MSI测试服。

然而你可以尝试这样的事情(假设你有一个连续的集成服务器):

  1. 成功构建后,在干净的虚拟机上安装MSI - 如果安装失败,请执行某些操作(邮件,票证等)
  2. 运行您对项目进行的任何集成测试
  3. 之后,您可以确定已安装的应用程序能够完成预期的工作。

答案 1 :(得分:2)

如果您创建一些脚本文件来检查文件是否在正确的位置,它是否有效。我希望把它作为perl或python脚本

test_installer_wix.pl

msiexec /x product.msi # remove
msiexec /i product.msi /silent # install

ASSERT_EXIST_FILE(PFILE, 'productname/application.exe')
ASSERT_REGKEY_EXISTS()

等等。

答案 2 :(得分:2)

我想添加关于如何为WIX installer数据库创建单元测试的帖子的链接:http://miroslawmiodonski.blogspot.com/2012/10/how-to-create-unit-test-for-wix.html

答案 3 :(得分:0)

对生成的MSI运行一些标准测试可能不是一个坏主意。 MSI文件支持许多不同的部署方案:管理员安装以提取文件,广告安装为活动目录,静默安装,维护安装,卸载等...也许这是一个想法为此创建一个小测试套件 - 也许它是甚至被我所知道的所有人都考虑用于WIX工具集。

但是,我认为提供高质量设置的第一步,最好的步骤是通过MSI验证套件运行MSI。这些被称为ICE(内部一致性评估程序),它们作为* .cub文件与Windows Installer SDK一起提供。运行这些脚本往往会在MSI中揭示许多糟糕的设计结构。用于此的WIX工具称为smoke.exe。