From 2e189ad0f9dee046e42bb5f04a7ec5e91ec0700e Mon Sep 17 00:00:00 2001 From: gedi Date: Tue, 22 Nov 2016 21:12:18 +0200 Subject: [PATCH] use Options in FlagSet --- cmd/godog/main.go | 8 ++++---- examples/api/version.feature | 2 +- flags.go | 24 ++++++++++++------------ godog.go | 2 +- run.go | 11 ++--------- 5 files changed, 20 insertions(+), 27 deletions(-) diff --git a/cmd/godog/main.go b/cmd/godog/main.go index f324ed0..32cefff 100644 --- a/cmd/godog/main.go +++ b/cmd/godog/main.go @@ -62,11 +62,11 @@ func buildAndRun() (int, error) { } func main() { - var vers, defs, sof, noclr bool - var tags, format, output string - var concurrency int + var vers bool + var output string - flagSet := godog.FlagSet(colors.Colored(os.Stdout), &format, &tags, &defs, &sof, &noclr, &concurrency) + opt := godog.Options{Output: colors.Colored(os.Stdout)} + flagSet := godog.FlagSet(&opt) flagSet.BoolVar(&vers, "version", false, "Show current version.") flagSet.StringVar(&output, "o", "", "Build and output test runner executable to given target path.") flagSet.StringVar(&output, "output", "", "Build and output test runner executable to given target path.") diff --git a/examples/api/version.feature b/examples/api/version.feature index 0ca7db7..e204af7 100644 --- a/examples/api/version.feature +++ b/examples/api/version.feature @@ -20,6 +20,6 @@ Feature: get version And the response should match json: """ { - "version": "v0.6.0" + "version": "v0.6.1" } """ diff --git a/flags.go b/flags.go index 3c2a93e..ed052c3 100644 --- a/flags.go +++ b/flags.go @@ -27,7 +27,7 @@ var descTagsOption = "Filter scenarios by tags. Expression can be:\n" + s(4) + "- " + colors.Yellow(`"@wip,@undone"`) + ": run wip or undone scenarios" // FlagSet allows to manage flags by external suite runner -func FlagSet(w io.Writer, format, tags *string, defs, sof, noclr *bool, cr *int) *flag.FlagSet { +func FlagSet(opt *Options) *flag.FlagSet { descFormatOption := "How to format tests output. Available formats:\n" // @TODO: sort by name for name, desc := range AvailableFormatters() { @@ -36,17 +36,17 @@ func FlagSet(w io.Writer, format, tags *string, defs, sof, noclr *bool, cr *int) descFormatOption = strings.TrimSpace(descFormatOption) set := flag.NewFlagSet("godog", flag.ExitOnError) - set.StringVar(format, "format", "pretty", descFormatOption) - set.StringVar(format, "f", "pretty", descFormatOption) - set.StringVar(tags, "tags", "", descTagsOption) - set.StringVar(tags, "t", "", descTagsOption) - set.IntVar(cr, "concurrency", 1, descConcurrencyOption) - set.IntVar(cr, "c", 1, descConcurrencyOption) - set.BoolVar(defs, "definitions", false, "Print all available step definitions.") - set.BoolVar(defs, "d", false, "Print all available step definitions.") - set.BoolVar(sof, "stop-on-failure", false, "Stop processing on first failed scenario.") - set.BoolVar(noclr, "no-colors", false, "Disable ansi colors.") - set.Usage = usage(set, w) + set.StringVar(&opt.Format, "format", "pretty", descFormatOption) + set.StringVar(&opt.Format, "f", "pretty", descFormatOption) + set.StringVar(&opt.Tags, "tags", "", descTagsOption) + set.StringVar(&opt.Tags, "t", "", descTagsOption) + set.IntVar(&opt.Concurrency, "concurrency", 1, descConcurrencyOption) + set.IntVar(&opt.Concurrency, "c", 1, descConcurrencyOption) + set.BoolVar(&opt.ShowStepDefinitions, "definitions", false, "Print all available step definitions.") + set.BoolVar(&opt.ShowStepDefinitions, "d", false, "Print all available step definitions.") + set.BoolVar(&opt.StopOnFailure, "stop-on-failure", false, "Stop processing on first failed scenario.") + set.BoolVar(&opt.NoColors, "no-colors", false, "Disable ansi colors.") + set.Usage = usage(set, opt.Output) return set } diff --git a/godog.go b/godog.go index a92b386..1d0d451 100644 --- a/godog.go +++ b/godog.go @@ -42,4 +42,4 @@ Godog was inspired by Behat and Cucumber the above description is taken from it' package godog // Version of package - based on Semantic Versioning 2.0.0 http://semver.org/ -const Version = "v0.6.0" +const Version = "v0.6.1" diff --git a/run.go b/run.go index 70dde36..e23fa01 100644 --- a/run.go +++ b/run.go @@ -139,15 +139,8 @@ func RunWithOptions(suite string, contextInitializer func(suite *Suite), opt Opt // the step definitions and event handlers. func Run(suite string, contextInitializer func(suite *Suite)) int { var opt Options - flagSet := FlagSet( - colors.Colored(os.Stdout), - &opt.Format, - &opt.Tags, - &opt.ShowStepDefinitions, - &opt.StopOnFailure, - &opt.NoColors, - &opt.Concurrency, - ) + opt.Output = colors.Colored(os.Stdout) + flagSet := FlagSet(&opt) err := flagSet.Parse(os.Args[1:]) fatal(err)