2017-03-21 14 views
0

如何禁用gtest中的完整測試用例? (所有的測試用例的測試,而不只是個別測試)在gtest中禁用整個測試用例

在GTEST DOC提出的格式是組織以下列方式測試:

class1test.cpp:

Test(Class1Test, TestA) 
{ 
    ... 
} 

Test(Class1Test, TestB) 
{ 
    ... 
} 

... 

class2test.cpp:

Test(Class2Test, TestA) 
{ 
    ... 
} 

Test(Class2Test, TestB) 
{ 
    ... 
} 

.... 

class3test.cpp

等等...

我知道,添加前綴DISABLED_的測試將阻止其運行(例如:Test(Class1Test, DISABLED_TestB)

但是,如果我想禁用什麼測試用例Class1Test中的所有測試?

此帖子GoogleTest: How to skip a test?建議使用gtest過濾器,但這似乎是一個複雜的解決方案,我想要做什麼。 它gtest過濾器確實是唯一的解決方案,我應該在哪裏編寫一個禁用測試用例的過濾器?

+0

可能從Makefile中刪除'class1test.cpp'? – ks1322

+0

這肯定會起作用,但makefile需要* .cpp。如果可能的話,我寧願選擇一個不會影響makefile的解決方案 –

+0

閱讀文檔:[運行測試程序:高級選項](https:// github),您可以找到關於此主題的所有信息,請登錄 。COM /谷歌/ googletest/BLOB /主/ googletest /文檔/ AdvancedGuide.md#磨合測試程序 - 高級選項) –

回答

1

運行測試--gtest_filter=-Class1Test.*應跳過Class1Test測試用例中的所有測試。這似乎並不複雜。

0
  1. 您可以在主函數中這樣寫:

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

    RUN_ALL_TESTS(); 
    
  2. 如果您在Microsoft Visual Studio做你的測試,你可以這樣做:的 開放性您的TestProject並設置行

    --gtest_filter = -Class1測試*

在配置屬性/調試/命令參數

  • 您可以使用此

    /* your tests */

  • 註釋你的代碼

    或此

    #ifdef _0 
         your tests 
        #endif 
    
    相關問題