MS Native unit test - Assert :: Fail из потока не будет работать - PullRequest
0 голосов
/ 14 января 2020

Пример кода:

TEST_CLASS(MyTests)
{    
    TEST_METHOD(MT_Test)
    {
          std::thread t([]() 
          {              
             Assert::Fail(L"Failure!");
          });

          t.join();
     }    
};

Когда MT_Test запускается / отлаживается, он никогда не говорит о том, что тест не пройден из-за ошибки подтверждения теста. Различное поведение на разных прогонах или на разных версиях VS (2017/2019):

  • Тест успешно завершен (зеленая галочка)
  • Тест становится неокончательным (синий восклицательный знак)
  • MS Test Engine аварийно завершает работу

Но не один раз, тестовый сбой происходит.

Как распространить / отрендерить такой сбой из потока?

1 Ответ

1 голос
/ 17 января 2020

В соответствии с CppUnitTestFramework: Testrunner завершился сбоем операторами Assert в потоке ,

Позвольте мне получить это прямо: платформа не предназначена для проверки условий теста (утверждений) в потоки?

К сожалению, нет, тестовая среда C ++ предполагает, что исключения, выданные Asserts, будут в одном потоке.

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