我一直在尝试使用 DUnit 进行 GUI 测试,其中包括通过 @tomazy 的消息循环计时器系统与模式窗口进行交互(有关更多详细信息,请参阅我之前的问题:(如何)我可以将 FutureWindows 与标准文件打开对话框一起使用吗?)。
当我手动运行测试时,我在另一个问题中的解决方案工作正常,但是当我在 TeamCity 的连续构建系统中运行它时,它会在应该处理对话框的 OK 消息时挂起。运行测试的服务设置了“与桌面交互”权限,并且我已经验证只有在按下 OK 时才会发生挂起(即发生 CDN_FILEOK 通知)。我可以使用 WM_CLOSE 关闭对话框,但这自然不会导致对话框返回 OK 模态结果,因此不可用。
如果我不能让它工作,我可能不得不修改生产代码(测试目标)以发布一个事件以提供文件名并将测试挂钩放入其中并在没有对话框的情况下提供它,但我'想知道是什么导致了这个问题,当然最好在不修改生产代码的情况下解决它。