【问题标题】:unit test installers单元测试安装程序
【发布时间】:2012-11-01 15:22:13
【问题描述】:

我开始使用 WiX(是的,不是 Installshield)做一些安装工作,我希望做一些安装程序的 TDD。有人知道这样做的简单方法吗?

【问题讨论】:

    标签: tdd wix


    【解决方案1】:

    在我看来,这更像是一个集成测试而不是 TDD。

    据我所知,没有 MSI 测试套装。

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

    1. 成功构建后,在干净的虚拟机上安装 MSI - 如果安装失败,请执行某些操作(邮件、票证等)
    2. 运行项目中的任何集成测试

    之后,您可以确定已安装的应用程序会执行应有的操作。

    【讨论】:

    • 除上述之外,我强烈建议您在以前的安装之上重复安装,尤其是当您使用 MSI(Windows 安装程序)时。这样,您可能会在用户体验之前损坏 Windows Installer(注册表、文件等),并开发解决方案。
    【解决方案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()
    

    等等

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

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

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

        【讨论】:

        猜你喜欢
        • 2013-06-03
        • 2011-01-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-09-08
        • 1970-01-01
        • 2019-09-17
        • 2012-11-09
        相关资源
        最近更新 更多