DbFit: the past and present

At this moment (March 2013), there are 4 different distributions of the DbFit project in the wild. In this post, I hope to give some background as to why this is so and which version to use when.

The original DbFit

In 2007, Gojko Adzic released the original version of DbFit, a set of .NET fixtures for FitNesse for interacting with the database. The fixtures were later ported to Java, and the list of supported databases also grew with time. The last released version of the original DbFit is the 1.1 version; it is still available on SourceForge.

Post 2008

Since 2008, the original project did not see any active development, although the tool continued being downloaded and used by many teams ever since. As a result, the DbFit code was “donated” into two projects: the .NET fixtures made their way into FitSharp, maintained by Mike Stockdale and the Java fixtures were ported and added to FitLibrary, which is maintained by Darren Rowley. While both versions received small changes and bug fixes, it is my understanding that they remained fundamentally unchanged from the last original 1.1 release.

Fast forward to 2013

In January of this year, I restarted active development on the DbFit codebase on GitHub. Before Gojko had moved on to greener pastures, he was working on the 2.0 release, so I used this as the starting point. My first goal was to consolidate:

  • to release a binary distribution that worked with the latest and greatest version of FitNesse
  • to update and improve the documentation and user experience of the current feature set
  • fix any problems that had quick and easy solutions
  • to try to kickstart the community and improve the knowledge sharing amongst those currently using the tool

So far, all changes made by myself and the recent contributors (thanks guys!) has been to the Java source. In fact, I’ve dumped the original .NET code from GitHub and distribute the FitSharp v2.2 fixtures with the DbFit 2.0 binaries. I would definitely like to port the Java changes to FitSharp at some point, but that isn’t happening right now, so unless something specific is needed (please get in touch directly or on the forum if that’s the case), that isn’t high on the priority list at the moment.

Hopefully, the 2.0 final release will be pushed out in April. After that, the focus would be on adding features (support for more databases and ETL tools, improvements to the documentation, refinements to the test tables, making DbFit play nicely with Slim and FitLibrary).

Which DbFit to use?

So, that’s an overview of all the projects, now which version should you use and when?

DbFit 1.1 - there isn’t any reason to use this now. It’s been superseded by DbFit 2.0.

FitSharp 2.2 - you can use this version if you need database access in your FitSharp tests under Windows (however I’ve bundled FitSharp 2.2 into the DbFit 2.0 release candidates).

FitLibrary 2.0 - use this if you need database access in your FitLibrary-based tests and you don’t want a dependency on Fit.

DbFit 2.0 - This is the only version that bundles a working, already wired combination of FitNesse and DbFit. However, if you have an existing FitSharp or FitLibrary setup, you probably won’t get a great benefit from using this just yet.