Friday 16 November 2012

Unit Tests using Microsoft Fakes framework in Team Build.


My last post was about Microsoft Fakes Framework. One thing to know about using Microsoft Fakes is that MSTest.exe does not support it. MSTest.exe used to be the executable that Visual Studio 2010 and earlier versions used to run unit tests. It is not the case anymore Visual Studio 2012 uses a command line tool vstest.console.exe. It resides in the %ProgramFiles%\Microsoft Visual Studio 11.0\Common7\IDE\CommonExtensions\Microsoft\TestWindow\ directory of your visual studio installation.

VSTest.console.exe provides most of the features of MSTest.exe  (there are a few alternatives), however, the version that was shipped with the initial release of Visual Studio, did not support publishing test results to TFS. This will change with Visual Studio 2012 Update 1, which is due to be released soon, but if you are a daredevil, you can try the Visual Studio CTP which is available for download now.

Also, if you are still using Team Foundation Server 2010, the default build template using MSTest activity, which uses MSTest.exe behind the scenes. This means that some of the unit tests which are working for you in Visual Studio environment might not work on the Team Build.

I am working on providing an activity in the Community TFS Build extension project to fill up this gap. For now, you can use InvokeProcess activity passing in all the command line parameters.

3 comments:

G said...
This comment has been removed by the author.
G said...

Hi Hamid,
Did you ever get around creating the activity you mentioned in your blog for running Fakes test cases in TFS 2010?

Hamid said...

Hi G,
Yes, the activity is included in the TF SBuild Extensions project. Please get the latest version from

http://tfsbuildextensions.codeplex.com/.

We haven't got around to writing the documentation yet but the usage is quite simple. You can see the code here