From 5c555a389cdf446e4cef634048500c78966fa085 Mon Sep 17 00:00:00 2001 From: debugtalk Date: Sat, 9 Oct 2021 20:12:50 +0800 Subject: [PATCH] feat: loadFromYAML --- convert.go | 19 +++++++++++++++++++ convert_test.go | 21 +++++++++++++++++++-- 2 files changed, 38 insertions(+), 2 deletions(-) diff --git a/convert.go b/convert.go index 5d579043..add6e415 100644 --- a/convert.go +++ b/convert.go @@ -83,3 +83,22 @@ func loadFromJSON(path string) (*TCase, error) { err = json.Unmarshal(file, tc) return tc, err } + +func loadFromYAML(path string) (*TCase, error) { + path, err := filepath.Abs(path) + if err != nil { + log.Printf("convert absolute path error: %v, path: %v", err, path) + return nil, err + } + log.Printf("load testcase from yaml path: %s", path) + + file, err := ioutil.ReadFile(path) + if err != nil { + log.Printf("dump yaml path error: %v", err) + return nil, err + } + + tc := &TCase{} + err = yaml.Unmarshal(file, tc) + return tc, err +} diff --git a/convert_test.go b/convert_test.go index a538c1cb..88622cbe 100644 --- a/convert_test.go +++ b/convert_test.go @@ -73,9 +73,26 @@ func TestDumpAndLoadJSON(t *testing.T) { } } -func TestDump2YAML(t *testing.T) { - err := demoTestCase.dump2YAML("demo.yml") +func TestDumpAndLoadYAML(t *testing.T) { + yamlPath := "demo.yaml" + err := demoTestCase.dump2YAML(yamlPath) if !assert.NoError(t, err) { t.Fail() } + tc, err := loadFromYAML(yamlPath) + if !assert.NoError(t, err) { + t.Fail() + } + if !assert.Equal(t, tc.Config.Name, demoTestCase.Config.Name) { + t.Fail() + } + if !assert.Equal(t, tc.Config.BaseURL, demoTestCase.Config.BaseURL) { + t.Fail() + } + if !assert.Equal(t, tc.TestSteps[1].Name, demoTestCase.TestSteps[1].Name()) { + t.Fail() + } + if !assert.Equal(t, tc.TestSteps[1].Request, demoTestCase.TestSteps[1].ToStruct().Request) { + t.Fail() + } }