2017-03-21 1 views
0

Comment désactiver un cas de test complet dans gtest? (tous les tests dans un test, non seulement des tests individuels)Désactiver l'ensemble du test élémentaire dans gtest

La mise en forme proposée dans le document de gtest est d'organiser les tests de la façon suivante:

class1test.cpp:

Test(Class1Test, TestA) 
{ 
    ... 
} 

Test(Class1Test, TestB) 
{ 
    ... 
} 

... 

class2test.cpp:

Test(Class2Test, TestA) 
{ 
    ... 
} 

Test(Class2Test, TestB) 
{ 
    ... 
} 

.... 

class3test.cpp

et ainsi de suite ...

Je sais que l'ajout du préfixe DISABLED_ à un test empêchera de courir (ex: Test(Class1Test, DISABLED_TestB))

Mais si je veux désactiver tous les tests dans le cas de test Class1Test?

Cet article GoogleTest: How to skip a test? suggère d'utiliser des filtres gtest, mais cela semble une solution compliquée pour ce que je veux faire. Les filtres gtest sont en effet la seule solution, où dois-je écrire un filtre qui désactive un cas de test?

+0

Supprimer probablement 'class1test.cpp' de Makefile? – ks1322

+0

Cela fonctionnerait certainement, mais le makefile prend * .cpp. Et je préfère plutôt une solution qui n'affecte pas le fichier makefile, si possible –

+0

Vous pouvez trouver tout ce qu'il faut savoir sur ce sujet par en lisant la documentation: [Exécution des programmes de test: Options avancées] (https: // github .com/google/googletest/blob/maître/googletest/docs/AdvancedGuide.md # running-test-programs-advanced-options) –

Répondre

1

Les tests en cours avec --gtest_filter=-Class1Test.* doivent ignorer tous les tests dans le cas de test Class1Test. Cela ne semble pas très compliqué.

0
  1. Vous pouvez écrire dans la fonction principale:

    testing::GTEST_FLAG(filter) = "-Class1Test.*"; 
    

    avant

    RUN_ALL_TESTS(); 
    
  2. Si vous avez fait vos tests dans Microsoft Visual Studio, vous pouvez le faire: propriétés ouvertes des votre TestProject et définir la ligne

    --gtest_filter = -Class1 Test. *

dans les propriétés de configuration/Débogage/commande Arguments

  1. Vous pouvez commenter votre code en utilisant ce

    /* your tests */

ou ce

#ifdef _0 
     your tests 
    #endif