VS CodedUI无法启动经典Windows应用程序的GUI

时间:2019-02-19 04:41:11

标签: visual-studio azure-devops coded-ui-tests

我有一个自托管的生成代理设置,可以交互运行,以便在经典Windows应用程序的Azure DevOps中执行CodedUI。由于某种原因,尽管我无法让构建服务器使用UI实际运行被测应用程序。我已经尝试了多种方式启动应用程序,但是无论我尝试启动应用程序的方式如何,都没有出现UI,尽管该应用程序确实显示在任务管理器中,所以我知道它正在运行。

这些测试在开发计算机上可以很好地执行,但是当它们在服务器上运行时完全失败。我感觉好像缺少代理配置或构建中的某些内容,但是却丢失了它。我已经对代理进行了3次重新配置,以确保我不会忽略文档中的任何内容,并且已经阅读了有关UI测试的Pipelines文档,但这不是很有用。

以前有人遇到过这个问题吗?我很乐意提供任何其他信息,这些信息可能有助于追踪问题。

1 个答案:

答案 0 :(得分:0)

我能够解决此问题,尽管我不完全确定为什么此解决方案有效,而其他解决方案则无效。基本上,我创建了一个表示我的应用程序图标的类,如下所示:

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();

这使UI可以在构建服务器上正常运行,并且测试可以正常运行。奇怪的是,使用ApplicationUnderTest()Process.Start()会使构建服务器将它们加载到后台进程中,但是双击图标就可以了。