golang读取ini配置文件

配置文件内容:
[icp]
url=0.0.0.0:00
username=username
password=password
单元测试:
package tools

import "testing"

/*
 *  @author: SongJXin
 *  @author: 2018/10/10
 *  @description:
 */
func TestGetConfig_url(t *testing.T) {
    url,err := GetConfig("url")
    if err != nil{
        t.Error("get url err: \n" + err.Error())
        return
    }
    t.Log("url is " + url)
}
func TestGetConfig_username(t *testing.T) {
    username,err := GetConfig("username")
    if err != nil {
        t.Error("get username err: " + err.Error())
        return
    }
    t.Log("username is " + username)
}
func TestGetConfig_password(t *testing.T) {
    password,err := GetConfig("password")
    if err != nil {
        t.Error("get password err:" + err.Error())
        return
    }
    t.Log("password is " + password)
}
func TestGetConfig_none(t *testing.T) {
    data,err := GetConfig("aaa")
    if err != nil || data != "" {
        t.Error("aaa data is " + data)
        return
    }
    t.Log("can't read aaa")
}
实现代码:
package tools

import (
    "github.com/Unknwon/goconfig"
    "errors"
    "os"
)

/*
 *  @author: SongJXin
 *  @author: 2018/10/10
 *  @description:
 */
func GetConfig(name string) (string,error)  {
    // 载入配置文件 通过绝对路径的方式获取。使main和单元测试都能正确运行
    cfg, err := goconfig.LoadConfigFile(os.Getenv("GOPATH")+"\\src\\IcpUser\\config.ini")
    if err != nil {
        return "",errors.New("load config file err: \n" + err.Error())
    }
    // 获取某个值 第一个参数为哪个部分,第二个参数为要获取的属性的名称
    value,err := cfg.GetValue("icp",name)

    return value,nil
}
目录结构如下:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值