猿问

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

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


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?


芜湖不芜
浏览 213回答 1
1回答

holdtom

最后,我已经完成了更改配置文件加载方式的行为。之前,加载是在configpacked insideinit()方法中完成的。取而代之的是,我创建Load(path string)了根据传递的path变量执行配置文件加载的方法。现在,我这样称呼它main.go:config.Load("config/")从api_test.go这样开始:config.Load("../config/")这不是一个很好的解决方案,但在这种情况下,用户不需要在运行测试时指定任何额外的参数。
随时随地看视频慕课网APP

相关分类

Go
我要回答