mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-12 11:29:48 +08:00
feat: loadFromYAML
This commit is contained in:
19
convert.go
19
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
|
||||
}
|
||||
|
||||
@@ -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()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user