CodedUI tests - start a browser once for the entire set of tests

rythos42 picture rythos42 · Aug 22, 2011 · Viewed 24.5k times · Source

I'm writing some codedUI tests in VS2010 to test a web application. I'd like to be able to open the browser once for the entire set of tests in the solution and then close it again when the tests finish.

I've tried AssemblyInitialize attribute on a method, with my BrowserWindow.Launch in there, but it gives me the following exception when I run it:

Assembly Initialization method OrdersGridTesting.SuiteSetup.Login threw exception. Microsoft.VisualStudio.TestTools.UITest.Extension.TechnologyNotSupportedException: Microsoft.VisualStudio.TestTools.UITest.Extension.TechnologyNotSupportedException: The browser is currently not supported.. Aborting test execution.

This same code works fine when I put it into a TestMethod, which leads me to believe that this isn't possible. Can someone suggest another method of doing this if so? I'd like a method that doesn't involve adding the same code to every test class in the project, if possible.

Thanks!

Answer

Tom E picture Tom E · Aug 29, 2011

If using ClassInitialize, you need to initialize the playback engine with Playback.Initialize()

  [ClassInitialize]
  public static void LaunchBroswer(TestContext context)
  {         
     Playback.Initialize(); 
     BrowserWindow browser = BrowserWindow.Launch(new System.Uri("about:blank"));
  }