Make Contract.Assert выдает исключение, а не отображает диалоговое окно - PullRequest
6 голосов
/ 24 июня 2011

Если я использую новый метод Code Contracts Contract.Assert, возможно ли заставить его генерировать исключение, а не отображать диалоговое окно? Я хочу сделать это при запуске модульных тестов на сборочной машине.

1 Ответ

5 голосов
/ 24 июня 2011

Благодаря этому сообщению на форумах MSDN Я нашел возможное решение.

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);  
        }  
    }  
}  

Это похоже на работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...