How do I add a fakes assembly in VS 2012 Professional RC?

Dan Sorensen picture Dan Sorensen · Jun 13, 2012 · Viewed 27.1k times · Source

According to the two articles below on VS 2012 and Microsoft Fakes Test Framework, I should be able to right click on an assembly in my test project's references and choose "Add Fakes Assembly" to create a new Microsoft Fakes Framework Assembly in Visual Studio 11 / 2012. However I do not find the context menu item in VS 2012 RC Professional where it should be. I may need to reference the Microsoft.QualityTools.Testing.Fakes assembly, but I cannot find it in the add reference search either. Has the required menu changed since beta? Do I need to install an extension?

How do I add a fakes assembly in VS 2012 Professional RC?

Articles referenced:

Answer

Chai picture Chai · Jun 25, 2012

Update: VS2012 Update 2 will include Fakes support in Premium.

See http://blogs.msdn.com/b/bharry/archive/2013/01/30/announcing-visual-studio-2012-update-2-vs2012-2.aspx

I asked this question in the Microsoft Connect portal...and the answer is disappointing:

The RC documentation was incorrect. Fakes are available only in VS Ultimate. I have passed your concerns on the Fakes team. At the moment, we don't have any information about PEX for VS 2012.

My detailed question was:

MSDN documentation states that the Fakes framework, the successor of Moles framework for isolatiion of code for unit tests is available in the Premium and Ultimate editions.

http://msdn.microsoft.com/en-us/library/dd264975(v=vs.110)

Also, elsewhere in MSDN blogs, Peter Provost confirmed the same some months ago for the VS2011 release:

http://blogs.msdn.com/b/visualstudioalm/archive/2012/03/09/10279666.aspx

But when I tried out the Premium RC today, I couldn't see the "Add Fakes Assembly" context menu option in my test project for my sample DLL containing code to test. It was only after I installed the Ultimate RC that I got the Fakes menu support.

This prompts me to ask of you to clarify the following:

1) Is my observation correct, that Fakes is indeed only available with Ultimate? Is that because of its dependency on IntelliTrace, which is an Ultimate-only feature?

2) If yes, then why is there conflicting information indicating the availability of Fakes with Premium?

3) Why should the Fakes framework be now dependent on IntelliTrace when it worked well without this dependency in VS 2010? This is essentially cutting off existing users of Moles with Professional or even Premium editions of VS 2010 and putting their upgrade to VS 2012 in question because of their existing reliance on Moles for their unit tests.

4) We are already using Moles with our VS 2010 Professional edition. So this observation indeed has me worried about the present decision to use Moles among our C# developers. At best, we can think of an upgrade to Premium for our large developer base (given that we also have code coverage support)... but an upgrade straight to Ultimate just to get UT support will never be on the cards.

I wish to have these points clarified at the earliest so that we can start looking for alternatives to Moles, in case your decision is indeed to keep Fakes exclusive to VS 2012 Ultimate.