Learn to use Visual Studio, Visual Studio Online, Application Insights and Team
Foundation Server to decrease rework, increase transparency into your application and increase the rate at which
you can ship high quality software throughout the application lifecycle
In Visual Studio 2012, Coded UI Test projects provide silent upgrade features where if you open a Coded UI Test project which was created in Visual Studio 2010 SP1, it will get repaired automatically to support both Visual Studio 2012 & Visual Studio 2010 SP1. Similarly if you create any new Coded UI Test project in Visual Studio 2012, you can also open the same project in Visual Studio 2010 SP1 after doing some tweaks without any issues.
When we open a Coded UI Test project in Visual Studio 2012, it puts all Visual Studio 2010 Coded UI Test references to conditional reference section, so that these references get enabled only when there is appropriate version of Visual Studio.
<When Condition="'$(VisualStudioVersion)' == '10.0' And '$(IsCodedUITest)' == 'True'">
<Reference Include="Microsoft.VisualStudio.QualityTools.CodedUITestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Reference Include="Microsoft.VisualStudio.TestTools.UITest.Extension, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Reference Include="Microsoft.VisualStudio.TestTools.UITesting, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
Also adds a target file entry in the end of project file which provide details of Visual Studio 2012 reference details.
<Import Project="$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets" Condition= "Exists('$(VSToolsPath)\TeamTest\Microsoft.TestTools.targets')" />
Now if you open this project in Visual Studio 2010 SP1, only the first conditional block is picked for the referencing Coded UI Test assemblies. Since the target file is not present in the setup, import statement will not load Visual Studio 2012 references.
Similarly if the same project is opened in Visual Studio 2012, first conditional block is not picked thus no Visual Studio 2010 assemblies are picked, but presence of Target file provides 11.0 version assemblies.
So if you don’t have any other Visual Studio version specific reference you project is good to go in both Visual Studio 2012 & Visual Studio 2010 Sp1. All you have to do is to build the project and run the tests.
Silent repair in Coded UI Test project will not touch any custom reference which was added by the user. In such cases, if the referenced assembly has any Visual Studio version dependency, then you have to fix the references by yourself.
To resolve your issue you can always use Conditional referencing and use $(VisualStudioVersion) attribute to identify with which Visual Studio version your solution is opened.
If you have any in house assembly in your test framework and using these references, you have to modify that also to enable seamless experience in Coded UI Test. Both your local assemblies & test project have to be built every time the project is opened in Visual Studio
If you have created any Coded UI Test project in Visual Studio 2012 and you want to work in Visual Studio 2010 Sp1, there are few things you have to take care
In Visual Studio 2012 RTM, support for SilverLight & Firefox browser is not there by default. However you can install plug in for Silverlight from Code Gallery. Also we are releasing playback support for Firefox and Chrome browser as part of our quarterly update for Visual Studio 2012 which is planned to release by end of 2012.
Silent upgrade of Coded UI Test project will take care of putting old Visual Studio 2010 Feature Pack 2 references inside Conditional reference block, but since there are no references available in Visual Studio 2012 for Silverlight extension, you have to add it by yourself.
If your Coded UI Test project is part of Team build, to enable the project build on both client 2010 & 2012, also to build it in as part of team build, you have to open the project at least once in Visual Studio 2012, let it get repaired and check in the updated project. Also if you have using any custom references, you have to fix them manually.
If you are trying to build a Coded UI Test project as part of team build where build agents are version 2012, you have to install either Visual Studio 2012 Ultimate or Visual Studio 2012 Premium.
If you have both Visual Studio 2012 & Visual Studio 2010 Sp1 installed on the same machine, you may encounter issues with OrderedTest. For example when trying to open an ordered test from Test Explorer in Visual Studio 2012 IDE, you get error message as unable to load Coded UI Test assemblies.
This happens because the default program which is assigned for Ordered Test is still Visual Studio 2010 Sp1, so when you do a double click on any ordered test in Visual Studio 2012 Ide, it launches Visual Studio 2010 SP1,where it fails to refer 10.0 references. To resolve this issue, please associate Visual Studio 2012 as default program for opening ordered test.