Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
由于根路径已更改,go测试失败_Go_Filepath - Fatal编程技术网

由于根路径已更改,go测试失败

由于根路径已更改,go测试失败,go,filepath,Go,Filepath,我正在运行go test-v$(go list./…| grep-v/vendor/)以运行除vendor之外的所有测试。 我的文件结构是 myRepo api user_test.go config key.json main.go 我在config文件夹下有key.json文件,用于维护所有api密钥。 我正在使用加载key.json文件。除了运行测试外,其他一切都正常工作。当我运行go测试时,根路径正在更改为myRepo/api,我得到的错误是无法通过“根路径

我正在运行
go test-v$(go list./…| grep-v/vendor/)
以运行除vendor之外的所有测试。 我的文件结构是

myRepo
  api
    user_test.go
  config
    key.json
  main.go
我在config文件夹下有key.json文件,用于维护所有api密钥。
我正在使用加载key.json文件。除了运行测试外,其他一切都正常工作。当我运行go测试时,根路径正在更改为myRepo/api,我得到的错误是无法通过“根路径”找到myRepo/api/config/key.json

您是指您的工作目录吗?如果您依赖于给它一个相对路径,那么使用
filepath.Abs没有任何好处。测试文件需要在被测试的包中,或者您需要通过绝对路径开始搜索。是的,根路径在我上面使用的术语中表示工作目录。是的,我正在将测试文件放入我要测试的包中。我已经找了三天了。我没有找到这个问题的答案,在这里问。希望有人能帮助我。请创建一个,我们可以看到确切的问题。如果您的配置数据在包中,那么它将用于测试(go工具忽略名称
testdata
是有原因的,因为它通常位于包本身中)。我用最少的代码创建了一个GitHub回购协议,以解决我所面临的问题。请帮助我,
config/
不在正在查找它的包中,因此您不能依赖相对路径来查找它。您需要将测试数据放在正在测试的包中,或者在没有相对路径的情况下查找数据。所谓“根路径”是指您的工作目录吗?如果您依赖于给它一个相对路径,那么使用
filepath.Abs没有任何好处。测试文件需要在被测试的包中,或者您需要通过绝对路径开始搜索。是的,根路径在我上面使用的术语中表示工作目录。是的,我正在将测试文件放入我要测试的包中。我已经找了三天了。我没有找到这个问题的答案,在这里问。希望有人能帮助我。请创建一个,我们可以看到确切的问题。如果您的配置数据在包中,那么它将用于测试(go工具忽略名称
testdata
是有原因的,因为它通常位于包本身中)。我用最少的代码创建了一个GitHub回购协议,以解决我所面临的问题。请帮助我,
config/
不在正在查找它的包中,因此您不能依赖相对路径来查找它。您需要将测试数据放在被测试的包中,或者在没有相对路径的情况下找到数据。