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