InteropServices.COMException при выполнении тестов WatiN - PullRequest
4 голосов
/ 02 июня 2009

Когда я запускаю тесты WatiN на нашем сервере сборки, все они выдают это InteropServices.COMException:

MyTestClassName.MyTestMethodName: System.Runtime.InteropServices.COMException: Создание экземпляра компонента COM с CLSID {0002DF01-0000-0000-C000-000000004646} из IClassFactory завершилось неудачно из-за следующей ошибки: 80004005.

Я получаю тот же результат, когда я запускаю их через TeamCity, или я запускаю их вручную на сервере как администратор, используя NUnit GUI (2.5).

Это пример кода:

[TestFixture]
public class MyTestClassName
{
    private string pageUrl;

    [TestFixtureSetUp]
    public void TestFixtureSetUp()
    {
        pageUrl = ConfigurationManager.AppSettings["SiteURL"] + "/Pages/MyPage.aspx";

        Settings.MakeNewIeInstanceVisible = false;
    }

    [Test]
    public void MyTestMethodName()
    {
        using (var ie = new IE(pageUrl))
        {
            ie.SelectList(new Regex(@"^*DropDownList1*$")).Option("TheOption").Select();

            ie.SelectList(new Regex(@"^*DropDownList2*$")).Option("AnOption").Select();

            ie.SelectList(new Regex(@"^*DropDownList3*$")).Option("OtherOption").Select();

        }
    }
}

Есть идеи, что это может быть?

/ Йоаким

Ответы [ 6 ]

6 голосов
/ 09 ноября 2009

Попробуйте запустить Visual Studio от имени администратора.

5 голосов
/ 17 сентября 2009

Я тоже сталкиваюсь с той же проблемой, но более странной для меня.

У меня есть сервер только для «тестирования пользовательского интерфейса», и для многих приложений тест WatiN выполняется без проблем.

Эта ошибка возникает только для одного приложения и только в CruiseControl (с nant), но не при запуске теста с NUnitGUI ...

Я Финнали нашел решение сегодня утром: я заменил все свои звонки new IE(); на new IE(true) Замечания к выпуску WatiN И больше не получал ошибку.

3 голосов
/ 07 июня 2014

Другое исправление - «Включить защищенный режим в IE», как описано здесь

2 голосов
/ 10 февраля 2011

Другой комментарий говорит:

Попробуйте запустить Visual Studio от имени администратора

На самом деле это NUnit, который должен запускаться от имени администратора (по крайней мере, в Windows 7), но мышление правильное.

2 голосов
/ 04 ноября 2010

Каждый раз, когда WatiN вызывал IE.Quit, IE прекращал отвечать и затем пытался восстановиться. Запуск от имени администратора исправил проблему для меня.

0 голосов
/ 09 июня 2009

Я думаю, что список выбора еще не полностью загружен и готов, и это еще один признак той же проблемы, описанной в этом вопросе:

Ошибка доступа запрещена (Visual Studio и WatiN)

...