Jak uruchomić konkretne przypadki testowe w GoogleTest
Próbuję napisać funkcję / metodę dla mojego projektu, która zapyta użytkownika, które wszystkie przypadki testowe zamierzasz uruchomić? Wygląda jak poniżej...,
Test_Cases_1
|_TestNo1
|_TestNo2....so on
Test_Cases_2
|_TestNo1
|_TestNo2....so on
....
....so on
Test_Cases_N
|_TestNo1
|_TestNo2....so on
Więc teraz wyzwanie polega na tym, że podczas uruchamiania projektu powinno mnie zapytać, jakie wszystkie przypadki testowe chciałbyś wykonać?
Jeśli wybieram Test_Cases_1
i Test_Cases_N
. Następnie powinien wykonać te dwa przypadki testowe i powinien wykluczyć wszystkie inne z Test_Cases_2 to ....
. W oknie wyników również chciałbym zobaczyć wyniki Test_Cases_1
i Test_Cases_N
.
Więc jeśli zobaczy GoogleTest, istnieje metoda o nazwie test_case_to_run_count()
;
Ale wszystkie test cases
są rejestrowane za pomocą metody Test_F ().
Zrobiłem więc wiele analiz, ale nadal nie znalazłem żadnego rozwiązania.
Proszę, pomóż mi.
3 answers
Możesz użyć opcji zaawansowanych do uruchomienia testów Google.
Aby uruchomić tylko niektóre testy jednostkowe, możesz użyć opcji linii poleceń --gtest_filter=Test_Cases1*
z wartością, która jest wyrażeniem regularnym. Myślę, że to rozwiąże twój problem.
Upd:
Pytanie brzmiało, jak uruchomić konkretne testy. Integracja gtest z Twoim GUI to kolejna rzecz, której tak naprawdę nie mogę skomentować, ponieważ nie podałeś szczegółów swojego podejścia. Jednak uważam, że następujące podejście może być dobry początek:- Uzyskaj wszystkie testy, uruchamiając testy z
--gtest_list_tests
- przetworzyć te dane do GUI
- Wybierz przypadki testowe, które chcesz uruchomić
- Uruchom test wykonywalny z opcją
--gtest_filter
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-28 04:18:40
Podsumowanie @Rasmi Ranjan Nayak i @ noyak odpowiedzi i dodanie innej opcji:
Na konsoli
Powinieneś użyć flagi --gtest_filter
, Jak
--gtest_filter=Test_Cases1*
(można to również zrobić w Properties / Configuration Properties|Debugging|Command Arguments)
O środowisku
Należy ustawić zmienną GTEST_FILTER
Jak
export GTEST_FILTER = "Test_Cases1*"
Na kod
Należy ustawić flagę filter
, Jak
::testing::GTEST_FLAG(filter) = "Test_Cases1*";
Tak, że Twoja główna funkcja staje się czymś jak
int main(int argc, char **argv) {
::testing::InitGoogleTest(&argc, argv);
::testing::GTEST_FLAG(filter) = "Test_Cases1*";
return RUN_ALL_TESTS();
}
Zobacz sekcję uruchamianie podzbioru testów aby uzyskać więcej informacji na temat składni ciągu znaków, którego możesz użyć.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-06-29 18:23:12
Wreszcie dostałem jakąś odpowiedź,
::test::GTEST_FLAG(list_tests) = true;
//z twojego programu, a nie konsoli w.r.T.
Jeśli chcesz użyć --gtest_filter =*;
/* =*, =xyz*... etc*/
// musisz ich używać w konsoli.
Więc moim wymogiem jest używanie ich z programu, a nie z konsoli.
Updated:-
W końcu dostałem odpowiedź na aktualizację tego samego z programu.
::testing::GTEST_FLAG(filter) = "*Counter*:*IsPrime*:*ListenersTest.DoesNotLeak*";//":-:*Counter*";
InitGoogleTest(&argc, argv);
RUN_ALL_TEST();
Dzięki za wszystkie odpowiedzi.
Jesteście wspaniali.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-08-24 06:55:33