Golang:使用自訂工作目錄進行單元測試
在Go 中編寫單元測試時,通常需要載入設定檔或其他資源來自特定目錄。預設情況下,Go 測試繼承呼叫它們的進程的工作目錄,該目錄可能與測試檔案所在的目錄不同。如果測試依賴目前工作目錄中不可用的文件,這可能會導致錯誤。
解決方案:
一種解決方案是在之前修改工作目錄運行測試。這可以使用 os.Chdir 函數將目前工作目錄變更到所需位置來完成。
這是一個範例:
<code class="go">import ( "os" "testing" ) func TestWithWorkingDirectory(t *testing.T) { os.Chdir("path/to/custom/working/directory") // Run tests here }</code>
另一種方法是使用 Caller 函數來取得目前測試原始檔的路徑。這可用於確定測試檔案的父目錄,這可能是設定檔所在的位置。
這是使用 Caller 的範例:
<code class="go">package sample import ( "testing" "runtime" "fmt" ) func TestGetFilename(t *testing.T) { _, filename, _, _ := runtime.Caller(0) parentDir := filepath.Dir(filepath.Dir(filename)) os.Chdir(parentDir) // Run tests here }</code>
請注意檔案路徑。 Dir函數用於取得測試檔案的父目錄。這假設設定檔位於父目錄中。如果不是這種情況,您可以修改程式碼以導航到相應的目錄。
以上是如何使用自訂工作目錄執行 Go 單元測試?的詳細內容。更多資訊請關注PHP中文網其他相關文章!