0
我在我的項目中有節儉生成的代碼?我如何阻止這影響我的覆蓋率統計信息?他們很沮喪。如何從覆蓋率統計中排除生成的代碼
我在我的項目中有節儉生成的代碼?我如何阻止這影響我的覆蓋率統計信息?他們很沮喪。如何從覆蓋率統計中排除生成的代碼
從go test
這幫助消息似乎表明您可以過濾你正在測試的包:
-coverpkg pkg1,pkg2,pkg3
Apply coverage analysis in each test to the given list of packages.
The default is for each test to analyze only the package being tested.
Packages are specified as import paths.
Sets -cover.
另一種簡單的選擇,這是我做的,是導入生成的代碼作爲一個庫包它位於代碼樹之外,因此封面工具會在其統計信息中忽略它。
例如如果您的應用程序爲github.com/Fuser97381/myproj
,請將生成的代碼放入github.com/Fuser97381/protocols
。然後,您的代碼如下所示:
package main
import (
"github.com/Fuser97381/protocols/myproto"
"git.apache.org/thrift.git/lib/go/thrift"
)
...
適用於包,但不適用於同一項目中生成的代碼。我喜歡你的頭像,夥計! – Fuser97381
@ Fuser97381你不能把生成的代碼放在別的地方嗎?我所做的很簡單:我把生成的代碼放在一個單獨的項目中,其中只包含節儉的gen元素(這也有助於通過生成構建作業),並通過go get導入。然後,我的應用程序的覆蓋範圍不包括此庫的指標。夥計們居住! –
@ Fuser97381我假設「選擇」是因爲我的評論?如果是這樣,我會修改我的答案,爲後代更詳細地描述這種模式。 –