gpt4 book ai didi

c++ - 按类别对 googletest 单元测试进行分组

转载 作者:可可西里 更新时间:2023-11-01 17:46:12 27 4
gpt4 key购买 nike

googletest 单元测试可以按类别分组吗?例如“SlowRunning”、“BugRegression”等。我发现最接近的是 --gtest_filter 选项。通过将类别名称附加/预先添加到测试或夹具名称,我可以模拟组的存在。这不允许我创建通常不运行的组。

如果类别在 googletest 中不存在,是否有好的或最佳实践解决方法?

编辑:另一种方法是使用 --gtest_also_run_disabled_tests。在测试前添加 DISABLED_ 恰好为您提供了一个条件类别,但我觉得我在这样做时误用了 DISABLED。

最佳答案

其中一种方法是使用 gtest_filter 选项并使用命名约定进行测试(如您在问题中所述)。

TEST_F(Foo, SlowRunning_test1) {...}
TEST_F(Foo, BugRegression_test1) {...}
TEST_F(Foo, SlowRunningBugRegression_test1) {...}

其他方式使用单独的二进制文件/可执行文件进行任何类型的测试。这种方式有一些限制,因为 gtest 使用静态自动注册,所以如果您包含一些源文件 - 在该源文件中实现的所有测试都将包含在生成的二进制文件/可执行文件中。

我认为第一种方法更好。此外,我会实现新的测试注册宏,让我的生活更轻松:

#define GROUP_TEST_F(GroupName, TestBase, TestName) \
#ifdef NO_GROUP_TESTS \
TEST_F(TestBase, TestName) \
#else \
TEST_F(TestBase, GroupName##_##TestName) \
#endif

关于c++ - 按类别对 googletest 单元测试进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12610239/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com