在 gtest 中禁用整个测试用例

新手上路,请多包涵

如何在 gtest 中禁用完整的测试用例? (一个测试用例中的所有测试,而不仅仅是单个测试)

gtest 文档中建议的格式是按以下方式组织测试:

class1test.cpp:

 Test(Class1Test, TestA)
{
    ...
}

Test(Class1Test, TestB)
{
    ...
}

...

class2test.cpp:

 Test(Class2Test, TestA)
{
    ...
}

Test(Class2Test, TestB)
{
    ...
}

....

class3test.cpp

等等…

我知道在测试中添加前缀 DISABLED_ 会阻止它运行(例如: Test(Class1Test, DISABLED_TestB)

但是如果我想禁用测试用例 Class1Test 中的所有测试呢?

这篇文章 GoogleTest:如何跳过测试? 建议使用 gtest 过滤器,但这似乎是我想做的一个复杂的解决方案。它 gtest 过滤器确实是唯一的解决方案,我应该在哪里编写一个禁用测试用例的过滤器?

原文由 Basile Perrenoud 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 2.7k
2 个回答

使用 --gtest_filter=-Class1Test.* 运行测试应该跳过 Class1Test 测试用例中的所有测试。这似乎并不复杂。

原文由 ks1322 发布,翻译遵循 CC BY-SA 3.0 许可协议

  1. 您可以在 main 函数中这样写:
    testing::GTEST_FLAG(filter) = "-Class1Test.*";

   RUN_ALL_TESTS();

  1. 如果您在 Microsoft Visual Studio 中进行了测试,您可以这样做:打开 TestProject 的属性并设置行

–gtest_filter=-Class1Test.*

在配置属性/调试/命令参数中

  1. 您可以使用此注释您的代码

/* your tests */

或这个

    #ifdef _0
        your tests
    #endif

原文由 Olejan 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题