已编码 UI 正在测试的应用程序

Coded UI Application Under Test

刚刚开始实施编码 ui 测试自动化解决方案,但在启动应用程序时一直 运行 遇到问题。

应用程序似乎可以正常启动,但无论如何我总是收到异常说明:

Microsoft.VisualStudio.TestTools.UITest.Extension.FailedToLaunchApplicationException: "应用程序无法启动。这可能是由于以下原因之一: 1) 应用程序的另一个实例已经 运行ning 并且一次只能 运行ning 一个实例。 2) 应用程序启动了另一个进程,现在已经停止。您可能需要直接启动该过程。 3) 您没有足够的权限使用此应用程序。"

该应用程序有点奇怪,因为它当前设置为 运行 关闭 setup.exe,因此用户始终拥有最新版本。

我的代码中是否遗漏了什么(下面的示例)?或者在我开始编写自动化测试之前是否需要更好地设置应用程序。 EXE 位于网络位置。

ApplicationUnderTest aut = ApplicationUnderTest.Launch(@"\test.com\applicationdir\testenv\application\setup.exe");

WpfEdit userName = new WpfEdit(aut);
userName.SearchProperties.Add(WpfEdit.PropertyNames.AutomationId, "PART_UserName");

userName.Text = "TEST";

目前使用的解决方法是通过 Process 启动应用程序,然后将其传递给正在测试的应用程序 FromProcess()。似乎解决了这个问题。

可能不是最好的解决方案,必须使用 Thread.Sleep() 但它现在有效。

示例:

var 进程 = Process.Start(@"pathToApplication");

Thread.Sleep(2000);

进程 = Process.GetProcessesByName("process.Name")[0];

ApplicationUnderTest aut = ApplicationUnderTest.FromProcess(进程);