我在exe
中有这样的代码int main(int argc, char** argv){
if(argc>1)
{
//do something
}
else
{
StartGoogleTest(argc ,argv);
}
}
StartGoogleTest
位于共享库中。我必须通过命令行参数来启动或初始化谷歌测试框架。
以下是StartGoodleTest.cpp
:
TEST(SomeClass, myTest)
{
//some code
}
StartGoodleTest(int &argc, char** &argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
此代码在InitGoogleTest
崩溃。有没有办法初始化谷歌测试没有命令行参数或任何其他方式来初始化谷歌测试没有主?
答案 0 :(得分:1)
您的int StartGoogleTest(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
功能是问题,请按以下方式更改:
StartGoogleTest
对于没有main的初始化,答案是否定的。您可以将函数StartGoogleTest
放在共享库中,但在某些时候您必须创建一个带有main函数的可执行文件,该函数必须与该库链接并调用</table><table align="left" width="288" height="329" border="0" cellpadding="0" cellspacing="0">
(在main或在一些子例程中)初始化googletest并运行测试用例。