问题
假设工程中有个类的名字或者函数的名字和TEST_P(oc_cvMoments,Mat)里面的第一个参数一样的话,就会出现以下问题。
Gtest框架的问题。
struct ocl_cvMoments : MomentsTestBase {};
TEST_P(ocl_cvMoments, Mat)
{
略。。。
}
INSTANTIATE_TEST_CASE_P(Moments, ocl_cvMoments, Combine(Values(CV_8UC1, CV_16UC1 ), Values(false)));
提示错误:
/media/test/test_moments.cpp:213:1: 错误: 模板实参表语法错误
/media/test_moments.cpp:213:1: 错误: 对‘testing::internal::ParameterizedTestCaseRegistry::GetTestCasePatternHolder(const char [14], const char [73], int)’的调用没有匹配的函数
/media/test/test_moments.cpp:213:1: 附注: 备选是:
/media/modules/ts/include/opencv2/ts/ts_gtest.h:10511:40: 附注: template<class TestCase> testing::internal::ParameterizedTestCaseInfo<TestCase>* testing::internal::ParameterizedTestCaseRegistry::GetTestCasePatternHolder(const char*, const char*, int)
解决的办法:
Gtest框架的问题。
struct ocl_cvMoments : MomentsTestBase {};
TEST_P(ocl_cvMoments, Mat)
{
略。。。
}
解决办法,修改该类的名字或者该工程中函数的名字和TEST_P(oc_cvMoments,Mat)里面的第一个参数不一样,就会出现以下问题。