如何从Go中的子文件夹访问配置文件

时间:2015-09-02 14:02:06

标签: go path

我的项目结构看起来很像这样:

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/

是否有方便的途径从runtest访问配置文件?

1 个答案:

答案 0 :(得分:-1)

最后,我已经完成了更改配置文件加载方式的行为。之前,加载是在config方法中填充的init()

而不是我创建的方法Load(path string),它根据传递的path变量执行配置文件的加载。

现在,我从main.go这样称呼它:

config.Load("config/")   

来自api_test.go就像这样:

config.Load("../config/")

这不是一个非常简洁的解决方案,但在这种情况下,用户在运行测试时不需要指定任何其他参数。