@@ -43,36 +43,41 @@ type Run struct {
4343}
4444
4545func NewRun (
46- options options.RunOptions ,
4746 scenarios * scenarios.Scenarios ,
4847 trigger * api.Trigger ,
4948 settings envsettings.Settings ,
5049 metricsInstance * metrics.Metrics ,
5150 parentOutput * ui.Output ,
51+ opts ... options.RunOption ,
5252) (* Run , error ) {
53+ runOptions := options .DefaultRunOptions ()
54+ for _ , opt := range opts {
55+ opt (& runOptions )
56+ }
57+
5358 progressStats := & progress.Stats {}
5459 viewsInstance := views .New ()
5560
56- scenario := scenarios .GetScenario (options .Scenario )
61+ scenario := scenarios .GetScenario (runOptions .Scenario )
5762 if scenario == nil {
58- return nil , fmt .Errorf ("scenario not defined: %s" , options .Scenario )
63+ return nil , fmt .Errorf ("scenario not defined: %s" , runOptions .Scenario )
5964 }
6065
61- result := NewResult (options , viewsInstance , progressStats )
66+ result := NewResult (runOptions , viewsInstance , progressStats )
6267
6368 outputer := ui .NewOutput (
6469 parentOutput .Logger .With (log .ScenarioAttr (scenario .Name )),
6570 parentOutput .Printer ,
6671 parentOutput .Interactive ,
67- options .LogToFile (),
72+ runOptions .LogToFile (),
6873 )
6974
7075 scenarioLogger := NewScenarioLogger (outputer )
7176 result .LogFilePath = scenarioLogger .Open (
7277 LogFilePathOrDefault (settings .Log .FilePath , scenario .Name ),
7378 logutils .NewLogConfigFromSettings (settings ),
7479 scenario .Name ,
75- options .LogToFile (),
80+ runOptions .LogToFile (),
7681 )
7782
7883 progressRunner , err := newProgressRunner (result , outputer )
@@ -90,7 +95,7 @@ func NewRun(
9095 pusher := newMetricsPusher (settings , scenario .Name , metricsInstance )
9196
9297 return & Run {
93- options : options ,
98+ options : runOptions ,
9499 trigger : trigger ,
95100 metrics : metricsInstance ,
96101 views : viewsInstance ,
0 commit comments