MS 本机单元测试 - 断言::线程失败不起作用

MS Native unit test - Assert::Fail from a thread won't work

本文关键字:线程 不起作用 失败 断言 本机 单元测试 MS      更新时间:2023-10-16

示例代码:

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

MT_Test运行/调试时,它永远不会说测试由于测试断言失败而失败。不同运行或不同 VS 版本(2017/2019(上的不同行为:

  • 测试成功(绿色勾号(
  • 测试变得不确定(蓝色感叹号(
  • MS 测试引擎崩溃

但没有一次测试失败。

如何从线程传播/渲染此类故障?

根据 CppUnitTestFramework:Testrunner 在线程中被 Assert 语句崩溃,

让我直截了当地说:该框架不是为检查而设计的 线程中的测试条件(断言(?

不幸的是,没有,C++测试框架假设异常 断言抛出的将在同一线程上。