我可以从非gtest测试中检查gtest_filter

can I check the gtest_filter from inside a non-gtest test?

本文关键字:gtest 检查 filter 测试 我可以      更新时间:2023-10-16

我有一个用QTestLib编写的测试套件。的遗产。QTest测试是从初始化为常规gtest套件的main方法调用的。

在CI服务器上,我们使用像

这样的"时间敏感排除"过滤器来调用常规gtest。
> testsuite.exe --gtest_filter=-*TimeSensitive*

现在我想试着通过"听"gtest_filter来禁用一些时间敏感测试。问题是,我能不能用等价的东西?

MyTest::test_TimeSensitiveTestMethod() {
    if (!::testing::gtest_filter("MyTest_TimeSensitiveTestMethod")) return;
    EXPECT_EQ(1, 2);
    ...
}

通过将qtest封装到gtests中实际解决了这个问题:

TEST(MyGtestWrapper, theQtest_TimeSensitive) {
    MyTest test;
    ASSERT_NE(QTEST_FAILED, QTest::exec(&test, 0, 0));
}

测试main必须实例化QApplicationexec,当然。