gtest filter 应用

gtest(Google Test)是一个流行的C++测试框架。通过使用–gtest_filter标志,你可以根据测试的名称运行一部分测试。这在你只想运行特定测试而不是整个测试套件时非常有用。

基本用法

–gtest_filter标志接受一个模式字符串,该字符串包含用-字符分隔的正模式和负模式。

正模式

正模式指定要运行的测试。例如:

./your_test_executable --gtest_filter=FooTest.*

这条命令运行FooTest测试用例中的所有测试。

负模式

负模式指定要排除的测试。例如:

./your_test_executable --gtest_filter=FooTest.*-FooTest.Bar

这条命令运行FooTest测试用例中的所有测试,除了FooTest.Bar。

组合多个模式

你可以使用冒号(:)组合多个模式。例如:

./your_test_executable --gtest_filter=FooTest.*:BarTest.*

这条命令运行FooTest和BarTest测试用例中的所有测试。

示例

# 运行特定测试
# 下面命令只运行FooTest.Bar测试。
./your_test_executable --gtest_filter=FooTest.Bar

# 运行所有测试,除了特定的一个
# 下面命令运行所有测试,除了FooTest.Bar。
./your_test_executable --gtest_filter=-FooTest.Bar

# 运行多个特定测试
# 下面命令运行FooTest.Bar和FooTest.Baz。
./your_test_executable --gtest_filter=FooTest.Bar:FooTest.Baz

# 运行测试套件中的所有测试,除了几个
# 下面命令运行FooTest测试用例中的所有测试,除了FooTest.Bar和FooTest.Baz。
./your_test_executable --gtest_filter=FooTest.*-FooTest.Bar:FooTest.Baz

通配符

  • * 匹配任何字符串,包括空字符串。
  • ? 匹配任何单个字符。

使用通配符的示例

# 运行测试套件中的所有测试:
./your_test_executable --gtest_filter=FooTest.*

# 运行名称以Bar开头的测试:
./your_test_executable --gtest_filter=FooTest.Bar*

# 运行名称包含Baz的测试:
./your_test_executable --gtest_filter=*Baz*

总结

–gtest_filter标志是控制测试套件中运行哪些测试的强大工具。通过使用正模式和负模式,以及通配符,你可以精确地选择要执行的测试。

你可能感兴趣的:(工具使用,C++,c++,gtest)