J'essaie d'écrire une fonction / méthode pour mon projet, qui demandera à l'utilisateur quels cas de test allez-vous exécuter? On dirait ci-dessous ...,
Test_Cases_1
|_TestNo1
|_TestNo2....so on
Test_Cases_2
|_TestNo1
|_TestNo2....so on
....
....so on
Test_Cases_N
|_TestNo1
|_TestNo2....so on
Donc, maintenant, le défi est lors de l'exécution du projet, il devrait me demander quels sont tous les cas de test que vous souhaitez exécuter? Si je sélectionne Test_Cases_1
et Test_Cases_N
. Ensuite, il doit exécuter ces deux cas de test et exclure tous les autres de Test_Cases_2 to ....
. Dans la fenêtre de résultats aussi, je voudrais voir les résultats de Test_Cases_1
et Test_Cases_N
.
Donc, si je vois le GoogleTest, il existe une méthode appelée test_case_to_run_count()
; Mais tous test cases
sont enregistrés avec la méthode Test_F (). J'ai donc fait beaucoup d'analyses, mais je n'ai toujours pas trouvé de solution. Aidez-moi, s'il vous plaît.
la source
Tree
ofTestCases
etTestNo
. Alors, pensez-vous que--gtest_filter=..
cela aidera?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();...}
Mais il n'imprime que le Testcase et le TestNo. et mais il n'exécute pas les tests. Alors, comment puis-je exécuter les tests maintenant?Résumer les réponses @Rasmi Ranjan Nayak et @nogard et ajouter une autre option:
Sur la console
Vous devriez utiliser le drapeau
--gtest_filter
, comme(Vous pouvez également le faire dans Propriétés | Propriétés de configuration | Débogage | Arguments de commande)
Sur l'environnement
Vous devez définir la variable
GTEST_FILTER
commeSur le code
Vous devriez définir un drapeau
filter
, commede sorte que votre fonction principale devienne quelque chose comme
Voir la section Exécution d'un sous-ensemble des tests pour plus d'informations sur la syntaxe de la chaîne que vous pouvez utiliser.
la source
Enfin, j'ai une réponse,
::test::GTEST_FLAG(list_tests) = true;
// De votre programme, pas de la console Wrt.Si vous souhaitez utiliser
--gtest_filter =*;
/* =*, =xyz*... etc*/
// Vous devez les utiliser dans la console.Donc, mon exigence est de les utiliser à partir du programme et non de la console.
Updated:-
Enfin, j'ai eu la réponse pour mettre à jour la même chose dans le programme.
Alors, merci pour toutes les réponses.
Vous êtes formidables.
la source