BT

Your opinion matters! Please fill in the InfoQ Survey!

Gallio and MbUnit 3.06 Released

| by Al Tenhundfeld Follow 0 Followers on Mar 30, 2009. Estimated reading time: 2 minutes |

A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.

Gallio and MbUnit version 3.06 have been released. Gallio is an automation platform providing an "open, extensible, and neutral system for .NET that provides a common object model, runtime services and tools (such as test runners) that may be leveraged by any number of test frameworks." MbUnit is a popular generative unit test framework for .NET.

MbUnit v3.0.6 includes the following improvements:

  • Parallelizable
  • With v3.0.6, MbUnit helps you get the most out of your multi-core CPU. Mark any test [Parallelizable] and it will be permitted to run in parallel with other parallelizable tests in the same fixture. Fixtures can also be marked parallelizable to enable them to be run in parallel with other parallelizable fixtures. Please note that if you want all tests within a fixture to be considered parallelizable then you still need to add [Parallelizable] to each of them. (We might add a feature to set this at the fixture or assembly level later based on user feedback.) Also note that just because a test or fixture is marked parallelizable does not mean it will run in parallel with other tests in particular. For the sake of efficiency, we limit the number of active tests threads based on the configured degree of parallelism. If you want a specific number of instances of a test to run in parallel with each other, consider using [ThreadedRepeat].
  • DegreeOfParallelism
  • The degree of parallelism setting controls the maximum number of tests that MbUnit will attempt to run in parallel with one another. By default, the degree of parallelism equals the number of CPUs you have, or 2 at a minimum.
  • DefaultTestCaseTimeout (Breaking Change)
  • In MbUnit v2 and earlier versions of MbUnit v3, there was a non-configurable default timeout of 10 minutes per test fixture. Now we have a configurable default timeout of 10 minutes per test case.
  • Contact Verifiers Redux (Breaking Change!)
  • Contract verifiers simplify the process of testing that an implementation of a common contract is correct. For example, they can help you test your custom Exception class, verify that your datatype's Equals & GetHashCode are consistent, and check IList invariants. We originally introduced this feature in MbUnit v3.0.4, updated it in v3.0.5 and Yann Trévin has been busy making it better for v3.0.6! Instead of using custom attributes to use a contract verifier, we now use a read-only field in the test fixture. This change makes the syntax much more expressive, but you will have to update any tests written in the old style. More documentation here: Contract Verifiers Chapter in Gallio Book
  • Xml Data Source
  • The CSV data source has been very popular. Did you know you can associate metadata with CSV data rows, like expected exceptions? Just add a column with a header like "[ExpectedException]", "[Description]", or some other metadata. In v3.0.6, we now have an XML data source too.

Gallio core also contains improvements, most notably:

  • One-Click Debugging
  • Icarus can now run tests under the debugger with just one click of the "Debug" button. It will attach (or launch) the Visual Studio debugger to the test process and start the tests.
  • Auto-Reload and Auto-Run
  • Icarus now supports automatically reloading and running all loaded tests whenever they are recompiled. In v3.0.6, these features are controlled by a Preference. In future releases we will probably make them available from the toolbar so that it is easier to switch modes on demand.
  • ReSharper Integration
  • Added support for ReSharper v4.5 beta. Added memoization to the reflection API to improve performance.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread
Community comments

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT