首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在GoogleTest中运行特定的测试用例

如何在GoogleTest中运行特定的测试用例
EN

Stack Overflow用户
提问于 2012-08-22 23:04:31
回答 2查看 195.7K关注 0票数 160

我正在尝试为我的项目编写一个函数/方法,它将询问用户您将运行哪些所有测试用例?它看起来像下面...,

代码语言:javascript
复制
Test_Cases_1
         |_TestNo1
         |_TestNo2....so on
Test_Cases_2
         |_TestNo1
         |_TestNo2....so on
....
....so on
Test_Cases_N
         |_TestNo1
         |_TestNo2....so on

那么,现在的挑战是,在运行项目时,它应该提示我您希望执行哪些测试用例?如果我选择Test_Cases_1Test_Cases_N。然后,它应该执行这两个测试用例,并且应该从Test_Cases_2 to ....中排除所有其他测试用例。在结果窗口中,我也想看到Test_Cases_1Test_Cases_N的结果。

因此,如果我将看到GoogleTest,那么有一个名为test_case_to_run_count()的方法;但是所有的test cases都是用Test_F()方法注册的。所以,我做了很多分析,但仍然没有找到任何解决方案。请帮帮我。

EN

回答 2

Stack Overflow用户

发布于 2014-10-20 16:47:29

总结了Rasmi Ranjan Nayak和nogard的答案,并添加了另一个选项:

在控制台上

您应该使用标志--gtest_filter,如

代码语言:javascript
复制
--gtest_filter=Test_Cases1*

(也可以在属性|配置属性|调试|命令参数中执行此操作)

在环境上

您应该像这样设置变量GTEST_FILTER

代码语言:javascript
复制
export GTEST_FILTER = "Test_Cases1*"

在代码上

您应该设置一个标志filter,比如

代码语言:javascript
复制
::testing::GTEST_FLAG(filter) = "Test_Cases1*";

这样你的main函数就会变成类似这样的东西

代码语言:javascript
复制
int main(int argc, char **argv) {
    ::testing::InitGoogleTest(&argc, argv);
    ::testing::GTEST_FLAG(filter) = "Test_Cases1*";
    return RUN_ALL_TESTS();
}

有关可使用的字符串语法的更多信息,请参阅Running a Subset of the Tests小节。

票数 114
EN

Stack Overflow用户

发布于 2012-08-23 20:27:38

最后我得到了一些答案,::test::GTEST_FLAG(list_tests) = true; //来自你的程序,而不是w.r.t控制台。

如果您想使用--gtest_filter =*; /* =*, =xyz*... etc*/ //,您需要在控制台中使用它们。

因此,我的要求是从程序中使用它们,而不是从控制台。

Updated:-

最后,我从程序中得到了更新相同内容的答案。

代码语言:javascript
复制
 ::testing::GTEST_FLAG(filter) = "*Counter*:*IsPrime*:*ListenersTest.DoesNotLeak*";//":-:*Counter*";
      InitGoogleTest(&argc, argv);
RUN_ALL_TEST();

所以,谢谢你所有的答案。

你们这些人太棒了。

票数 31
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12076072

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档