我已经为谷歌测试配置了 visual studio。然后我在 vs2010 中编写了一些简单的 google 测试用例,如下所示:
TEST(simpleTest, test1){
float base = 4.f;
float exponent = 1.f;
float expectedValue = 4.f;
float actualValue = pow(base, exponent);
EXPECT_FLOAT_EQ(expectedValue, actualValue);
}
TEST(simpleTest, test2){
float base = 4.f;
float exponent = 2.f;
float expectedValue = 16.f;
float actualValue = pow(base, exponent);
EXPECT_FLOAT_EQ(expectedValue, actualValue);
}
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
RUN_ALL_TESTS();
}
我的问题是如何不运行所有 (RUN_ALL_TESTS) 测试而是运行一个特定的测试用例?是否有任何宏,例如运行(simpleTest.test1); ?
最佳答案
如果需要,您可以使用 GTEST_FLAG
宏将命令行标志编译到测试可执行文件中(参见 Running Test Programs: Advanced Options)
例如,在您的情况下,您可以:
int main(int argc, char **argv) {
::testing::GTEST_FLAG(filter) = "simpleTest.test1";
::testing::InitGoogleTest(&argc, argv);
RUN_ALL_TESTS();
}
但是,像这样的硬编码测试过滤器通常是不可取的,因为每次您想要更改过滤器时都需要重新编译。
就通过 Visual Studio 在运行时传递标志而言,我想您知道您可以将 --gtest_filter=simpleTest.test1
添加到“调试”选项中的命令参数目标的属性页?
关于c++ - 如何在 visual studio 中运行单个 google 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19798879/