2010-12-03 125 views
2

我成功通過nunit在本地運行測試。但是當我嘗試通過teamcity運行它們時,一些測試通過了,但是有一些測試失敗,出現以下錯誤。SetUp方法在從teamcity運行測試時失敗

SetUp方法失敗。 System.Runtime.InteropServices.COMException:從IClassFactory創建CLSID爲{0002DF01-0000-0000-C000-000000000046}的COM組件實例失敗,原因如下:800704a6。 在WatiN.Core.IE.CreateNewIEAndGoToUri(URI的URI,LogonDialogHandler logonDialogHandler,布爾createInNewProcess) 在WatiN.Core.IE..ctor() 在test.Setup()在C:\ Tests.vb:線14

+1

如果您從測試中取出使用華廷的,做你的NUnit的測試用例通過沒有錯誤? – Bernard 2010-12-03 16:46:52

回答

0

您是否嘗試通過teamcity服務器上的Nunit運行測試?這可能會給你更多的信息。

2

不知道這個問題是否已解決,但是我在用C#編寫的另外兩個測試夾具1中有相同的錯誤,而另一個用VB.NET編寫。

對於C#夾具所有我需要做什麼來解決這個問題是,當我創建WatIn.IE的新實例,我說的第二個參數:IE變種,即=新的IE(URL,真正) 「真」告訴WatIn「createInNewProcess」,它在一個新的進程中打開下一個IE。

但是,由於某些原因,這對於用VB.NET編寫的測試夾具不起作用。 對於這個夾具,我不得不在我們的C#庫中調用一個方法來在每個Tests「TearDown」方法中強制實現一個IE閉包。 下面的C#代碼的伎倆:

public static void CloseInternetExplorers() 
{ 
    var processes = from process in Process.GetProcesses() 
        where process.ProcessName == "iexplore" 
        select process; 

    foreach (var process in processes) 
    { 
    while (!process.HasExited) 
    { 
     process.Kill(); 
     process.WaitForExit(); 
    } 
    } 
} 
相關問題