Могу ли я получить необработанное исключение из Microsoft.VisualStudio.TestTools.UnitTesting.TestContext или другого метода? - PullRequest
0 голосов
/ 21 февраля 2020

Я пишу тесты API и использую среду mstest. Моя настройка довольно проста, мои функции очистки и инициализации выглядят так, как показано ниже - встаньте и выключите режимы регистрации. Моя проблема в том, что некоторые тесты генерируют исключения, которые не перехватываются (обычно это происходит из-за тестового кода, который все еще находится в разработке). Это приводит к сбою теста, чего я и ожидал, но мне не удалось получить реальный объект исключения и зарегистрировать его, что немного затрудняет отладку. Очевидный ответ: «оберните ваш тест в блок try catch, который обрабатывает ведение журнала и корректно проваливает тест», но мне это не очень нравится, потому что это просто добавляет еще одну ответственность за то, что будущие авторы теста (вероятно, я) будут плохо реализовывать улов , войти и отбросить логи c.

TL; DR : как я могу, используя TestContext (или другое решение), получить доступ к исключению, которое было сгенерировано, но не перехвачено фактическими логами тестирования c в очистке теста метод?

public TestContext TestContext { get; set; }

[TestInitialize]
public void TestInitialize()
{
    Log.RegisterLogger(new TestLog() {
        TestCaseName = TestContext.TestName,
        TestCastStart = DateTime.UtcNow
    });
}

[TestCleanup]
public void TestCleanup()
{
    /*I want to be able to get the details of an uncaught exception here*/
    Log.FinalizeLogging();
}
...