2010-05-18 2 views
3

У меня есть следующий код в Nunit тест ...NUnit Test с 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 (Visual Studio 10) и выбрав пункт [тест с] [NUnit 2,5], этот тестовый код работает без проблем. У меня установлен TestDriven. При открытии NUnit из C: \ Program Files (x86) \ NUnit 2.5.5 \ bin \ net-2.0 \ nunit.exe ", а затем открытие тестовой DLL, в NUnit сообщается следующий текст Ошибки и сбои

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

В качестве альтернативы ... Правый щелчок по исходному файлу cs в Dev10 и выбор Run Test ... также работает. Вышеупомянутый тест на самом деле является частью TechTalk.SpecFlow 1.3, у меня есть NUnit 2.5. 5,10112, установлено, у меня есть Watin 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, очевидно, работает в NUnit 2.5.5 TestDriven, но не при запуске NUnit 2.5.5 извне Dev10 и TestDriven?

+0

ммм ... что Dev10? –

+0

Dev10 = VisualStudio10; Я все еще работаю над этим; TestDriven использует nunit-x86, а не nunit.exe; также играл с удалением всех добавлений IE; также играл с получением IE для watin, который, я думаю, является реальной проблемой - он очень ... ненадежный ... далее ... – user206890

ответ

1

Запустите тест в NUnit как администратор. Я запускал Dev10 в качестве администратора, поэтому я мог настроить и отладить w3ww, поэтому тест TestDriven работал. Как только я начал запускать NUnit в качестве администратора, COM-сервер выходит из проблемы. Что делает его более запутанным, так это то, что запуск hello-world exmaple против google с сайта Watin работает, хотя NUnit не запускается как admin.
Чтобы использовать NUNit + Watin + для локального веб-сервера, запуск NUnit в качестве администратора решает проблему исключения COM-сервера.

+0

+1 работающий как администратор работал на меня тоже при автоматизации IE как часть моих тестов NUnit. –

0

Попробуйте использовать атрибут RequiresSTA в тестовом коде вместо файла конфигурации.

0

Я использую MSTest, вызовите команду Обновить, чтобы избежать кэшированных данных, это работает для меня:

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