當前位置: 首頁>>代碼示例>>Golang>>正文


Golang env.Parse函數代碼示例

本文整理匯總了Golang中github.com/caarlos0/env.Parse函數的典型用法代碼示例。如果您正苦於以下問題:Golang Parse函數的具體用法?Golang Parse怎麽用?Golang Parse使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了Parse函數的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。

示例1: TestParsesEnv

func TestParsesEnv(t *testing.T) {
	os.Setenv("somevar", "somevalue")
	os.Setenv("othervar", "true")
	os.Setenv("PORT", "8080")
	os.Setenv("STRINGS", "string1,string2,string3")
	os.Setenv("SEPSTRINGS", "string1:string2:string3")
	os.Setenv("NUMBERS", "1,2,3,4")
	os.Setenv("BOOLS", "t,TRUE,0,1")

	defer os.Setenv("somevar", "")
	defer os.Setenv("othervar", "")
	defer os.Setenv("PORT", "")
	defer os.Setenv("STRINGS", "")
	defer os.Setenv("SEPSTRINGS", "")
	defer os.Setenv("NUMBERS", "")
	defer os.Setenv("BOOLS", "")

	cfg := Config{}
	assert.NoError(t, env.Parse(&cfg))
	assert.Equal(t, "somevalue", cfg.Some)
	assert.Equal(t, true, cfg.Other)
	assert.Equal(t, 8080, cfg.Port)
	assert.Equal(t, []string{"string1", "string2", "string3"}, cfg.Strings)
	assert.Equal(t, []string{"string1", "string2", "string3"}, cfg.SepStrings)
	assert.Equal(t, []int{1, 2, 3, 4}, cfg.Numbers)
	assert.Equal(t, []bool{true, true, false, true}, cfg.Bools)
}
開發者ID:dselans,項目名稱:env,代碼行數:27,代碼來源:env_test.go

示例2: TestEmptyVars

func TestEmptyVars(t *testing.T) {
	cfg := Config{}
	assert.NoError(t, env.Parse(&cfg))
	assert.Equal(t, "", cfg.Some)
	assert.Equal(t, false, cfg.Other)
	assert.Equal(t, 0, cfg.Port)
}
開發者ID:dselans,項目名稱:env,代碼行數:7,代碼來源:env_test.go

示例3: TestInvalidBool

func TestInvalidBool(t *testing.T) {
	os.Setenv("othervar", "should-be-a-bool")
	defer os.Setenv("othervar", "")

	cfg := Config{}
	assert.Error(t, env.Parse(&cfg))
}
開發者ID:dselans,項目名稱:env,代碼行數:7,代碼來源:env_test.go

示例4: TestInvalidDuration

func TestInvalidDuration(t *testing.T) {
	os.Setenv("DURATION", "should-be-a-valid-duration")
	defer os.Setenv("DURATION", "")

	cfg := Config{}
	assert.Error(t, env.Parse(&cfg))
}
開發者ID:caarlos0,項目名稱:env,代碼行數:7,代碼來源:env_test.go

示例5: TestInvalidInt

func TestInvalidInt(t *testing.T) {
	os.Setenv("PORT", "should-be-an-int")
	defer os.Setenv("PORT", "")

	cfg := Config{}
	assert.Error(t, env.Parse(&cfg))
}
開發者ID:dselans,項目名稱:env,代碼行數:7,代碼來源:env_test.go

示例6: TestParseStructWithInvalidFieldKind

func TestParseStructWithInvalidFieldKind(t *testing.T) {
	type config struct {
		WontWork int64 `env:"BLAH"`
	}
	os.Setenv("BLAH", "10")
	cfg := config{}
	assert.Error(t, env.Parse(&cfg))
}
開發者ID:dselans,項目名稱:env,代碼行數:8,代碼來源:env_test.go

示例7: TestErrorRequiredNotSet

