如何设计安装程序,以便它可以用于自动验收测试

时间:2011-09-07 16:13:05

标签: winforms installer continuous-integration windows-installer continuous-deployment

背景

我们有一个Windows安装程序,只需安装并启动我们的自定义WinForms安装程序。此自定义安装程序执行实际安装:创建IIS Web应用程序,复制dll,安装数据库等...

我们现在想要编写一些自动验收测试,其中包括使用与我们在生产中使用相同的安装程序来安装软件。我们希望每天晚上在专用机器上运行验收测试,然后作为持续集成管道的一部分。

问题:

证明自动化WinForms安装程序很困难。我们不需要特殊的安装代码进行验收测试。

问题:

您有多聪明的建议将部署流程集成到自动化测试中?

我怀疑将WinForms用于安装程序的决定是一个糟糕的选择 - 特别是因为生成的应用程序没有明确地将UI代码与实际安装代码分开。

1 个答案:

答案 0 :(得分:5)

我的建议是使用基于MSI的安装程序,而不是尝试使用Windows窗体自行推送。请研究使用Windows Installer XML (WiX) toolset这是一个流行的免费开源工具集来创建安装程序。

使用MSI有许多优点,特别是它使得混合安装程序逻辑和UI(类似于falling into the pit of success)相当困难,因此使无人值守的安装程序适合在远程计算机上运行是件小事

如果您已经致力于当前的安装方法,那么您需要将UI和逻辑分离到可以在不显示任何UI的情况下运行安装的位置 - 很难就如何执行此操作提供任何具体建议没有更具体的例子。