Тест NUnit с WatiN, работает нормально с Dev10, но когда NUnit запускается из «C: \ Program Files (x86) \ NUnit 2.5.5 \ bin \ net-2.0 \ nunit.exe» - PullRequest
3 голосов
/ 18 мая 2010

У меня есть следующий код в тесте 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.

As As ... Правый щелчок по исходному 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?

Ответы [ 3 ]

1 голос
/ 03 июня 2010

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

0 голосов
/ 26 ноября 2013

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

browser.Refresh();
browser.TextField(Find.ById("username")).TypeText("user");
browser.TextField(Find.ById("password")).TypeText("pass");
browser.Button(Find.ByName("SUBMIT")).Click();
0 голосов
/ 28 апреля 2011

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

...