Skip to main content

VWD Express 2010 Unit Tests with xUnit and MVC Templates

Microsoft's Visual Web Developer 2010 Express (VWD 2010 Express), by default does not come with a built in unit testing solution. However the ability is there to use unit tests with the Express version as can be seen when creating a new MVC project.


Tech spec stuff:
Microsoft Windows 7
Microsoft Visual Studio 2010 Express, Version 10.0.40219.1 SP1
Microsfot .NET Framework Version 4.0.30319 SP1

Getting started with xUnit
xUnit is a "developer testing framework, built to support Test Driven Development (TDD)". There are other unit testing frameworks available (MSTest, nUnit, etc.). There are pro's to each and some better than others but xUnit is pretty straightforward to get up and running with the VWD 2010 Express version.

Download and Install xUnit
The xUnit project can be found at: http://xunit.codeplex.com/. Downloads are available from http://xunit.codeplex.com/releases/view/62840.

Download the recommended version (currently 1.8 at time of writing), which is just a zip file and just extract the files to a suitable directory e.g. C:\Program Files\xunit-1.8.


Run the xunit.installer file.
This will execute the installer utility for xUnit.net where options can be selected to integrate xUnit with various environments. Select the required options (e.g. Windows Explorer integration, MVC2 templates, MVC3 templates), then click apply.
Explorer and/or VWD Express may need to be re-started.

Creating a Test Project
Now, when starting VWD Express 2010 and creating a new project, the option to "Create a unit test project" should be available to be checked (compare to first image where option is unavailable).

The test project name and test framework should be autofilled as shown in the following image.

Clicking OK will create the new project along with a project for the unit tests, which will contain MVC unit testing templates.

Creating a Simple Test
To demonstrate the xUnit GUI, this is just a simple example test, (2 + 2 should equal 4) based on the example from "How Do I Use xUnit.net" at http://xunit.codeplex.com/wikipage?title=HowToUse&referringTitle=Home.

A new class is created in the test project.


The line "using Xunit;" needs to the added for the class along with the actual code for the test:


Save the file and build the project. Note where the dll for the test project was created.
In this case the test dll is created in:
d:\dev\projects\MvcApplication2\MvcApplication2.Tests\bin\Debug\MvcApplication2.Tests.dll.

Using xUnit GUI
Locate the xunit.gui file which should be where the zip was extracted too earlier on. If using .NET framework v4, "xunit.gui.clr4" needs to be used to run the tests otherwise an error about loading the assembly may be thrown, along the lines of:

"Could not load file or assembly 'sometest.dll' or one of its dependencies. This assembly is built by a runtime newer than the currently loaded runtime and cannot be loaded."

To run the tests select "Assembly > Open" and browse to where the tests dll is. 

Once opened each test should be listed within the Methods window. These tests include the MVC framework tests and also the example test created above.

Clicking Run Selected (or Run All if no individual test is created) will run the tests. An icon will appear by the tests in the method window and any failure results will be displayed in the output window.

Showing an example of a failed test, the line Assert.Equal(4, 2+2) is changed to Assert.Equal(4, 2+3), which will blatantly fail as 2+3 does not equal 4.


The failed test is shown in the output window.

Comments

Popular posts from this blog

Entity Framework Code-First Learning Resources

Some resources to help learn and understand Microsoft's Entity Framework Code-First ORM. Basic Tutorial http://www.asp.net/mvc/tutorials/getting-started-with-mvc3-part1-cs Advanced Tutorial http://www.asp.net/mvc/tutorials/mvc-music-store-part-1 Blog posts with further hints and tips http://weblogs.asp.net/scottgu/archive/2010/07/16/code-first-development-with-entity-framework-4.aspx Update to NerdDinner using EF Code-First. Also shows how to synchronise database with the model and seeding database with initial data. http://www.hanselman.com/blog/SimpleCodeFirstWithEntityFramework4MagicUnicornFeatureCTP4.aspx Some useful info demonstrating Data Annotations such as [Key] and [Required]. This post will be added to as time goes by. If there are any other good resources about this MS framework feel free to throw them in to a comment. Updates EF Feature CTP5: Code First Walkthrough http://blogs.msdn.com/b/adonet/archive/2010/12/06/ef-feature-ctp5-code-first-walkthrou

Which blog engine?

So the time has come to move to a more advanced blog engine for my blog. blogger.com , Google's blogging service, has served me well. It's incredibly easy to use and to get started with, along with having some great features such as inbuilt stats; however now I need a few more advanced features and greater control over the blog. There's a vast array of blog engines out there, some free, some paid for, some hosted, some self-hosted, and picking which one is best or the right choice could be a little bit tricky. This article from Mashable lists most of the main options and bigger players -  http://mashable.com/2007/08/06/free-blog-hosts/ . There are a few parameters that I've kind of decided on Ease of installation/compatibility and support with web hosts Simple to use. I don't want to spend ages clicking around just to add a post or format it. Feature rich and well supported. Most blog engines should have a fairly standard set of features now such RSS/ATOM fe

Enable .NET 8 Preview in Visual Studio

Download the SDK using Download .NET 8.0 (Linux, macOS, and Windows) (microsoft.com)  and install it. To enable projects to target the .NET 8 preview framework, the preview option in Visual Studio needs to be enabled, otherwise the option to target .NET 8 will not be available as shown below when setting up a new project (or trying to upgrade an existing one). To allow .NET 8 Preview to be used as a target framework for projects, the preview option needs to be enabled in Visual Studio. Open Visual Studio and select "Continue without code" In Visual Studio, select Tools then Options In Options, under Environment, select Preview Features and enable Use previews of the .NET SDK.