First sentence of failure message is "errorMessage" in example above. See this MbUnit assert:
Assert.AreEqual(1, 2, "Values are not equal.");
It leads to this message in Gallio report:
"Values are not equal.
Expected Value: 1
Actual Value: 2
Stack Trace: ...
StackTrace comes along with Gallio.Framework.Assertions.AssertionHelper.Verify(assertFailureFunc) if this method call fails.
Well, idea of SharpTestEx CreateException() method is just to create a specific exception if the previous verification (AndAssertion, UnaryAssertition) fails.
My idea is to let the host unit testing framework invoke the verification process. I feel the syntax provided by SharpTestEx pretty nice because it allows me to write the verifications in a clearer way compared to standard asserts. At the same time, it is
just syntactic sugar for writing clearer asserts. Hence I would vote for being it a builder for set of asserts and verifications but verification process itself should be the responsibility of host testing framework.