VS CodedUI не запускает графический интерфейс для классического приложения Windows - PullRequest
0 голосов
/ 19 февраля 2019

У меня есть самодостаточная настройка агента сборки, которая запускается в интерактивном режиме для целей выполнения CodedUI в DevOps Azure для классического приложения Windows.По какой-то причине я не могу заставить сервер сборки фактически запускать тестируемое приложение с пользовательским интерфейсом.Я пытался запустить свое приложение различными способами, но независимо от того, как я пытаюсь запустить приложение, пользовательский интерфейс никогда не появляется, хотя приложение действительно отображается в диспетчере задач, поэтому я знаю, что оно работает.

Тесты выполняются нормально на машинах разработки, но полностью проваливаются при запуске на сервере.Я чувствую, что мне чего-то не хватает в конфигурации агента или в сборке, но мне этого не хватает.Я переконфигурировал Агента 3 раза, чтобы убедиться, что я ничего не пропустил в документах, и я просмотрел документацию Pipelines, касающуюся тестов пользовательского интерфейса, но это было не очень полезно.

Кто-нибудь сталкивался с этой проблемой раньше?Я рад предоставить любую дополнительную информацию, которая может быть полезна для отслеживания проблемы.

1 Ответ

0 голосов
/ 19 февраля 2019

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

public class AppIcon : CodedUIBase
{
    public AppIcon()
    {
        SetParentName("Program Manager");
    }

    public WinListItem LstAppIcon
    {
        get { return SetProperty<WinListItem>(PropertyType.Name, "AppName"); }
    }
}

И затем я запускаю свое приложение, щелкая этот значок следующим образом:

var appIcon = new AppIcon();
appIcon.LstAppIcon.DoubleClick();

Это позволяет пользовательскому интерфейсуотлично работает на сервере сборки и тесты выполняются просто отлично.Кажется странным, что использование ApplicationUnderTest() и Process.Start() приводит к тому, что сервер сборки загружает их в фоновые процессы, но двойной щелчок по значку прекрасно работает.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...