Go:如何在測試中使用特定工作目錄
在Go 中編寫單元測試時,確保測試具有以下功能至關重要:存取必要的設定檔。 “go test”的預設行為假定工作目錄是專案根目錄。但在某些場景下,由於測試程式碼位於專案內的不同目錄,您可能會遇到查找檔案的問題。
解決方案:設定測試的工作目錄
要為測試指定特定的工作目錄,您可以使用以下方法:
package main import ( "log" "os" "testing" ) func TestMain(m *testing.M) { // Change the working directory to the test directory. pwd, err := os.Getwd() if err != nil { log.Fatalf("os.Getwd() failed: %v", err) } testDir := pwd + "/test_directory" if err := os.Chdir(testDir); err != nil { log.Fatalf("os.Chdir() failed: %v", err) } // Run the tests. os.Exit(m.Run()) }
package sample import ( "testing" "runtime" "fmt" ) func TestGetFilename(t *testing.T) { _, filename, _, _ := runtime.Caller(0) testDir := filepath.Dir(filename) if err := os.Chdir(testDir); err != nil { t.Fatalf("os.Chdir() failed: %v", err) } // Run the rest of the test. }
透過實作其中一種方法,您可以確保您的測試可以存取必要的設定文件,從而使它們能夠成功執行。
以上是如何指定Go測試的工作目錄?的詳細內容。更多資訊請關注PHP中文網其他相關文章!