One of the challenges in delivering successful and high quality BizTalk solutions is the ability to test the solution. BizTalk is an execution environment which is often treat like a black box making it difficult to test what’s happening inside BizTalk.

Most good development teams will test various BizTalk artefacts such as maps, pipeline components, etc thourghly in isolation before they are used within BizTalk and then deploy the solution to BizTalk and then black box test it with a test framework like BizUnit. Recently there have been a number of projects such as BizMock and BizMonade which have tried to let you test in more detail by isolating things like orchestrations so they can be partially tested in isolation.

There is still a gap!

When all of your components are deployed together in BizTalk and you attempt to integration test them its very difficult to assert that something actually happened inside of the black box. Take an example where we have an orchestration with a decision shape and two branches. Normally the testing would push a message into BizTalk to cause the orchestration to execute and then test what happened to things around BizTalk (such as event log or application stubs) and then check the message that comes out of BizTalk. The thing we haven’t done is to prove which branch of an orchestration was executed.

The aim of the BizTalk Testing Trace Monitor is to help address this gap by taking advantage of tracing messages implemented using the Microsoft BizTalk CAT Team Logging Framework

Please refer to the documentation page for more details


If you use BizUnit 4 then refer to

If you use BizUnit 3.1 then refer to

I used samples from the following community articles and tools to help put together the BizUnit steps used in this project:

Christian Birkl -
Thomas Abraham -
Daniel Vasquez Lopez -
BizTalk CAT Team -

Last edited Jun 12, 2011 at 12:12 AM by michaelstephenson, version 8