我的项目结构看起来很像这样:
project/
api/
api.go
config/
config.go
config.toml
tests/
api_test.go
main.go
因此,每当我初始化配置包时,我都试图使用相对路径读取配置文件:config/config.toml
。
一旦我运行我的程序,这个工作正常:go run main.go
当我尝试运行测试时出现问题:go test project/tests
。我的配置包找不到文件config/config.toml
,因为当前的工作目录不是project/
,而是project/tests/
。
是否有方便的途径从run
和test
访问配置文件?
答案 0 :(得分:-1)
最后,我已经完成了更改配置文件加载方式的行为。之前,加载是在config
方法中填充的init()
。
而不是我创建的方法Load(path string)
,它根据传递的path
变量执行配置文件的加载。
现在,我从main.go
这样称呼它:
config.Load("config/")
来自api_test.go
就像这样:
config.Load("../config/")
这不是一个非常简洁的解决方案,但在这种情况下,用户在运行测试时不需要指定任何其他参数。