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