2008-10-09 36 views
1

我今天在应用程序中添加了一些简单的WatiN测试,以检查cookie值是否正确存储。使用IE.GetCookie仅从CruiseControl失败的WatiN测试

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

browser.GetCookie(url, cookieName)

在CruiseControl的日志中给出的错误的行是老栗:

Object reference not set to an instance of an object.

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

我已经浏览了所有的WatiN文档以获取帮助,但是却空了。我重新启动了CruiseControl服务。我已经尝试过所有我能想到的事情,现在我完全处于亏损状态,因为Cruise Control运行这些测试的方式会有所不同。

有没有人知道是什么原因造成的,或者如何解决?

回答

2

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

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