gtest命令行測試案例


  使用gtest編寫的測試案例通常本身就是一個可執行文件,因此運行起來非常方便。同時,gtest也為我們提供了一系列的運行參數(環境變量、命令行參數或代碼里指定),使得我們可以對案例的執行進行一些有效的控制。

  我這里就直接將所有命令行參數總結和羅列一下。如果想要獲得詳細的命令行說明,直接運行你的案例,輸入命令行參數:/? 或 --help 或 -help

1. 測試案例集合

命令行參數

說明

--gtest_list_tests

使用這個參數時,將不會執行里面的測試案例,而是輸出一個案例的列表。

--gtest_filter

對執行的測試案例進行過濾,支持通配符

?    單個字符

*    任意字符

-    排除,如,-a 表示除了a

:    取或,如,a:b 表示a或b

比如下面的例子:

./foo_test 沒有指定過濾條件,運行所有案例
./foo_test --gtest_filter=* 使用通配符*,表示運行所有案例
./foo_test --gtest_filter=FooTest.* 運行所有“測試案例名稱(testcase_name)”為FooTest的案例
./foo_test --gtest_filter=*Null*:*Constructor* 運行所有“測試案例名稱(testcase_name)”或“測試名稱(test_name)”包含Null或Constructor的案例。
./foo_test --gtest_filter=-*DeathTest.* 運行所有非死亡測試案例。
./foo_test --gtest_filter=FooTest.*-FooTest.Bar 運行所有“測試案例名稱(testcase_name)”為FooTest的案例,但是除了FooTest.Bar這個案例

--gtest_also_run_disabled_tests

執行案例時,同時也執行被置為無效的測試案例。關於設置測試案例無效的方法為:

在測試案例名稱或測試名稱中添加DISABLED前綴,比如:

 

// Tests that Foo does Abc.
TEST(FooTest, DISABLED_DoesAbc) {  }

class DISABLED_BarTest : public testing::Test {  };

// Tests that Bar does Xyz.
TEST_F(DISABLED_BarTest, DoesXyz) {  }

 

--gtest_repeat=[COUNT]

設置案例重復運行次數,非常棒的功能!比如:

--gtest_repeat=1000      重復執行1000次,即使中途出現錯誤。
--gtest_repeat=-1          無限次數執行。。。。
--gtest_repeat=1000 --gtest_break_on_failure     重復執行1000次,並且在第一個錯誤發生時立即停止。這個功能對調試非常有用。
--gtest_repeat=1000 --gtest_filter=FooBar     重復執行1000次測試案例名稱為FooBar的案例。

 

2. 測試案例輸出

命令行參數

說明

--gtest_color=(yes|no|auto)

輸出命令行時是否使用一些五顏六色的顏色。默認是auto。

--gtest_print_time

輸出命令行時是否打印每個測試案例的執行時間。默認是不打印的。

--gtest_output=xml[:DIRECTORY_PATH\|:FILE_PATH]

將測試結果輸出到一個xml中。

1.--gtest_output=xml:    不指定輸出路徑時,默認為案例當前路徑。

2.--gtest_output=xml:d:\ 指定輸出到某個目錄 

3.--gtest_output=xml:d:\foo.xml 指定輸出到d:\foo.xml

如果不是指定了特定的文件路徑,gtest每次輸出的報告不會覆蓋,而會以數字后綴的方式創建。xml的輸出內容后面介紹吧。 

 

3. 對案例的異常處理

命令行參數

說明

--gtest_break_on_failure

調試模式下,當案例失敗時停止,方便調試

--gtest_throw_on_failure

當案例失敗時以C++異常的方式拋出

--gtest_catch_exceptions

是否捕捉異常。gtest默認是不捕捉異常的,因此假如你的測試案例拋了一個異常,很可能會彈出一個對話框,這非常的不友好,同時也阻礙了測試案例的運行。如果想不彈這個框,可以通過設置這個參數來實現。如將--gtest_catch_exceptions設置為一個非零的數。

注意:這個參數只在Windows下有效。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM