1. 程式人生 > 其它 >go test: flag provided but not defined: -test.timeout

go test: flag provided but not defined: -test.timeout

在為某個專案添加了通過命令列獲取指定配置的模組後,在一些模組內部跑test發生瞭如下錯誤:

flag provided but not defined: -test.timeout

很顯然,跑go test時涉及到了flag解析。

go test是以package為單位進行測試的(無論是否通過-run指定特性test函式),所以一定是test所在的包內包含了flag解析邏輯或import了需要進行flag解析的其他package.

本專案配置中新增了log工具的相關自定義配置,而由於主要功能實現了無錯誤返回的介面,所以只能在介面函式內呼叫log工具列印日誌。無理想解,考慮其他解耦方式。

1. 先不使用flag模組,即註釋相關的內容。 --工作量大,大型專案不合適

2. 單獨起一個test資料夾,裡邊只放test相關的模組,並去除掉引用了flag的模組,如需使用此類模組,可以把把其中需要用的物件也拷貝一份。 --也較繁瑣,但更可行

3. 最後編寫config相關模組,在這之前做好測試工作。

最後通過單起一個test資料夾把要測試的程式碼及其相關依賴邏輯拷貝到目錄中略微修改下即可跑通test。

不知道使用cobra等第三方的命令列開源庫會不會也遇到此類問題。等待實踐補充......

想建一個數據庫技術和程式設計技術的交流群,用於磨鍊提升技術能力,目前主要專注於Golang和Python以及TiDB,MySQL資料庫,群號:231338927,建群日期:2019.04.26,截止2021.02.01人數:300人 ... 如發現部落格錯誤,可直接留言指正,感謝。