如何在没有 main 的情况下初始化 google 测试?
How to initialize google test without main?
我在 exe 中有这样的代码
int main(int argc, char** argv){
if(argc>1)
{
//do something
}
else
{
StartGoogleTest(argc ,argv);
}
}
StartGoogleTest
在共享库中。我必须传递命令行参数来启动或初始化 google 测试框架。
以下是StartGoodleTest.cpp
:
TEST(SomeClass, myTest)
{
//some code
}
StartGoodleTest(int &argc, char** &argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
此代码在 InitGoogleTest
崩溃。有没有什么方法可以在没有命令行参数的情况下初始化 google 测试,或者有什么其他方法可以在没有 main 的情况下初始化 google 测试?
你的StartGoogleTest
函数有问题,改成这样:
int StartGoogleTest(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
就没有 main 的初始化而言,答案是否定的。您可以将函数 StartGoogleTest
放在共享库中,但在某些时候您将必须创建一个带有主函数的可执行文件,该函数必须 link 使用该库并调用 StartGoogleTest
(在主要或某些 sub-routine) 中初始化 googletest 和 运行 测试用例。
我在 exe 中有这样的代码
int main(int argc, char** argv){
if(argc>1)
{
//do something
}
else
{
StartGoogleTest(argc ,argv);
}
}
StartGoogleTest
在共享库中。我必须传递命令行参数来启动或初始化 google 测试框架。
以下是StartGoodleTest.cpp
:
TEST(SomeClass, myTest)
{
//some code
}
StartGoodleTest(int &argc, char** &argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
此代码在 InitGoogleTest
崩溃。有没有什么方法可以在没有命令行参数的情况下初始化 google 测试,或者有什么其他方法可以在没有 main 的情况下初始化 google 测试?
你的StartGoogleTest
函数有问题,改成这样:
int StartGoogleTest(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
就没有 main 的初始化而言,答案是否定的。您可以将函数 StartGoogleTest
放在共享库中,但在某些时候您将必须创建一个带有主函数的可执行文件,该函数必须 link 使用该库并调用 StartGoogleTest
(在主要或某些 sub-routine) 中初始化 googletest 和 运行 测试用例。