Quick tip: How to do TDD/BDD and debug unit tests with Visual Studio Express editions


This article will show you how you can do TDD/BDD with Visual Studio Express editions. While most people say it is not possible, it is actually pretty easy.


How do you do it ?

  1. Open your project in Visual Studio Express
  2. Add a new class project, name it [Project].Specs
  3. Add a reference to the testlib you want to use with Nuget (Right click on the project references and choose “Manage Nuget Packages”) - I use MSpec a lot.
  4. Start AutoTest.Net, after you configured it for the testlib (adjust AutoTest.config file for the correct testrunner)
  5. Start writing your specs
  6. Every time you save a file, your project is compiled and your tests are ran
That is all you need; pretty simple actually, is it not ?
There is also the possibility to have notifications and stuff like that, but I currently do not use them.

But wait, what if I need to debug a test ?

As I sometimes only do integration tests, I need the ability to debug these tests. But there is no option to do this in the Express editions, or is there ?

Well, this took me a bit longer to find out, but once you know how to do this it is pretty easy:
  1. Right click on your spec project, and choose “Unload project”
  2. Right click the unloaded project and choose “edit [xxx].Specs.csproj”, you will see an XML
  3. Find the matching PropertyGroup for your configuration (usually <PropertyGroup Condition=” ‘$(Configuration)|$(Platform)’ == ‘Debug|AnyCPU’ “> )?
  4. Add the following child items in the property group (I used mspec as an example here):
    <PropertyGroup Condition=” ‘$(Configuration)|$(Platform)’ == ‘Debug|AnyCPU’ “>
  5. Save and close the .csproj file
  6. Right click on the project and reload it
  7. Set a breakpoint in the test you want to debug
  8. Right click again on the project, and…..
  9. … you can now choose “Debug this project”  !!!

Final words

While this approach takes a few minutes to setup, it is definetely not that hard to do. In fact, I just copy the test exes and settings over from another project whenever I need to do it a second time on the same machine. At least this approach will allow you to do proper TDD/BDD with the Express editions of Visual Studio.


Bookmark and Share

comments powered by Disqus