func TestErrorRequiredNotSet(t *testing.T) {
	type config struct {
		IsRequired string `env:"IS_REQUIRED,required"`
	}

	cfg := &config{}
	assert.Error(t, env.Parse(cfg))
}
開發者ID:caarlos0,項目名稱:env,代碼行數:8,代碼來源:env_test.go

示例8: main

func main() {
	cfg := config{}
	err := env.Parse(&cfg)
	if err != nil {
		fmt.Printf("%+v\n", err)
	}
	fmt.Printf("%+v\n", cfg)
}
開發者ID:caarlos0,項目名稱:env,代碼行數:8,代碼來源:first.go

示例9: TestErrorOptionNotRecognized

func TestErrorOptionNotRecognized(t *testing.T) {
	type config struct {
		Var string `env:"VAR,not_supported!"`
	}

	cfg := &config{}
	assert.Error(t, env.Parse(cfg))

}
開發者ID:caarlos0,項目名稱:env,代碼行數:9,代碼來源:env_test.go

示例10: main

func main() {
	var config config
	env.Parse(&config)
	log.Println(config)
	db := datastores.NewDBConnectionPool(config.DatabaseURL)
	defer db.Close()
	exec := server(config, db)
	exec.Run(":" + config.Port)
}
開發者ID:Xmio,項目名稱:intented,代碼行數:9,代碼來源:main.go

示例11: TestInvalidBoolsSlice

func TestInvalidBoolsSlice(t *testing.T) {
	type config struct {
		BadBools []bool `env:"BADBOOLS"`
	}

	os.Setenv("BADBOOLS", "t,f,TRUE,faaaalse")
	cfg := &config{}
	assert.Error(t, env.Parse(cfg))
}
開發者ID:dselans,項目名稱:env,代碼行數:9,代碼來源:env_test.go

示例12: TestUnsupportedSliceType

func TestUnsupportedSliceType(t *testing.T) {
	type config struct {
		WontWork []map[int]int `env:"WONTWORK"`
	}

	os.Setenv("WONTWORK", "1,2,3")
	defer os.Setenv("WONTWORK", "")

	cfg := &config{}
	assert.Error(t, env.Parse(cfg))
}
開發者ID:dselans,項目名稱:env,代碼行數:11,代碼來源:env_test.go

示例13: TestEmptyVars

func TestEmptyVars(t *testing.T) {
	cfg := Config{}
	assert.NoError(t, env.Parse(&cfg))
	assert.Equal(t, "", cfg.Some)
	assert.Equal(t, false, cfg.Other)
	assert.Equal(t, 0, cfg.Port)
	assert.Equal(t, 0, len(cfg.Strings))
	assert.Equal(t, 0, len(cfg.SepStrings))
	assert.Equal(t, 0, len(cfg.Numbers))
	assert.Equal(t, 0, len(cfg.Bools))
}
開發者ID:caarlos0,項目名稱:env,代碼行數:11,代碼來源:env_test.go

示例14: TestBadSeparator

func TestBadSeparator(t *testing.T) {
	type config struct {
		WontWork []int `env:"WONTWORK" envSeparator:":"`
	}

	cfg := &config{}
	os.Setenv("WONTWORK", "1,2,3,4")
	defer os.Setenv("WONTWORK", "")

	assert.Error(t, env.Parse(cfg))
}
開發者ID:dselans,項目名稱:env,代碼行數:11,代碼來源:env_test.go

示例15: TestNoErrorRequiredSet

func TestNoErrorRequiredSet(t *testing.T) {
	type config struct {
		IsRequired string `env:"IS_REQUIRED,required"`
	}

	cfg := &config{}

	os.Setenv("IS_REQUIRED", "val")
	defer os.Setenv("IS_REQUIRED", "")
	assert.NoError(t, env.Parse(cfg))
	assert.Equal(t, "val", cfg.IsRequired)
}
開發者ID:caarlos0,項目名稱:env,代碼行數:12,代碼來源:env_test.go


注:本文中的github.com/caarlos0/env.Parse函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。