在測試 Go 時,跨包共享設置和拆卸方法是一個常見的問題。php小編魚仔將為您解答這個問題。在Go語言中,可以使用`flag`包來設置和獲取命令行參數。通過在測試文件中使用`flag.Parse()`函數,可以將命令行參數解析并設置到對應的變量中。對于需要共享設置的測試場景,可以在測試文件中設置全局變量,并在各個測試函數中使用。當測試結束后,可以在`TestMain`函數中進行拆卸操作,恢復原來的設置狀態。這樣就可以實現跨包共享設置和拆卸的方法。
問題內容
假設我有兩個軟件包 foo
和 bar
。每個包都有一個文件和一個測試文件:
foo ---widget.go ---widget_test.go bar ---wingding.go ---wingding_test.go
登錄后復制
現在對于這兩個測試(widget_test.go 和 wingding_test.go),我想分享一些設置代碼。我知道我可以將此代碼放入 main_test.go 內的每個包中。但我顯然不想在兩個地方復制/粘貼代碼。那么我可以把這段代碼放在哪里以便在包之間共享呢?
解決方法
將其放入 foo
和 bar
在測試中導入的另一個包 baz
中。我們在測試中將其用于數據庫設置和拆卸代碼。