Aspects and policy injection - clean up your code

The other thing that really has impressed me this week was the use of policy injection and aspect oriented programming in our code.

I mean - you write aspects (or policies) for things like logging, performance counters, caching and error handling and move all that stuff into configurable policies. What is left in your code?

Pure and beautiful business code (or at least problem domain code).

It’s so nice - we’re cleaning up code every day in our project and I just love to remove logging and error handling from my code and see my business code emerge from the muddy waters of “cross cutting concerns”.

This video opened my eyes for aspects. It’s for PostSharp which is another framework for doing aspects, but the concepts are shown clearly.

Read More

Agile testing - how we get it to work

This week I have made two discoveries that really has made me happy. They are not news by any means but I has been like they have clicked into place in my brain.

The first one is surrounding the subject of testing in agile projects, which a lot of people seems to have opinions about - but I haven’t heard anyone go: “Do like this!”. I suspect that it has to do with current testing process are rigid on many companies and there is a reluctantancy towards changing the quality assurance process. Also the amount of regression testing increases for each sprint.

We have had some trouble to get testing to work smoothly in our projects, but we are closing in on a solution. I do not claim to have the answerer or not even know much about the theories behind this big subject - but this works fine...

Read More

Blogging in two places - Avega Group Blog

Avega is starting up a corporate blog and have asked me to post some posts there. Sounds great so I have just posted in some items from to my “Avega”-alias. will not be live in a few weeks though, so keep cool until you can read me in … stereo. ;)

A few interesting questions arose:

Read More

Missing references showing nicely with ReSharper

I found a feature that I thought was bug in Visual Studio… If you have ReSharper (4.0 in my case) installed it shows your missing references directly in the .config-file.

Missing references showing with resharper

Of course there are limitations of this - secondary references cannot be resolved but it is still a great help. Unfortunately it confused me for a while thinking it was a bug in the config editor of Visual Studio. But I take that one on me.

Read More

Regular Expression for even number

Let me first be very clear - I’m not a RegExp-guy. I find them quite hard to understand at times and often take my refuge to the .NET-code.

Also I was very surprised to not find any hits for the search of “RegExp even numbers” - I thought that I would find numerous examples.

But after reading a bit at this place I learned enough to create my first own, naïve regular expression - a regular expression to allow only even numbers:


Again - my apologies for being a newbie on this… but hey it works.

I also found this resource very useful for trying my expression out.

Regular Expressions are very powerful but “with great powers comes great responsibilities”… that is they are often hard to understand.

Thanks Fredrik S for the links.

Read More

The right way of calling MSTest in a TFS build script

OK - sometimes it just to confess - I took a chance, or didn’t know what I was doing - call it what you want.

In TFS Build-scripts there are a much nicer way of calling MSTest than the Exec-task as I suggested. There is already a task for it, called TestToolsTask. With this task you can much easier reach all the properties you need. And it even contains some undocumented features such as the TestContainer-property.

Here is my updated version on how to call the task:

<TestToolsTask   TestContainers="$(BinariesRoot)\Debug\Company.Service.Host.Test.Integration.dll"
          ContinueOnError="true" />
Read More

How to run MSTest with publish parameter as MSBuild Exec-task

[UPDATED, see this]

I have created a task that runs some unit tests in a certain DLL and the publish the result to a TFS service. We use this task in our TFS MSBuild script in order to execute some integration tests in the last step of the build process. In order to get some value from the integration tests the solution needs to be deployed, for example.

The most tricky parts of figuring this out was:

  • The path to MSTest.exe - as it turns out there are a environment variable to the root of the Visual Studio Tools - %VS90COMNTOOLS%. And via that we can reach MSTest.exe with %VS90COMNTOOLS%\..\IDE\MSTest.exe
  • To publish a build you need the buildId to send to the publishbuild-parameter of MSTest. It can easily be obtained from the TFSBuild parameter $(BuildNumber)

So here you are - my task to run tests...

Read More

Marcus - now in full color video...

I had a quite strange experience today. I did a presentation about unit testing for another project. Nothing strange there. But the thing was recorded (via LiveMeeting, worked great after some initial confusing surrounding the mic) and then put out on the developer portal of my customer.

So later on I heard my lame jokes echoing through out the nearby workstation. Excruciating painfully… it’s just not funny the forth time you hear your own jokes…

Quite cool experience though. I like doing presentations.

Read More

Automation of integration tests

In my current project we have reached a very good code coverage percent (98,7 %, yes we are proud) - but we are aspiring to take it a step further.

We are now constructing a series of integration test, used to run through the actual production code an verifying that everything works as expected.

Said and done - I implemented a few test that did that. Soon though some questions and problems arose;

  • Integration test assumes that something is released and the that tests are executed against that release
  • You don’t want the integration test to be executed when a developer is running the unit test on his development machine inside Visual Studio.

When looking around on the net it seems that many people are missing the Category-attribute from NUnit in MSTest. That looked like a very nice way to solve the problem but...

Read More