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

时间:2016-08-19 06:30:25

标签: c++ continuous-integration googletest qtestlib

我有一个用QTestLib编写的测试套件。这是遗产。 QTest测试是从初始化的main方法调用的,就像普通的gtest套件一样。

在CI服务器上,我们使用“时间敏感排除”过滤器调用常规gtests,如

> testsuite.exe --gtest_filter=-*TimeSensitive*

现在我想尝试通过'监听'gtest_filter来禁用其中一些时间敏感的测试。所以问题是:我可以使用与此相当的东西吗?

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

1 个答案:

答案 0 :(得分:0)

实际上只是将qtests包装成gtests来解决问题:

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

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