如何对 WIX 合并模块进行单元测试?

2024-02-27

我正在使用 WIX 构建合并模块。调用 WIX 工具从 *.wxs 文件生成合并模块的批处理文件由我的日常构建运行。

我试图弄清楚如何自动化这些合并模块的测试。我想测试的是,合并模块是否安装了所需的文件,文件的版本是否正确等。

我的一个想法是编写一个脚本(可能是 VB 脚本)来在临时位置安装合并模块,并检查它是否已正确安装所有内容。但是,我不确定这是否是正确的方法。

是否有为合并模块编写单元测试的标准方法?欢迎任何有关如何解决此问题的想法。


当您测试安装程序时,主要目标是验证

  1. 安装msi文件时,msiexec报告成功(即返回代码0).
  2. 运行安装程序后,您的应用程序可以启动并按预期工作。

第一点应该很容易做到,但如果您想保持测试自动化,则只能测试非交互式安装。以下是如何从批处理文件或命令行执行此操作的示例:

msiexec /i myinstaller.msi /passive || echo ERROR: non-zero return code!

第二点有点复杂。我认为实现此目标的最佳方法是在应用程序中构建一些集成测试,并在安装后调用这些测试:

"c:\program files\mystuff\app.exe" /selftest || echo ERROR: non-zero return code!

在您的情况下,您正在测试合并模块而不是整个安装程序。可以使用相同的方法。您只需要完成构建“自测试”应用程序及其使用合并模块的安装程序的额外工作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何对 WIX 合并模块进行单元测试? 的相关文章

随机推荐

  • 谷歌地图意外地重置相机缩小

    我有基于谷歌地图的应用程序 允许用户查看标记 我遇到的问题是 当我放大以查看地图上的所有标记时 几秒钟后地图将重置为原始缩放级别 并且我无法查看所有标记 我希望地图保持在用户缩放级别 但我无法想出逻辑 这是我的代码 Override pro
  • Java/Swing:从另一个类引用组件

    我有一个 Swing GUI 使用 Netbeans GUI Builder 构建 有一个标签 我可以使用箭头键来移动它 按空格键调用另一个类 我如何从此类访问标签 例如得到职位 预先感谢您的帮助 第二类的示例代码 public class
  • 如何指定API版本?

    根据Azure DevOps 服务 REST API 参考 https learn microsoft com en us rest api azure devops view azure devops rest 4 1 请求 URI 的格
  • javascript getDate getMonth 返回错误的月份[重复]

    这个问题在这里已经有答案了 我知道还有其他关于此的帖子 但我无法弄清楚我在这里做错了什么 下面是我的代码 var d new Date var month d getMonth System log d System log month 我
  • javascript 中的 wget 相当于从给定 url 下载文件的功能是什么?

    wget http www example com file doc http www example com file doc 将该文件下载到本地磁盘 在 javascript 中 上面的等价物是什么 例如 考虑以下 html 片段
  • 在 Objective C 中将对象添加到 NSMutableArray 时遇到问题

    我正在使用 iPhone SDK 但在执行一些简单操作时遇到问题 我正在尝试添加一个NSNumber反对NSMutableArray实例变量 我尝试添加 NSNumbercard到 NSMutableArray已查看的卡片数组 但是如果不破
  • 如何点击外部关闭这个菜单?

    我有这个菜单 CSS message display none position absolute width 120px background fff color 000 font weight bold 当我点击它时 它会打开 mess
  • Twitter 引导程序预先输入多个值?

    我正在使用 Twitter Bootstrap 和 Jquery 我想使用预先输入文本区域的函数 我可以非常轻松地使用它 但我也需要它允许多项选择 我的意思是 当我从自动完成中选择一个单词后 它会将我带回文本区域 然后再添加一个空格 然后如
  • crt0.o 和 crt1.o -- 有什么区别?

    最近我一直在尝试调试一些低级工作 但找不到crt0 S对于编译器 avr gcc https linux die net man 1 avr gcc 但我确实找到了crt1 S 与相应的 o files 这两个文件有什么区别 是crt1完全
  • Quasar:使用q-file选取图像时如何显示图像?

    Quasar 和 Vue 的新手 我正在使用 q file 它允许选择文件并拖放文件 但是 如何显示预览图像 Q uploader 似乎可以工作 但我如何更改它的用户界面 来自 Quasar 的组件链接 https quasar dev v
  • Haskell 使用数据构造函数过滤嵌套列表

    假设我有以下数据类型 data Number Positive Integer Negative Integer deriving Eq Show 我有一个函数定义 请注意 我无法更改此定义 或以任何方式解决它 我必须使用嵌套列表并以某种方
  • set_error_handler函数不调用自动加载

    我有set error handler 函数设置为在出现错误时调用函数 在该函数中 我有自己的异常类实现 function acs error handler errno errstr errfile errline throw new a
  • android中找不到文件异常

    我在java中使用加密并在php中执行解密 现在 当我将加密参数传递给 url 时 我没有得到正确的响应 这是我的安卓代码 public static InputStream multipartPOST String urlStr Hash
  • 当 json 解析空响应时 Whatwg Fetch 失败,如何防止它?

    我在前端和后端 NodeJS 都使用 Fetch API 在将响应解析为 json 时 我经常遇到一个问题 response json 将返回一个承诺 所以我事先不知道响应的正文是什么 当正文为空时 JSON 解析将失败并出现错误 Synt
  • 添加新字段后 Prisma 架构无法正确更新

    正如标题所述 我在 Next JS 应用程序中使用 Prisma 2 我有一个非常简单的架构 model User id Int id default autoincrement firstName String middleName St
  • Google 脚本中的 document.getelementbyId 不起作用

    我正在尝试制作一个 google script web 应用程序 它从 HTML 表单获取输入并将输入传递给脚本 现在 该功能失败是因为document getelementbyId text 回报null而不是实际的表单值 我怎样才能解决
  • AttributeError:模块“tensorflow.python.keras.utils.generic_utils”没有属性“populate_dict_with_module_objects”

    当我导入 keras 时 即使昨天运行正常 也会弹出上面的错误 我该如何解决这个错误 我正在 Windows 10 上工作 我的keras版本是 2 2 4 我的张量流版本是 2 2 0rc2 完整的错误回溯如下所示 Traceback m
  • 使用公共链接将公共对象上传到 Google Cloud Storage

    我已经到处搜索 但找不到解决方案 如何将公共对象上传到我的谷歌云存储 我想拥有它 这样一旦图像上传 世界上任何人都可以查看 It seems I can only get this done if I manually click the
  • 如何使用 PDO 和 SQL Server 获取最后插入行的 ID?

    在其他情况下我可能会想使用 result mssql query INSERT INTO table fields VALUES data SELECT CAST scope identity AS int 但由于我将插入用户提交的数据 我
  • 如何对 WIX 合并模块进行单元测试?

    我正在使用 WIX 构建合并模块 调用 WIX 工具从 wxs 文件生成合并模块的批处理文件由我的日常构建运行 我试图弄清楚如何自动化这些合并模块的测试 我想测试的是 合并模块是否安装了所需的文件 文件的版本是否正确等 我的一个想法是编写一