我們已經使用Watin和CruiseControl.net幾個星期了,大多數時候它們都能很好地協同工作。我們在開發人員機器上運行測試沒有任何問題。登錄到CI服務器後,我們也可以交互式運行測試而不會出現任何問題。使用Nant和CruiseControl運行Watin測試時發生間歇性IE超時和COMExceptions
大多數時候在CruiseControl下執行測試時也沒有問題,但這並非總是如此,因爲我們最近發現間歇性錯誤。這些錯誤似乎來去有點隨機,但是當錯誤確實發生,它總是下列之一:
WatiN.Core.Exceptions.TimeoutException:超時而Internet Explorer的忙
系統。 Runtime.InteropServices.COMException:800704a6
我們的CI服務器環境是:由於以下錯誤創建具有CLSID {0002DF01-0000-0000-C000-000000000046}從失敗的IClassFactory的COM組件的實例:
的Windows Server 2008 R2
IIS 7.5
IE 8
華廷2.0
CruiseControl的1.6.7981.1。這是作爲服務運行的,它以用戶身份登錄我們的域,因爲測試需要訪問域上的資源。
的 '隨機' 測試失敗創建自己的IE實例如下:
[TestMethod]
public void SomeTest()
{
using (var browser = new IE())
{
// run tests here
}
}
我也試過在一個新的進程創建IE如下:
[TestMethod]
public void SomeTest()
{
using (var browser = new IE(true))
{
// run tests here
}
}
但是,當我那麼,全部我們的測試失敗,出現「WatiN.Core.Exceptions.BrowserNotFoundException:無法找到匹配約束的IE窗口:超時等待附加到新創建的IE實例..搜索「30」秒」
所以,我有兩個問題之後過期:
- 誰能告訴我怎麼可以停止超時和COM異常?
- 任何人都可以解釋爲什麼IE瀏覽器(真)根本不工作?
TIA, 邁克