【发布时间】:2015-01-07 21:46:36
【问题描述】:
我们有一个 Coded UI 测试套件,它依赖于以不同用户身份运行我们的测试。我们通过使用以下 ApplicationUnderTest.Launch 重载来实现这一点:
ApplicationUnderTest.Launch(browserLocation, null, url, username, GetSecurePassword(password), domain);
我们使用 Visual Studio 2013 高级版(更新 3)并且在 Windows 7 和 Windows 2012 R2 上运行时没有问题。现在我们已经迁移到 Windows 8.1,我们不再能够以不同的用户身份运行。我们得到以下臭名昭著的错误:
应用程序无法启动。这可能是由于以下原因之一: 1) 应用程序的另一个实例已经在运行,并且一次只能运行一个实例。 2) 应用程序启动了另一个进程,现在已经停止。您可能需要直接启动该过程。 3) 您对此应用程序没有足够的权限。” 文件:C:\Program Files\Internet Explorer\iexplore.exe。
当我们像这样以当前用户身份运行时,我们能够成功运行 Coded UI 测试:
ApplicationUnderTest.Launch(browserLocation, null, url);
不幸的是,这样做不允许我们进行测试。我们以管理员身份运行 Visual Studio,并且我们以管理员身份运行的所有测试用户本身都设置为管理员。你知道问题可能是什么吗?
这是我们遇到的堆栈跟踪:
at Microsoft.VisualStudio.TestTools.UITesting.ApplicationUnderTest.ThrowIfProcessNotValid(Process process)
at Microsoft.VisualStudio.TestTools.UITesting.ApplicationUnderTest.SetCurrentProcessPrivate(Process value)
at Microsoft.VisualStudio.TestTools.UITesting.ApplicationUnderTest.<>c__DisplayClassb.<set_Process>b__a()
at Microsoft.VisualStudio.TestTools.UITesting.CodedUITestMethodInvoker.InvokeMethod[T](Func`1 function, UITestControl control, Boolean firePlaybackErrorEvent, Boolean logAsAction)
at Microsoft.VisualStudio.TestTools.UITesting.ApplicationUnderTest.set_Process(Process value)
at Microsoft.VisualStudio.TestTools.UITesting.ApplicationUnderTest.Start(ProcessStartInfo startInfo)
at Microsoft.VisualStudio.TestTools.UITesting.ApplicationUnderTest.<>c__DisplayClass10.<.ctor>b__e()
at Microsoft.VisualStudio.TestTools.UITesting.CodedUITestMethodInvoker.InvokeMethod[T](Func`1 function, UITestControl control, Boolean firePlaybackErrorEvent, Boolean logAsAction)
at Microsoft.VisualStudio.TestTools.UITesting.ApplicationUnderTest..ctor(String fileName, String alternateFileName, String arguments, String userName, SecureString password, String domain)
at Microsoft.VisualStudio.TestTools.UITesting.ApplicationUnderTest.<>c__DisplayClass4.<Launch>b__3()
at Microsoft.VisualStudio.TestTools.UITesting.CodedUITestMethodInvoker.InvokeMethod[T](Func`1 function, UITestControl control, Boolean firePlaybackErrorEvent, Boolean logAsAction)
at Microsoft.VisualStudio.TestTools.UITesting.ApplicationUnderTest.Launch(String fileName, String alternateFileName, String arguments, String userName, SecureString password, String domain)
at Pantheon.Web.AppsPortal.UITests.Utilities.TestBase.LaunchBrowserWindow(String browserLocation, String url, String username, String password, String domain) in c:\dev_jr\AppsPortal\Development\Pantheon.Web.AppsPortal.UITests\Utilities\TestBase.cs:line 122
TestBase.cs:line 122 如下所示:
var app = ApplicationUnderTest.Launch(browserLocation, null, url, username, GetSecurePassword(password), domain);
【问题讨论】:
标签: visual-studio-2013 windows-8.1 coded-ui-tests