gpt4 book ai didi

c++ - GTest - 在不同的参数上运行多个测试用例

转载 作者:行者123 更新时间:2023-11-28 04:03:42 33 4
gpt4 key购买 nike

注意:我知道这个问题以不同的方式被问到,但我无法根据我的限制解决它:

  1. 我正在使用谷歌测试版 1.7
  2. 使用平台工具集 V100 在 Visual Studio 2010 中编译

我正在为我创建的库编写 google 测试。

在我的库中,我有 3 个结构,如下所示:

struct utc_clock{ .... }
struct system_clock {....}
struct cpu_clock {....}

此外,我还有另一个类将它们用作模板参数。

在我的测试用例中,我做了如下操作:

TEST(MyTest, testImportantThings)
{
time_point<utc_clock> tp = utc_clock::now();

ASSERT_EQ(..things with tp... );
... more ASSERTION
}

我想做的是运行

TEST(MyTest, testImportantThings)

每个 utc_clock 多次, system_clock , cpu_clock

我调查了How to get gtest TYPED_TEST parameter type ,

之后,我得到了以下信息:

template<typename T>
struct MyTest: public testing::Test{
using MyParamType = T;
};

using MyTypes = testing::TYpes<utc_clock, system_clock, cpu_clock>;

TYPED_TEST_CASE(MyTest, MyTypes);

TYPED_TEST(MyTest, testImportantStuff)
{
using clock = typename TestFixture::MyParamType;

timepoint<clock> tp = clock::now();

ASSERT_EQ(..things with tp... );
... more ASSERTION

}

但是我得到以下错误:

  1. unexpected token(s) preceding ';' on: using MyParamType = T;

  2. testing::internal::TYpeList use of class template requires template arguement list online on: using MyTypes = testing::TYpes<utc_clock, system_clock, cpu_clock>;

还有更多...

最佳答案

您的编译器可能太旧,不支持使用 using 定义类型别名。如果将它们替换为旧式 typedef 语句会怎样?

例如,您可以替换

using MyParamType = T;

等同于:

typedef T MyParamType;

关于c++ - GTest - 在不同的参数上运行多个测试用例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59092033/

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