NUnit Test с WatiN, работает нормально с Dev10, но когда NUnit запускается из C: \ Program Files (x86) \ NUnit 2.5.5 \ bin \ net-2.0 \ nunit.exe

У меня есть следующий код в тесте Nunit ...

    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) и выбрать [Test With] [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 и выбрав "Запустить тест", ... тоже работает. Вышеупомянутый тест на самом деле является частью шага 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?


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


Ответы (3)


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

person user206890    schedule 03.06.2010
comment
+1, работающий от имени администратора, тоже работал у меня при автоматизации IE в рамках моих тестов NUnit. - person Matthew Lock; 27.01.2011

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

person GregC    schedule 28.04.2011

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

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