假设我有 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/