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中文网其他相关文章!