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

24,512

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"));
  }
Share:
24,512
rythos42
Author by

rythos42

Updated on July 16, 2022

Comments

  • rythos42
    rythos42 almost 2 years

    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!

  • rythos42
    rythos42 over 12 years
    I continued working with TestInitialize after I asked the question...and realized that I didn't want to load the browser before the entire test run anyway. If I did, I wouldn't have the test conditions reset before each test run! But I'm glad to know this for the future.
  • rythos42
    rythos42 about 12 years
    I'm afraid that's an overly simplistic answer. I'm not going to run it, but the 'Playback.Initialize()' is required in order for the 'Launch' to not throw an exception when you run it in 'AssemblyInitialize'.
  • Ciaran Gallagher
    Ciaran Gallagher over 11 years
    I added Playback.Initialize() function to my AssemblyInitialize method and it didn't make a difference - I'm still getting the error. I'm using an ordered test list to run all my tests.
  • hirosht
    hirosht over 9 years
    I even tried this where I couldn't get it solved. It still keeps closing the browser after testing the step.