Monday, March 24, 2008

Announcing Gallio v3.0 Alpha 2

Today we have released Gallio v3.0 Alpha 2, including a preview of MbUnit v3.

Go visit our new website for the download:

New and Notable

1. MbUnit v3 Data-Driven Tests

There's been a ton of work behind the scenes to provide a compelling model for data-driven testing.  Here's an example of this feature in action.  Notice the use of generic method parameters.  Also notice that we perform an automatic string to DateTime conversion and that we take some care in how we format the parameters for presentation in the test results.

A generic test for collections

The results

2. ReSharper Integration

Run tests inside ReSharper.  The Gallio plugin for ReSharper currently supports MbUnit v2, v3, and xUnit.Net.  It will of course support any test framework with a suitable Gallio adapter.  For example we have a prototype of a native NBehave implementation on Gallio with full ReSharper integration that just works.

An MbUnit unit test session in ReSharper!

3. Icarus Test Runner

Development on the GUI is progressing smoothly.  It is not quite feature complete but it is coming along quite nicely.


4. Integrated support for TypeMock and NCover

This is all it takes to run your tests with NCover or TypeMock using MSBuild:

<Gallio Assemblies="MyAssembly.dll" RunnerType="NCover" />
<Gallio Assemblies="MyAssembly.dll" RunnerType="TypeMock" />

The trick is that the tests will run in an isolated host process with the profiler attached.  You can of course plug in your own runners too.  You can of course pass the same arguments to the NAnt task, PowerShell task and the command-line runner (Echo).


5. Visual Studio Templates and ASP.Net MVC Support

We've made it easier to get new projects off the ground by providing Visual Studio project and items templates.  What's more, we also support integration with the new ASP.NET MVC unit test project Wizard!

Creating a new test project

The ASP.NET MVC new project wizard with MbUnit v3 shown

6. New Website

Mark did some great work on  Please tell us what you think.  We'll be busy over the next few weeks filling it up with content, including documentation.

And lots more...

Really.  Lots.  We've got a book project underway and tons of little details just below the surface like automatic data conversion, rich formatting, MHTML reports, isolated test host processes, embedded images in CCNet reports, new API, a Pex package and more.  Expect more blog articles coming your way.

So try it out!

Caveat: This release is an Alpha.  It is a high-quality Alpha, but an Alpha nonetheless.  It is not feature complete but it is quite featureful!  I am indeed using it in production.  But your mileage may vary so please send us your feedback!

Technorati Tags: ,


Scott Hanselman said...

Fantastic! Congrats!

Libor said...

I just played a bit with Icarus and its really cool. Very nice GUI and test runner works quite well. Great job guys

blessYAHU said...

Can you give an example of doing the abstract test pattern in mbunit3 using plugin?

Jeff Brown said...

You just need an abstract test class:

And one or more concrete subclass:

In the small, the pattern looks a bit like this:

public abstract class Foo
public abstract ISomeType Object { get; }

public void MyTest()
Assert.AreEqual(42, Object.DoSomething());

public class Bar
public override ISomeType Object
get { return new ObjectOfMyType();

Anonymous said...

Would you mind explaining the NCover integration a bit more?

I don't know if you use ReSharper, but I'm curious if this is a backdoor way to get NCover to work with it.

Mads Nissen ( said...

I'm using TypeMock 5.1 for my project. Works fine in VS, but when I'm running the Gallio task with RunnerType="TypeMock" the ReturnRecursiveFakes doesn't seem to work. This is most likely because this is a new feature.

How do I make Gallio run under the current 5.1 version of TypeMock?
(tried to upgrade the TypeMock.Integration.dll in the Gallio distribution).