If I'm using the new Code Contracts Contract.Assert
method, is it possible to make it throw an exception rather than display a dialog box? I want to do this when running unit tests on the build machine.
Thanks to this post on MSDN forums I've found a possible solution.
namespace QuickGraph.Tests
{
[TestClass]
public class AssemblyContextTest
{
[AssemblyInitialize]
public static void Initialize(TestContext ctx)
{
// avoid contract violation kill the process
Contract.ContractFailed += new EventHandler<ContractFailedEventArgs>(Contract_ContractFailed);
}
static void Contract_ContractFailed(object sender, System.Diagnostics.Contracts.ContractFailedEventArgs e)
{
e.SetHandled();
Assert.Fail("{0}: {1} {2}", e.FailureKind, e.Message, e.Condition);
}
}
}
This appears to work.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With