godog/internal/flags/flags.go
2020-07-07 21:13:25 +02:00

42 строки
1,8 КиБ
Go

package flags
import (
"github.com/spf13/pflag"
)
// BindRunCmdFlags is an internal func to bind run subcommand flags.
func BindRunCmdFlags(prefix string, flagSet *pflag.FlagSet, opts *Options) {
if opts.Concurrency == 0 {
opts.Concurrency = 1
}
if opts.Format == "" {
opts.Format = "pretty"
}
flagSet.BoolVar(&opts.NoColors, prefix+"no-colors", opts.NoColors, "disable ansi colors")
flagSet.IntVarP(&opts.Concurrency, prefix+"concurrency", "c", opts.Concurrency, "run the test suite with concurrency")
flagSet.StringVarP(&opts.Tags, prefix+"tags", "t", opts.Tags, `filter scenarios by tags, expression can be:
- "@wip": run all scenarios with wip tag
- "~@wip": exclude all scenarios with wip tag
- "@wip && ~@new": run wip scenarios, but exclude new
- "@wip,@undone": run wip or undone scenarios`)
flagSet.StringVarP(&opts.Format, prefix+"format", "f", opts.Format, `writes the formatted output to stdout
built-in formatters:
- progress: prints a character per step
- cucumber: produces cucumber JSON format output
- events: produces JSON event stream, based on spec: 0.1.0
- junit: prints junit compatible xml to stdout
- pretty: prints every feature with runtime statuses
`)
flagSet.BoolVarP(&opts.ShowStepDefinitions, prefix+"definitions", "d", opts.ShowStepDefinitions, "print all available step definitions")
flagSet.BoolVar(&opts.StopOnFailure, prefix+"stop-on-failure", opts.StopOnFailure, "stop processing on first failed scenario")
flagSet.BoolVar(&opts.Strict, prefix+"strict", opts.Strict, "fail suite when there are pending or undefined steps")
flagSet.Int64Var(&opts.Randomize, prefix+"random", opts.Randomize, `randomly shuffle the scenario execution order
--random
specify SEED to reproduce the shuffling from a previous run
--random=5738`)
flagSet.Lookup(prefix + "random").NoOptDefVal = "-1"
}