2016-01-12 2 views
1

У меня есть код, как это в ехеКак инициализировать тест Google без основного?

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 без аргументов командной строки или любым другим способом инициализировать тест Google без основного?

+0

Проблема (сбой), по-видимому, не отображается в коде. –

+0

ok, но есть ли способ запустить тест Google без основного и без отправки аргументов командной строки. – ganesh

+0

Проблема в том, что вы вызываете StartGoogleTest и имеете функцию StartGoodleTest? – LawfulEvil

ответ

1

Ваша StartGoogleTest функции является проблемой, изменить его так:

int StartGoogleTest(int argc, char** argv) 
{ 
    testing::InitGoogleTest(&argc, argv); 

    return RUN_ALL_TESTS(); 
} 

Что касается инициализации без основных идет, ответ нет. Вы можете поместить функцию StartGoogleTest в общую библиотеку, но в какой-то момент вам нужно будет создать исполняемый файл с основной функцией, которая должна будет связываться с этой библиотекой и вызвать StartGoogleTest (либо в основной, либо в какой-либо подпрограмме) для инициализации googletest и запустить тестовые примеры.

+0

мы можем инициировать тестирование без аргументов командной строки, мы можем просто поддерживать argc и argv local и инициализировать argv и argc локально, он отлично работает – ganesh

+0

@ganesh Да, вы можете исключить передачу реальных аргументов командной строки, которые main получает и использует локальные. Однако я бы не стал предлагать вам это, потому что вы теряете большую гибкость (например, вы не можете указать фильтр для тестов). –