How to set up FitNesse for .Net

Setting up a FitNesse environment is quite easy nowadays. This is what to do.

1. Installation of FitNesse

The latest version of the FitNesse wiki can be downloaded at http://fitnesse.org/FrontPage.FitNesseDevelopment.DownLoad 

Java Runtime 6 is needed to run FitNesse, you can get at http://www.java.com/download/

Make a run.bat next to fitnesse.jar file containing:

java -jar fitnesse.jar –e 0 -p 8888

Now start run.bat and FitNesse will extract itself.

The option -e 0 disables the versioning system of FitNesse. No need for versioning if you check the folders into your source code repository.

The option –p 8888 changes the port on which FitNesse will run. The default is port 80.

FitNesse is now running, open your browser and navigate to http://localhost:8888

FitNesseStart

2. Make FitNesse ready for .Net with SLIM.

The latest version of the SLIM.Net testrunner can be downloaded at http://github.com/jediwhale/fitsharp/downloads 

Extract it in a folder called ‘Slim’ next to your fitnesse.jar file.

FolderStructure

Now edit the root page of FitNesse http://localhost:8888/root?edit

Add the following lines to the dialog box and save.

!path MyProjectBinaries\*.dll

!define TEST_SYSTEM {slim}
!define COMMAND_PATTERN {%m -r fitSharp.Slim.Service.Runner,slim\fitsharp.dll %p}
!define TEST_RUNNER {slim\Runner.exe}

This tells FitNesse to use the Slim.Net testrunner and to look for .Net assemblies in a folder named MyProjectBinaries. In the properties of your .Net projectfile, make sure to compile to this directory. No references to FitNesse assemblies are needed with Slim.

You’re ready now to make your first test.

Database Change Management with RoundhousE

Three weeks ago we started a search for a good tool for handling Database Change Management.

We had quite some requirements for such a tool. It has to support SQL Server 2000, 2005, 2008 and Oracle platforms. It should be able to run in our automated builds, and should be executed with automated installers into production. We need logging when something goes wrong, should be able to run database changes in a transaction, be able to load testdata in test environments,…

Furthermore, we have different development platforms, so it has to be a solution that also works for non .Net technologies. And we didn’t want to learn all our teams a new programming language or DSL, just for making our database changes possible.

Woaw, quite a list, isn’t it?

We made a selection on a bunch of tools. Some articles helped us making the choice:

We decided to implement RoundhousE in a spike project and we contributed during the past weeks to the open source project.

RoundhousE is by far the most promising tool. It has a clear roadmap, and provides a lot of the functionalities we wanted out of the box. It also has great support in the community (MassTransit, ChuckNorrisFramework,…)

RoundhousE didn’t support Oracle, but we pulled in the code and with the support of Rob Reynolds our team was able to provide it. At the moment the Oracle support lives in a seperate branch, there’s still some work, but we hope it will be finished soon and merged back in the trunk.

Soon we will start the implementation of RoundhousE in our first project, and we have already plans to use it for all of our projects. That was the goal in the first place :-). We will have a lot of evangelizing to do in some of our teams, but it will be worth it. We are very excited about RoundhousE and the vision it takes on database change management.

I can only say: Give RoundhousE a try, it’s awesome!