Skip to content

Commit

Permalink
added plugins/--plugin configuration/options support.
Browse files Browse the repository at this point in the history
  • Loading branch information
hauner committed Jan 28, 2015
1 parent a2d5b7b commit 497261a
Show file tree
Hide file tree
Showing 2 changed files with 51 additions and 1 deletion.
19 changes: 18 additions & 1 deletion src/groovy/grails/plugin/cucumber/RuntimeOptionsBuilder.groovy
Expand Up @@ -28,7 +28,9 @@ class RuntimeOptionsBuilder {

RuntimeOptions init (RuntimeOptions options, Map<String, Object> args) {
addTags (options)
clearDefaultPlugins (options)
addFormatter (options, args.format as String)
addPlugins (options, args.plugin as String)
addGluePaths (options)
addFeaturePaths (options)
addFilter (options, args.params as List<String> ?: [])
Expand Down Expand Up @@ -110,9 +112,12 @@ class RuntimeOptionsBuilder {
}
}

private void addFormatter (RuntimeOptions options, String format) {
private void clearDefaultPlugins (RuntimeOptions options) {
options.clearDefaultPlugins ()
}

// compatibility with 1.0.1 and earlier
private void addFormatter (RuntimeOptions options, String format) {
if (format) {
options.addPlugin (format)
}
Expand All @@ -123,6 +128,18 @@ class RuntimeOptionsBuilder {
}
}

// replaces formats/--format configuration
private void addPlugins (RuntimeOptions options, String plugin) {
if (plugin) {
options.addPlugin (plugin)
}
else {
configObject.cucumber.plugins.each {
options.addPlugin (it)
}
}
}

private void addTags (RuntimeOptions options) {
configObject.cucumber.tags.each {
options.filters.add (it)
Expand Down
33 changes: 33 additions & 0 deletions test/unit/grails/plugin/cucumber/RuntimeOptionsBuilderSpec.groovy
Expand Up @@ -331,4 +331,37 @@ class RuntimeOptionsBuilderSpec extends Specification {
options.pluginNames.size () == 1
options.pluginNames.containsAll (args.format)
}
def "add plugin(s) from configuration to options" () {
given:
configObject.cucumber.plugins = [
"json:target/results.json",
"html:target/results"
]
when:
def options = createRuntimeOptions (configObject)
then:
options.pluginNames.containsAll (configObject.cucumber.plugins)
}
@Deprecated
def "command line --plugin= overwrites config plugins" () {
given:
configObject.cucumber.plugins = [
"html:target/results"
]
def args = [
'plugin': "json:target/override.json"
]
when:
def options = createRuntimeOptions (configObject, args)
then:
options.pluginNames.size () == 1
options.pluginNames.containsAll (args.plugin)
}
}

0 comments on commit 497261a

Please sign in to comment.