Ich versuche, eine Funktion / Methode für mein Projekt zu schreiben, die den Benutzer fragt, welche Testfälle Sie ausführen werden. Es sieht aus wie unten ...,
Test_Cases_1
|_TestNo1
|_TestNo2....so on
Test_Cases_2
|_TestNo1
|_TestNo2....so on
....
....so on
Test_Cases_N
|_TestNo1
|_TestNo2....so on
Die Herausforderung besteht nun darin, dass ich beim Ausführen des Projekts gefragt werde, welche Testfälle Sie ausführen möchten. Wenn ich Test_Cases_1
und wähle Test_Cases_N
. Dann sollte es diese beiden Testfälle ausführen und alle anderen ausschließen Test_Cases_2 to ....
. Im Ergebnisfenster möchte ich auch die Ergebnisse von Test_Cases_1
und sehen Test_Cases_N
.
Wenn ich also den GoogleTest sehe, gibt es eine Methode namens test_case_to_run_count()
; Aber alle test cases
werden mit der Test_F () -Methode registriert. Also habe ich viele Analysen durchgeführt, aber immer noch keine Lösung gefunden. Bitte hilf mir.
quelle
Tree
vonTestCases
und hatTestNo
. Glaubst du, es--gtest_filter=..
wird helfen?int main(int argc, char **argv) { //::testing::GTEST_FLAG(list_tests) = true; // For Testing InitGoogleTest(&argc, argv); ::testing::GTEST_FLAG(list_tests) = true; ........ RUN_ALL_TEST();...}
Es werden jedoch nur der Testfall und TestNo gedruckt. und aber es führt die Tests nicht aus. Wie kann ich die Tests jetzt ausführen?Fassen Sie die Antworten von @Rasmi Ranjan Nayak und @nogard zusammen und fügen Sie eine weitere Option hinzu:
Auf der Konsole
Sie sollten die Flagge verwenden
--gtest_filter
, wie(Sie können dies auch unter Eigenschaften | Konfigurationseigenschaften | Debugging | Befehlsargumente tun.)
Auf die Umwelt
Sie sollten die Variable
GTEST_FILTER
wie folgt einstellenAuf dem Code
Sie sollten eine Flagge setzen
filter
, wieso dass Ihre Hauptfunktion so etwas wie wird
Weitere Informationen zur Syntax der Zeichenfolge, die Sie verwenden können, finden Sie im Abschnitt Ausführen einer Teilmenge der Tests .
quelle
Schließlich bekam ich eine Antwort:
::test::GTEST_FLAG(list_tests) = true;
// Von Ihrem Programm, nicht von der Konsole.Wenn Sie
--gtest_filter =*;
/* =*, =xyz*... etc*/
// verwenden möchten, müssen Sie sie in der Konsole verwenden.Meine Anforderung ist es also, sie über das Programm und nicht über die Konsole zu verwenden.
Updated:-
Endlich habe ich die Antwort für die Aktualisierung des Programms erhalten.
Also, danke für alle Antworten.
Ihr Leute seid großartig.
quelle