feat: loadFromYAML

This commit is contained in:
debugtalk
2021-10-09 20:12:50 +08:00
parent a09320edd1
commit 5c555a389c
2 changed files with 38 additions and 2 deletions

View File

@@ -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
}

View File

@@ -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()
}
}