我今天在我们的应用程序中添加了一些简单的WatiN测试,以检查cookie值是否正确存储。

测试在团队中的所有计算机上本地传递。但是,当CruiseControl在我们的Build服务器上运行测试时,这些新测试在包含

的行上失败

browser.GetCookie(url,cookieName)

CruiseControl日志中给出的错误是以下的旧板栗:

未将对象引用设置为对象的实例。

我使用与CruiseControl运行相同的用户帐户登录到使用远程桌面的Build服务器,并手动运行MbUnit,测试通过。因此,构建服务器上的权限访问cookie不会有问题。

我查看了所有WatiN文档以获取帮助,但是空白了。我重新启动了CruiseControl服务。我已经尝试了所有我能想到的东西,现在我现在完全不知道Cruise Control运行这些测试的方式会有什么不同。

是否有人知道可能导致此问题的原因和/或如何解决?

有帮助吗?

解决方案

尝试将CruiseControl作为应用程序而不是作为服务运行。当从服务运行时,WatiN倾向于挂起(因为Windows服务没有附加到UI会话,并且WatiN需要一个用于处理IE中的对话框)。

但除此之外......回想一下,IE cookie存储在您的用户个人资料中。服务运行时不会加载配置文件 - 它们是在后台安静运行但实际上不在登录会话环境中运行的守护程序进程。我怀疑这是你例外的原因。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top