WedX - журнал о программировании и компьютерных науках

Закодированные тесты пользовательского интерфейса не запускаются на одном компьютере, а запускаются на другом.

Мои коллеги и я работаем над проектом Coded UI. У нас у обоих одинаковая версия проекта благодаря TFS, но на его компе все тестовые случаи запускаются, а на моем нет. Раньше они прекрасно работали на моей машине, пока однажды утром не решили не работать. Я всегда получаю ту же ошибку, что элементы управления тестированием пользовательского интерфейса не найдены, хотя сопоставления верны. Напомню, что они отлично работают на машине моих коллег. У нас также есть такая же версия IE (11).

Что может быть причиной этого?

Спасибо за помощь заранее.

01.10.2014

  • Какой именно язык и какая ошибка? 01.10.2014
  • Я использую С#, и ошибка в том, что элемент управления тестированием пользовательского интерфейса не найден. Но ошибка на самом деле не проблема. В нем говорится, что сопоставленный элемент управления не может быть найден, хотя все свойства поиска совпадают, и они работают для моих коллег, которые имеют те же настройки, что и я. Проблема в том, что тестовые примеры, которые, как известно, успешно выполняются без ошибок, просто не запускаются с упомянутой выше ошибкой. У всех нас одна и та же версия кода, потому что мы получаем ее из TFS (система управления версиями). 01.10.2014

Ответы:


1

Мой коллега, похоже, решил ситуацию, но мы до сих пор не понимаем, почему предыдущая версия кода работала для всех, кроме моей машины. Проблема возникла в нашем методе LaunchBrowser, который использовал 2 разных экземпляра переменной браузера. Избавился от ненужного и команд воспроизведения и вроде устранил проблему.

Ниже приведены две версии кода, предыдущая и новая:

Старый:

public static void LaunchBrowser(string url)
        {
            GlobalVariable.browser = new BrowserWindow();
            CloseAllBrowsers();
            BrowserWindow.CurrentBrowser = GlobalVariable.BrowserType;

            Playback.PlaybackSettings.WaitForReadyLevel = Microsoft.VisualStudio.TestTools.UITest.Extension.WaitForReadyLevel.Disabled;
            GlobalVariable.browser = BrowserWindow.Launch();
            System.Uri URI = new System.Uri(url);
            GlobalVariable.browser.NavigateToUrl(URI);
            Playback.PlaybackSettings.WaitForReadyLevel = Microsoft.VisualStudio.TestTools.UITest.Extension.WaitForReadyLevel.UIThreadOnly;
            GlobalVariable.browser.Maximized = true;
            if (BrowserWindow.CurrentBrowser == "Firefox")
            {
                Mouse.Click(_fireFoxAuthOK);
            }
            Logging.WriteLog("Browser was navigated to " + url + " in browser: <" + GlobalVariable.BrowserType + ">");
        }

Новый:

public static void LaunchBrowser(string url)
        {
            CloseAllBrowsers();
            BrowserWindow.CurrentBrowser = GlobalVariable.BrowserType;
            GlobalVariable.browser = BrowserWindow.Launch(new Uri(url));
            GlobalVariable.browser.Maximized = true;
            if (BrowserWindow.CurrentBrowser == "Firefox")
            {
                Mouse.Click(_fireFoxAuthOK);
            }
            Logging.WriteLog("Browser was navigated to " + url + " in browser: <" + GlobalVariable.BrowserType + ">");
        }
01.10.2014

2

Я думаю, что проблема в этой строке:

Playback.PlaybackSettings.WaitForReadyLevel = Microsoft.VisualStudio.TestTools.UITest.Extension.WaitForReadyLevel.UIThreadOnly;

Потому что поток переднего плана браузера не готов начать воспроизведение. вы можете попробовать это

Playback.PlaybackSettings.WaitForReadyLevel = WaitForReadyLevel.Disabled;

или другими альтернативными способами на вашем компьютере.

Перейдите по этой ссылке Мэтью Анияна. Блог для получения дополнительной информации.

02.10.2014
  • Установка для параметра WaitForReadyLevel значения UIThreadOnly означает, что тест будет ждать завершения загрузки браузера, прежде чем продолжить (как указано в сообщении блога, на которое вы ссылаетесь). Отключив его, метод все равно должен пройти, поскольку вы не взаимодействуете с браузером, кроме отправки нового URL-адреса для перехода (без кликов, редактирования текста и т. д.). Однако после передачи этого метода, если параметр по-прежнему отключен, вы можете столкнуться с ошибками при попытке взаимодействовать с объектами на странице. Основной проблемой здесь является двойной экземпляр объекта BrowserWindow(). 02.10.2014
  • Спасибо, Рэйн Кокс, это просто мое предложение проверить, почему тест не работает на другом компьютере. 02.10.2014
  • Новые материалы

    Как создать диаграмму градиентной кисти с помощью D3.js
    Резюме: Из этого туториала Вы узнаете, как добавить градиентную кисть к диаграмме с областями в D3.js. Мы добавим градиент к значениям SVG и применим градиент в качестве заливки к диаграмме с..

    Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что это выглядит сложно…
    Просто начните и учитесь самостоятельно Я хотел выучить язык программирования MVC4, но не мог выучить его раньше, потому что он кажется мне сложным, и я бросил его. Это в основном инструмент..

    Лицензии с открытым исходным кодом: руководство для разработчиков и создателей
    В динамичном мире разработки программного обеспечения открытый исходный код стал мощной парадигмой, способствующей сотрудничеству, инновациям и прогрессу, движимому сообществом. В основе..

    Объяснение документов 02: BERT
    BERT представил двухступенчатую структуру обучения: предварительное обучение и тонкая настройка. Во время предварительного обучения модель обучается на неразмеченных данных с помощью..

    Как проанализировать работу вашего классификатора?
    Не всегда просто знать, какие показатели использовать С развитием глубокого обучения все больше и больше людей учатся обучать свой первый классификатор. Но как только вы закончите..

    Работа с цепями Маркова, часть 4 (Машинное обучение)
    Нелинейные цепи Маркова с агрегатором и их приложения (arXiv) Автор : Бар Лайт Аннотация: Изучаются свойства подкласса случайных процессов, называемых дискретными нелинейными цепями Маркова..

    Crazy Laravel Livewire упростил мне создание электронной коммерции (панель администратора и API) [Часть 3]
    Как вы сегодня, ребята? В этой части мы создадим CRUD для данных о продукте. Думаю, в этой части я не буду слишком много делиться теорией, но чаще буду делиться своим кодом. Потому что..


    Для любых предложений по сайту: [email protected]