2017-03-17 183 views
1

我正在使用googletestgcovr這是產生一些奇怪的行爲。我有一個頭文件foo.hgcovr聲明有一些行不在測試範圍內。這些行是類的定義和移動構造函數:googletest移動構造函數覆蓋

File Lines Exec Cover Missing 
foo.h 42 40 95% 39,47 

其中線39:

class foo 

和第47行是:

foo(foo&&) = default; 

我曾嘗試顯式調用這個函數與std::move()測試機構,無濟於事。有沒有這個問題的解決方案,或者我堅持99%的覆蓋率報告?

我應該注意到,除了類定義和複製/移動語義(它們都被定義爲default)之外,在這個頭中沒有實現。所有功能機構都在foo.cpp

+0

你有沒有試過這樣的測試代碼:'Foo foo1; Foo foo2(std :: move(foo1));'? – PiotrNycz

+0

@PiotrNycz是的,我已經試過在測試用例中明確地調用它 –

回答

0

看起來,將這些行從覆蓋報告中刪除爲「未被覆蓋」的唯一方法是將其從標題中刪除。這並不影響任何事情,因爲他們只是將複製/移動/轉移設置爲default。在其他地方,這些實際實施或刪除的地方不會顯示在覆蓋報告中。