2008-10-09 37 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存儲在您的用戶配置文件中。服務運行時不加載配置文件 - 它們是守護程序進程,在後檯安靜地運行,並且不會在登錄會話的上下文中運行。我懷疑這是你例外的原因。