2010-05-18 65 views
3

我的代碼如下NUnit測試...NUnit使用WatiN進行測試,從Dev10運行正常,但是當NUnit從「C: Program Files(x86) NUnit 2.5.5 bin net-2.0 nunit.exe」啓動時

string url = ""; 
    url = @"http://localhost/ClientPortalDev/Account/LogOn"; 
    ieStaticInstanceHelper = new IEStaticInstanceHelper(); 
    ieStaticInstanceHelper.IE = new IE(url); 
    ieStaticInstanceHelper.IE.TextField(Find.ById("UserName")).TypeText("abc"); 
    ieStaticInstanceHelper.IE.TextField(Find.ById("Password")).TypeText("defg"); 
    ieStaticInstanceHelper.IE.Button(Find.ById("submit")).Click(); 
    ieStaticInstanceHelper.IE.Close(); 

在右鍵單擊DEV10項目(視覺工作室10),選擇[測試用] [NUnit的2.5],這個測試代碼,沒有任何問題上運行。我安裝了TestDriven。 當從C:\ Program Files(x86)\ NUnit 2.5.5 \ bin \ net-2.0 \ nunit.exe打開NUnit,然後打開我的測試DLL時,NUnit報告以下文本錯誤和故障

... LoginAsWellKnownUserShouldSucceed: 
System.Runtime.InteropServices.COMException : Error HRESULT E_FAIL has been returned from a call to a COM component. 

Aside Aside ...右鍵單擊Dev10中的源代碼cs文件並選擇Run Test,運行測試... 上述測試實際上是TechTalk.SpecFlow 1.3步驟的一部分,我有NUnit 2.5。 5.10112,安裝,我已經安裝了華廷20.20, 我有以下App.config中爲我的測試DLL
開始尖括號已被刪除...你如何獲得XML在

露面
configuration> 
    configSections> 
    sectionGroup name="NUnit"> 
     section name="TestRunner" type="System.Configuration.NameValueSectionHandler"/> 
    /sectionGroup> 
    /configSections> 
    NUnit> 
    TestRunner> 
     add key="ApartmentState" value="STA" /> 
    /TestRunner> 
    /NUnit> 
    appSettings> 
    add key="configCheck" value="12345" /> 
    /appSettings> 
/configuration> 

以前有人打過嗎? NUnit測試顯然運行在TestDriven的NUnit 2.5.5中,但是在Dev10和TestDriven外部運行NUnit 2.5.5時不會運行?

+0

嗯...是什麼DEV10? – 2010-05-18 12:12:55

+0

Dev10 = VisualStudio10;我仍在努力通過這一個; TestDriven使用nunit-x86而不是nunit.exe;也玩刪除所有的IE插件;也玩弄了用於watin的IE,我認爲這是真正的問題 - 這是非常...不可靠的... ... – user206890 2010-05-19 20:34:59

回答

1

以管理員身份在NUnit中運行測試。 我以管理員身份運行Dev10,因此我可以對w3ww進行協調和調試,這就是爲什麼TestDriven測試正在進行。 一旦我開始以管理員身份運行NUnit,COM服務器問題就消失了。 更令人困惑的是,即使NUnit沒有以管理員身份運行,運行來自Watin網站的hello-world exmaple反對谷歌。
要對本地Web服務器使用NUNit + Watin +,以admin身份運行NUnit可解決com服務器異常問題。

+0

+1作爲管理員運行時也爲我工作,當自動化IE作爲我的NUnit測試的一部分。 – 2011-01-27 01:05:16

0

我使用MSTest的,叫刷新避免緩存數據,這個工作對我來說:

browser.Refresh(); 
browser.TextField(Find.ById("username")).TypeText("user"); 
browser.TextField(Find.ById("password")).TypeText("pass"); 
browser.Button(Find.ByName("SUBMIT")).Click();