C++ GTest-在不同参数上运行多个测试用例
注意:我知道这个问题是以不同的方式提出的,但基于我的限制,我无法解决它: 我使用的是谷歌测试版1.7 在VisualStudio2010中编译,使用平台工具集V100 我正在为我创建的库编写google测试 在我的库中,我有3个结构,如下所示:C++ GTest-在不同参数上运行多个测试用例,c++,googletest,C++,Googletest,注意:我知道这个问题是以不同的方式提出的,但基于我的限制,我无法解决它: 我使用的是谷歌测试版1.7 在VisualStudio2010中编译,使用平台工具集V100 我正在为我创建的库编写google测试 在我的库中,我有3个结构,如下所示: struct utc_clock{ .... } struct system_clock {....} struct cpu_clock {....} TEST(MyTest, testImportantThings) { time_point
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
}
此外,我还有一个类将它们用作模板参数
在我的测试用例中,我执行以下操作:
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
}
utc时钟、系统时钟、cpu时钟各有多次
我调查过,
在那之后,我得到了以下信息:
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
}
但我得到以下错误:
“;”前面的意外标记开启:使用MyParamType=T
testing::internal::TYpeList类模板的使用需要模板
在线辩论列表:使用MyTypes=testing::TYpes
还有更多…您的编译器可能太旧,无法支持使用定义类型别名。如果用老式的typedef语句替换它们呢 例如,您可以替换
using MyParamType = T;
具有同等效力的:
typedef T MyParamType;
您的编译器是否太旧,无法支持使用?如果用老式的typedef语句替换这些语句呢?你是对的。如果你愿意,你可以把这个作为答案贴出来。这个问题可以结束了