New to Telerik Test Studio? Download free 30-day trial

Connect to a Running WPF Application

I would like to connect to an already running WPF application and execute the test there, instead of launching a new instance of the app.

Solution

When you Quick Execute or execute a Test List, a new instance of the app launches from its pre-configured location.

To work around this limitation, create a mock application to feed to Test Studio. Then insert a coded step as the first step of the test. Use the following code which closes the mock application and connects to the desired application if it's running. If not, a new instance is launched. This solution is applicable for both Test Studio Standalone version and the Visual Studio plugin.

ActiveApplication.Quit();
var runningApp = System.Diagnostics.Process.GetProcesses().Where(p => p.ProcessName == "WPFHelloWorld");

if (runningApp.Count() != 0)
{
    Manager.ConnectToApplication(runningApp.FirstOrDefault());
}
else
{
    Manager.LaunchNewApplication(@"C:\ApplicationFolder\WPFHelloWorld.exe");
}

Manager.ActiveApplication.MainWindow.RefreshVisualTrees();
ActiveApplication.Quit()
Dim runningApp = System.Diagnostics.Process.GetProcesses().Where(Function(p) p.ProcessName = "WPFHelloWorld")

If runningApp.Count() <> 0 Then
    Manager.ConnectToApplication(runningApp.FirstOrDefault())
Else
    Manager.LaunchNewApplication("C:\ApplicationFolder\WPFHelloWorld.exe")
End If

Manager.ActiveApplication.MainWindow.RefreshVisualTrees()
In this article