Archive for March 2006

After some feedback about readbility in RSS Readers the other day, I’ve moved away from the Wiki style of linking (where any linkable text is a hyperlink) to just having one link for a given URL per post.

As I mentioned here the other day, nspectre uses a customised version of the Ader Template Engine. The Ader Template Engine is the only dependency of nspectre. The customisation is that the Ader Template Engine suppresses template exceptions or outputs them inline. Since nspectre uses templates to generate code that is compiled at runtime, it is more useful to have the template engine throw exceptions – this provides more useful feedback than the compilation exception that would otherwise occur.Originally – before release – nspectre used NVelocity. The switch to the Ader Template Engine halved the time the unit tests took to run. The change between the template languages was fairly easy. NVelocity has resource loading functionality, so I had to add the ResourceLocator class. It seems reasonable to me that a templating engine should handle templates and no more, so that wasn’t a major concern.

nspectre 0.7.1 has just been released. This release is a minor release. The main reason for the release is the inclusion of a new preprocessor that allows the validation of objects in a collection.The example code no longer defaults to saving the source code on to the “d” drive. And the ValidatorFactory now checks for invalid paths (and throws an DirectoryNotFoundException if the path is invalid), so the exception is a little easier to understand.Get it here.

Well, not quite lost but bear with me. I started out with a simple enough idea – run ncover across nspectre. There was a small oversight in the settings file left over from the last time I ran ncover so I was getting no coverage (remember not to include the file extension in the assembly name.) Before I spotted the obvious mistake I upgraded ncover to the latest version (uninstall followed by clean install.) Looking at some ncover docs, I spotted my mistake and everything worked. 89% coverage.

And then, I went crazy. I decided to upgrade to the latest version of NUnit and TestDriven .NET. So, I uninstalled the existing versions, got the new installers and installed. Ran the tests and noticed that instead of the 396 tests, only 275 tests were being run. Tried to run the NUnit GUI and it crashed with a message about 2.2.0. So, I uninstalled NUnit 2.2.7 and reinstalled 2.2.0. Ran the test in the NUnit GUI and everything was back to normal. In TestDriven though the problem hadn’t gone away. So I ran the tests from TestDriven through the NUnit GUI – 275 tests. And the GUI looked different. Checked the About dialog and it turns out that TestDriven bundles a copy of NUnit 2.2.7. Regressed back to the previous version of TestDriven, and back to 396 tests all green.

A lot of food for thought about dependencies (nspectre includes a customised version of the Ader Template Engine) and where the 121 tests went. I couldn’t find anything easily on the Internet but I’ll keep looking. I’m still a big fan of TestDriven and NUnit (and ncover). Sometimes you don’t need the latest versions…