我试图为我的项目写一个函数/方法,它会问用户你要运行哪些测试用例?看起来像是下面。。。
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_1
和Test_Cases_N
。然后,它应该执行这两个测试用例,并且应该从Test_Cases_2 to ....
中排除所有其他测试用例。在结果窗口中,我还想看到Test_Cases_1
和Test_Cases_N
的结果。
所以,如果我会看到GoogleTest,有一个方法称为test_case_to_run_count()
;但是所有的test cases
都被注册到Test_F()方法中。我做了很多分析,但仍然没有找到解决办法。请帮帮我
3条答案
按热度按时间fiei3ece1#
您可以使用高级选项来运行Google测试。
要只运行某些单元测试,您可以使用
--gtest_filter=Test_Cases1*
命令行选项,其值接受*
和?
通配符,以匹配多个测试。我想这会解决你的问题。UPD:
那么,问题是如何运行特定的测试用例。gtest与GUI的集成是另一回事,我不能对此发表评论,因为您没有提供方法的细节。但是,我认为以下方法可能是一个良好的开端:
1.通过使用
--gtest_list_tests
运行测试来获取所有测试用例1.将此数据解析到GUI中
1.选择要运行的测试用例
1.使用选项
--gtest_filter
运行测试可执行文件cig3rfwq2#
总结Rasmi Ranjan Nayak和Nogard的答案并添加另一个选项:
控制台
您应该使用标志
--gtest_filter
,如下所示(需要使用通配符的引号),(You也可以在属性中执行此操作|配置属性|调试|命令参数)
关于环境
您应该像这样设置变量
GTEST_FILTER
代码上
您应该设置一个标志
filter
,如这样你的主函数就变成了
有关可以使用的字符串语法的更多信息,请参见“运行测试的子集”一节。
iqih9akk3#
最后我得到了一些答案,
::test::GTEST_FLAG(list_tests) = true;
//从你的程序,而不是w.r.t控制台。如果您想使用
--gtest_filter =*;
/* =*, =xyz*... etc*/
//您需要在控制台中使用它们。所以,我的要求是从程序中使用它们,而不是从控制台。
Updated:-
最后,我得到了答案,更新相同的程序。
所以,谢谢你的所有答案。
你们很棒