mirror of
https://github.com/httprunner/httprunner.git
synced 2026-05-30 21:09:36 +08:00
feat: support creating and calling custom functions with hashicorp/go-plugin
This commit is contained in:
18
runner.go
18
runner.go
@@ -155,6 +155,11 @@ func (r *caseRunner) reset() *caseRunner {
|
||||
}
|
||||
|
||||
func (r *caseRunner) run() error {
|
||||
defer func() {
|
||||
if r.parser.plugin != nil {
|
||||
r.parser.plugin.quit()
|
||||
}
|
||||
}()
|
||||
config := r.TestCase.Config
|
||||
if err := r.parseConfig(config); err != nil {
|
||||
return err
|
||||
@@ -497,6 +502,13 @@ func (r *caseRunner) runStepTestCase(step *TStep) (stepResult *stepData, err err
|
||||
|
||||
func (r *caseRunner) parseConfig(config IConfig) error {
|
||||
cfg := config.ToStruct()
|
||||
|
||||
// init plugin
|
||||
err := r.parser.initPlugin(cfg.Path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// parse config variables
|
||||
parsedVariables, err := r.parser.parseVariables(cfg.Variables)
|
||||
if err != nil {
|
||||
@@ -505,12 +517,6 @@ func (r *caseRunner) parseConfig(config IConfig) error {
|
||||
}
|
||||
cfg.Variables = parsedVariables
|
||||
|
||||
// load plugin variables and functions
|
||||
err = r.parser.initPlugin(cfg.Path)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
// parse config name
|
||||
parsedName, err := r.parser.parseString(cfg.Name, cfg.Variables)
|
||||
if err != nil {
|
||||
|
||||
Reference in New Issue
Block a user