我在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
处崩溃。有没有什么方法可以在没有命令行参数的情况下初始化 google test,或者有什么其他方法可以在没有 main 的情况下初始化 google test?
最佳答案
您的 StartGoogleTest
函数有问题,将其更改为:
int StartGoogleTest(int argc, char** argv)
{
testing::InitGoogleTest(&argc, argv);
return RUN_ALL_TESTS();
}
就没有 main 的初始化而言,答案是否定的。您可以将函数 StartGoogleTest
放入共享库中,但有时您必须创建一个具有主函数的可执行文件,该函数必须与该库链接并调用 StartGoogleTest
(在主程序或某些子程序中)初始化 googletest 并运行测试用例。
关于c++ - 如何在没有 main 的情况下初始化 google 测试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34743599/