理解 GTest 和命令参数的作用
Google Test(GTest)是一个用于编写 C++ 单元测试的框架。在使用 Visual Studio(VS)调试 GTest 程序时,命令参数用于将测试用例相关的信息传递给可执行文件,例如指定要运行的测试用例名称、过滤测试用例等。
常见的 GTest 命令参数及填写方式
1. 运行所有测试用例:
参数:通常不需要特殊的命令参数来运行所有测试用例。如果你的测试项目配置正确,在 VS 中直接运行测试项目即可。例如,在 VS 的解决方案资源管理器中,右键单击测试项目,选择 “调试”->“开始新实例”,它会自动运行所有定义好的测试用例。
2.运行特定测试套件(Test Suite)中的测试用例:
参数格式:–gtest_filter=SuiteName.。这里SuiteName是你在 GTest 中定义的测试套件名称。例如,如果你有一个测试套件名称为MathFunctionsTestSuite,想要运行这个套件中的所有测试用例,在 VS 的调试命令参数中填写–gtest_filter=MathFunctionsTestSuite.。
3.运行特定测试用例(Test Case):
参数格式:–gtest_filter=SuiteName.TestCaseName。假设在MathFunctionsTestSuite中有一个测试用例名为AdditionTest,要运行这个特定的测试用例,就在命令参数中填写–gtest_filter=MathFunctionsTestSuite.AdditionTest。
4.按标签(Tag)过滤测试用例:
参数格式:–gtest_filter=-Tag:TagName(排除指定标签的测试用例)或–gtest_filter=Tag:TagName(仅运行指定标签的测试用例)。在 GTest 中,你可以为测试用例添加标签来进行分类。例如,如果你有一些性能测试用例添加了Performance标签,想要排除这些性能测试用例,在命令参数中填写–gtest_filter=-Tag:Performance。
在 VS 中设置调试命令参数的步骤
打开项目属性:
在 VS 的解决方案资源管理器中,右键单击你的测试项目,选择 “属性”。
配置调试属性:
在项目属性窗口中,选择 “配置属性”->“调试”。
填写命令参数:
在 “命令参数” 字段中,按照上述的参数格式填写你想要传递给 GTest 的命令参数。例如,如果你只想运行特定测试用例MathFunctionsTestSuite.AdditionTest,就在 “命令参数” 字段中填写–gtest_filter=MathFunctionsTestSuite.AdditionTest。
保存设置并调试:
填写完命令参数后,点击 “确定” 保存设置。然后你可以像往常一样通过 VS 的调试功能(如按 F5)来启动调试,此时 GTest 会根据你设置的命令参数来运行相应的测试用例。
注意事项
参数拼写和大小写:
确保测试套件名称、测试用例名称和标签名称的拼写正确,并且注意 GTest 的命令参数是区分大小写的。
参数组合使用:
可以组合使用不同的命令参数来实现更复杂的测试用例过滤。例如,–gtest_filter=Suite1.TestCase1 - Tag:Slow可以运行Suite1中的TestCase1测试用例,并且排除带有Slow标签的测试用例。