今天,我在我们的应用程序中添加了一些简单的WatiN测试,以检查Cookie值是否正确存储。
测试在团队中的所有机器上本地通过。但是,当CruiseControl在我们的构建服务器上运行测试时,这些新测试在包含以下内容的行上失败
browser.GetCookie(url, cookieName)
CruiseControl日志中给出的错误是:
Object reference not set to an instance of an object.
我已经使用运行CruiseControl的相同用户帐户使用远程桌面登录到构建服务器,并手动运行MbUnit,测试通过。因此,构建服务器上访问cookies的权限不会有问题。
我已经查阅了所有的WatiN文档以获得帮助,但一无所获。我已经重新启动了CruiseControl服务。我已经尝试了我能想到的所有方法,现在我完全不知道Cruise Control运行这些测试的方式可能会有什么不同。
有没有人知道这可能是什么原因和/或如何解决?
发布于 2008-11-05 20:05:55
尝试将CruiseControl作为应用程序运行,而不是作为服务运行。从服务运行时,WatiN往往会挂起(因为windows服务没有附加到UI会话,而WatiN需要一个会话来处理IE中的对话框)。
但除此之外..。回想一下,IE cookie存储在您的用户配置文件中。配置文件不会在服务运行时加载--它们是后台静默运行的守护进程,实际上并不在登录会话的上下文中运行。我怀疑这就是你的异常的原因。
https://stackoverflow.com/questions/187391
复制相似问题