1

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

测试在团队中的所有机器上本地通过。但是,当 CruiseControl 在我们的构建服务器上运行测试时,这些新测试在包含

browser.GetCookie(url, cookieName)

CruiseControl 日志中给出的错误是旧栗子:

Object reference not set to an instance of an object.

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

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

有人知道是什么原因造成的和/或如何解决吗?

4

1 回答 1

2

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

但除此之外......请记住,IE cookie 存储在您的用户配置文件中。服务运行时不会加载配置文件——它们是在后台安静运行的守护进程,实际上并不在登录会话的上下文中运行。我怀疑这是你异常的原因。

于 2008-11-05T20:05:55.327 回答