c++ - 使用 googletest 有选择地执行单元测试

标签 c++ unit-testing googletest

假设我有 A、B、C 类,每个类在 gtest 中都有自己的单元测试。

如何只运行 A 测试?我有这个 main.cpp 用于执行所有可用的单元测试。

This page建议在类名前面使用DISABLED_,但这需要我更改测试代码的许多部分。

我想可能有更好的方法来控制运行或不运行哪个测试。

#include <iostream>
#include <gtest/gtest.h>

int main(int argc,  char ** argv)
{
    std::cout << "Running main() from gtest_main.cc\n";

    testing::InitGoogleTest(&argc, argv);
    return RUN_ALL_TESTS(); // <-- return "RUN_XYZ_TEST()" ???
    
    return 0;
}

最佳答案

当你编译这个程序时,你将得到一个可执行文件,我将其称为program

现在,如果您使用 --gtest_list_tests ( https://github.com/google/googletest/blob/master/docs/advanced.md#listing-test-names ) 调用 program ,您将获得所有可以运行的测试。如果您想运行特定的应用程序(如示例中的测试 A),只需将您的应用程序调用为 ( https://github.com/google/googletest/blob/master/docs/advanced.md#running-a-subset-of-the-tests ):

program --gtest_filter=A

请注意,您也可以应用通配符。要获取所有选项的列表,请尝试:

program --help

关于c++ - 使用 googletest 有选择地执行单元测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17093772/

相关文章:

由单独源文件中的全局变量引起的 C++ 段错误

angular - Jasmine Angular : How to write unit test for anonymous func given as args

Java 测试扫描仪与假用户输入

unit-testing - Google Test 中的自定义 EXPECT_NEAR 宏

c++ - SFINAE 没有使用一个非常简单的例子

C++音乐专辑打印轨道标题

c++ - 存储函数返回值或立即使用它 C++

unit-testing - 试图在 Angular 中模拟 $http

c++ - 在编译时选择随机数分布

c++ - 在 GoogleTest 中使用 ASSERT 和 EXPECT