mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-24 01:40:02 +08:00
feat: specify output directory
This commit is contained in:
@@ -26,10 +26,20 @@ type HAR struct {
|
||||
path string
|
||||
filterStr string
|
||||
excludeStr string
|
||||
outputDir string
|
||||
}
|
||||
|
||||
func (h *HAR) SetOutputDir(dir string) {
|
||||
h.outputDir = dir
|
||||
}
|
||||
|
||||
func (h *HAR) GenJSON() (jsonPath string, err error) {
|
||||
jsonPath = getFilenameWithoutExtension(h.path) + ".json"
|
||||
jsonFile := getFilenameWithoutExtension(h.path) + ".json"
|
||||
if h.outputDir != "" {
|
||||
jsonPath = filepath.Join(h.outputDir, jsonFile)
|
||||
} else {
|
||||
jsonPath = filepath.Join(filepath.Dir(h.path), jsonFile)
|
||||
}
|
||||
|
||||
tCase, err := h.makeTestCase()
|
||||
if err != nil {
|
||||
@@ -40,7 +50,12 @@ func (h *HAR) GenJSON() (jsonPath string, err error) {
|
||||
}
|
||||
|
||||
func (h *HAR) GenYAML() (yamlPath string, err error) {
|
||||
yamlPath = getFilenameWithoutExtension(h.path) + ".yaml"
|
||||
yamlFile := getFilenameWithoutExtension(h.path) + ".yaml"
|
||||
if h.outputDir != "" {
|
||||
yamlPath = filepath.Join(h.outputDir, yamlFile)
|
||||
} else {
|
||||
yamlPath = filepath.Join(filepath.Dir(h.path), yamlFile)
|
||||
}
|
||||
|
||||
tCase, err := h.makeTestCase()
|
||||
if err != nil {
|
||||
@@ -292,6 +307,7 @@ func (s *TStep) makeValidate(entry *Entry) error {
|
||||
}
|
||||
|
||||
func getFilenameWithoutExtension(path string) string {
|
||||
ext := filepath.Ext(path)
|
||||
return path[0 : len(path)-len(ext)]
|
||||
base := filepath.Base(path)
|
||||
ext := filepath.Ext(base)
|
||||
return base[0 : len(base)-len(ext)]
|
||||
}
|
||||
|
||||
@@ -2,23 +2,15 @@ package har2case
|
||||
|
||||
import (
|
||||
"log"
|
||||
"os"
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
)
|
||||
|
||||
var harPath string
|
||||
|
||||
func TestMain(m *testing.M) {
|
||||
harPath = "../examples/har/demo.har"
|
||||
|
||||
// run all tests
|
||||
code := m.Run()
|
||||
defer os.Exit(code)
|
||||
|
||||
// teardown
|
||||
}
|
||||
var (
|
||||
harPath = "../examples/har/demo.har"
|
||||
harPath2 = "../examples/har/postman-echo.har"
|
||||
)
|
||||
|
||||
func TestGenJSON(t *testing.T) {
|
||||
jsonPath, err := NewHAR(harPath).GenJSON()
|
||||
@@ -31,6 +23,17 @@ func TestGenJSON(t *testing.T) {
|
||||
}
|
||||
}
|
||||
|
||||
func TestGenYAML(t *testing.T) {
|
||||
yamlPath, err := NewHAR(harPath2).GenYAML()
|
||||
log.Printf("yamlPath: %v, err: %v", yamlPath, err)
|
||||
if !assert.NoError(t, err) {
|
||||
t.Fail()
|
||||
}
|
||||
if !assert.NotEmpty(t, yamlPath) {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestLoadHAR(t *testing.T) {
|
||||
har := NewHAR(harPath)
|
||||
h, err := har.load()
|
||||
@@ -108,3 +111,10 @@ func TestMakeTestCase(t *testing.T) {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
func TestGetFilenameWithoutExtension(t *testing.T) {
|
||||
filename := getFilenameWithoutExtension("examples/har/postman-echo.har")
|
||||
if !assert.Equal(t, "postman-echo", filename) {
|
||||
t.Fail()
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user