【问题标题】:MS Native unit test - Assert::Fail from a thread won't workMS Native 单元测试 - 来自线程的 Assert::Fail 不起作用
【发布时间】:2020-04-30 21:10:28
【问题描述】:

示例代码:

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

          t.join();
     }    
};

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

  • 测试成功(绿色勾号)
  • 测试没有结果(蓝色感叹号)
  • MS 测试引擎崩溃

但不是一次,测试失败。

如何从线程传播/呈现此类失败?

【问题讨论】:

    标签: c++ visual-studio unit-testing visual-c++ mstest


    【解决方案1】:

    根据CppUnitTestFramework: Testrunner crashed by Assert statements in a thread,

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

    很遗憾,C++ 测试框架假定异常 Asserts 抛出的将在同一个线程上。

    【讨论】:

      猜你喜欢
      • 2013-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-23
      • 2013-02-20
      相关资源
      最近更新 更多