hiptest-publisher 2.1.0 → 3.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +310 -0
- data/LICENSE +1 -2
- data/README.md +38 -22
- data/bin/hiptest-publisher +11 -7
- data/config/locales/en.yml +16 -14
- data/lib/config/cucumber-typescript.conf +41 -41
- data/lib/config/cucumber_legacy-groovy.conf +40 -0
- data/lib/config/cucumber_legacy-java.conf +24 -0
- data/lib/config/cucumber_legacy-typescript.conf +41 -0
- data/lib/hiptest-publisher.rb +1 -1
- data/lib/hiptest-publisher/client.rb +61 -10
- data/lib/hiptest-publisher/formatters/console_formatter.rb +1 -0
- data/lib/hiptest-publisher/handlebars_helper.rb +1 -1
- data/lib/hiptest-publisher/options_parser.rb +44 -8
- data/lib/hiptest-publisher/renderer.rb +5 -1
- data/lib/hiptest-publisher/renderer_addons/gherkin_addon.rb +21 -0
- data/lib/templates/common/_gherkin_typed_pattern.hbs +1 -0
- data/lib/templates/cucumber/groovy/step-definitions/actionword.hbs +1 -1
- data/lib/templates/cucumber/groovy/step-definitions/actionwords.hbs +3 -2
- data/lib/templates/cucumber/groovy/step-definitions/library.hbs +3 -2
- data/lib/templates/cucumber/groovy/step-definitions/libraryactionword.hbs +1 -1
- data/lib/templates/cucumber/java/actionword.hbs +1 -1
- data/lib/templates/cucumber/java/actionwords.hbs +2 -2
- data/lib/templates/cucumber/typescript/actionword.hbs +1 -1
- data/lib/templates/cucumber/typescript/libraryactionword.hbs +1 -1
- data/lib/templates/cucumber_legacy/groovy/step-definitions/actionword.hbs +5 -0
- data/lib/templates/cucumber_legacy/groovy/step-definitions/actionwords.hbs +10 -0
- data/lib/templates/cucumber_legacy/groovy/step-definitions/library.hbs +10 -0
- data/lib/templates/cucumber_legacy/groovy/step-definitions/libraryactionword.hbs +5 -0
- data/lib/templates/cucumber_legacy/java/actionword.hbs +6 -0
- data/lib/templates/cucumber_legacy/java/actionwords.hbs +12 -0
- data/lib/templates/cucumber_legacy/typescript/actionword.hbs +5 -0
- data/lib/templates/cucumber_legacy/typescript/libraryactionword.hbs +5 -0
- data/lib/templates/gherkin/scenarios.hbs +1 -1
- data/lib/templates/groovy/_scenario.hbs +1 -1
- metadata +64 -35
@@ -88,7 +88,7 @@ module Hiptest
|
|
88
88
|
end
|
89
89
|
|
90
90
|
def hh_join_gherkin_dataset(context, items, block, else_block = nil)
|
91
|
-
items.map! {|item| item.gsub(/\|/, "\\|")}
|
91
|
+
items.map! { |item| item.gsub(/\|/, "\\|").gsub("\n", "\\n") }
|
92
92
|
|
93
93
|
hh_join(context, items, ' | ', block, else_block)
|
94
94
|
end
|
@@ -114,6 +114,10 @@ class CliOptions < OpenStruct
|
|
114
114
|
option_present?(test_run_name)
|
115
115
|
end
|
116
116
|
|
117
|
+
def test_run?
|
118
|
+
test_run_id? || test_run_name?
|
119
|
+
end
|
120
|
+
|
117
121
|
def language_framework
|
118
122
|
if framework.empty?
|
119
123
|
language
|
@@ -132,10 +136,15 @@ class CliOptions < OpenStruct
|
|
132
136
|
"--#{key.to_s.gsub('_', '-')}=#{self[key]}"
|
133
137
|
end.compact
|
134
138
|
|
135
|
-
|
139
|
+
"hiptest-publisher #{args.join(' ')}".strip
|
140
|
+
end
|
141
|
+
|
142
|
+
def uids_not_set_yet?
|
143
|
+
!__cli_args.include?(:uids) && !__config_args.include?(:uids)
|
136
144
|
end
|
137
145
|
|
138
146
|
def normalize!(reporter = nil)
|
147
|
+
self.uids = true if test_run? && uids_not_set_yet?
|
139
148
|
self.no_uids = !uids # silent normalization
|
140
149
|
modified_options = self.clone
|
141
150
|
if actionwords_only
|
@@ -194,6 +203,7 @@ class OptionsParser
|
|
194
203
|
{
|
195
204
|
'Ruby' => ['Rspec', 'MiniTest'],
|
196
205
|
'Cucumber' => ['Ruby', 'Java', 'Javascript', 'Groovy', 'TypeScript'],
|
206
|
+
'Cucumber_Legacy' => ['Java', 'Groovy', 'TypeScript'],
|
197
207
|
'Java' => ['JUnit', 'Test NG', 'Espresso'],
|
198
208
|
'Python' => ['Unittest'],
|
199
209
|
'Robot Framework' => [''],
|
@@ -205,7 +215,8 @@ class OptionsParser
|
|
205
215
|
'Behave' => [''],
|
206
216
|
'Behat' => [''],
|
207
217
|
'Groovy' => ['Spock'],
|
208
|
-
'JBehave' => ['']
|
218
|
+
'JBehave' => [''],
|
219
|
+
'Swift' => ['XCTest']
|
209
220
|
}
|
210
221
|
end
|
211
222
|
|
@@ -218,6 +229,7 @@ class OptionsParser
|
|
218
229
|
Option.new(nil, 'filename-pattern=PATTERN', nil, String, I18n.t('options.filename_pattern'), :filename_pattern),
|
219
230
|
Option.new('c', 'config-file=PATH', nil, String, I18n.t('options.config'), :config),
|
220
231
|
Option.new(nil, 'overriden-templates=PATH', '', String, I18n.t('options.overriden_templates'), :overriden_templates),
|
232
|
+
Option.new(nil, 'overriden-language-configs=PATH', '', String, I18n.t('options.overriden_language_configs'), :overriden_language_configs),
|
221
233
|
Option.new(nil, 'test-run-id=ID', '', String, I18n.t('options.test_run_id'), :test_run_id),
|
222
234
|
Option.new(nil, 'test-run-name=NAME', '', String, I18n.t('options.test_run_name'), :test_run_name),
|
223
235
|
Option.new(nil, 'only=CATEGORIES', nil, String, I18n.t('options.only'), :only),
|
@@ -240,14 +252,14 @@ class OptionsParser
|
|
240
252
|
Option.new(nil, 'empty-folders', false, nil, I18n.t('options.empty_folders'), :empty_folders),
|
241
253
|
Option.new(nil, 'split-scenarios', false, nil, I18n.t('options.split_scenarios'), :split_scenarios),
|
242
254
|
Option.new(nil, 'leafless-export', false, nil, I18n.t('options.leafless_export'), :leafless_export),
|
243
|
-
Option.new('s', 'site=SITE', 'https://
|
255
|
+
Option.new('s', 'site=SITE', 'https://studio.cucumber.io', String, I18n.t('options.site'), :site),
|
244
256
|
Option.new(nil, 'http-proxy=PROXY_URL', nil, String, I18n.t('options.http_proxy'), :http_proxy),
|
245
257
|
Option.new('p', 'push=FILE.TAP', '', String, I18n.t('options.push'), :push),
|
246
258
|
Option.new(nil, 'global-failure-on-missing-reports', false, nil, I18n.t('options.global_failure_on_missing_reports'), :global_failure_on_missing_reports),
|
247
259
|
Option.new(nil, 'push-format=tap', 'tap', String, I18n.t('options.push_format'), :push_format),
|
248
260
|
Option.new(nil, 'execution-environment=NAME', '', String, I18n.t('options.execution_environment'), :execution_environment),
|
249
261
|
Option.new(nil, 'sort=[id,order,alpha]', 'order', String, I18n.t('options.sort'), :sort),
|
250
|
-
Option.new(nil, '[no-]uids',
|
262
|
+
Option.new(nil, '[no-]uids', false, nil, I18n.t('options.uids'), :uids),
|
251
263
|
Option.new(nil, '[no-]parent-folder-tags', true, nil, I18n.t('options.parent_folder_tags'), :parent_folder_tags),
|
252
264
|
Option.new(nil, 'parameter-delimiter=DELIMITER', '"', EmptiableString, I18n.t('options.parameter_delimiter'), :parameter_delimiter),
|
253
265
|
Option.new(nil, 'with-dataset-names', false, nil, I18n.t('options.with_dataset_names'), :with_dataset_names),
|
@@ -264,12 +276,19 @@ class OptionsParser
|
|
264
276
|
Option.new(nil, 'check-version', false, nil, I18n.t('options.check_version'), :check_version),
|
265
277
|
Option.new(nil, 'force', false, nil, I18n.t('options.force_overwrite'), :force_overwrite),
|
266
278
|
Option.new(nil, '[no-]color', nil, nil, I18n.t('options.color'), :color),
|
267
|
-
Option.new('v', 'verbose', false, nil, I18n.t('options.verbose'), :verbose)
|
279
|
+
Option.new('v', 'verbose', false, nil, I18n.t('options.verbose'), :verbose),
|
280
|
+
Option.new(nil, 'indentation=INDENTATION', nil, EmptiableString, I18n.t('options.indentation'), :indent)
|
268
281
|
]
|
269
282
|
end
|
270
283
|
|
271
284
|
def self.default_cache_directory
|
272
|
-
|
285
|
+
home_dir = begin
|
286
|
+
Dir.home
|
287
|
+
rescue
|
288
|
+
'.'
|
289
|
+
end
|
290
|
+
|
291
|
+
File.join(home_dir, '.hiptest-publisher', 'cache')
|
273
292
|
end
|
274
293
|
|
275
294
|
def self.parse(args, reporter)
|
@@ -365,6 +384,7 @@ class NodeRenderingContext
|
|
365
384
|
|
366
385
|
def renderer_addons
|
367
386
|
addons = @properties.renderer_addons || ""
|
387
|
+
|
368
388
|
addons.split.map do |addon_name|
|
369
389
|
Hiptest.const_get(addon_name)
|
370
390
|
end
|
@@ -372,11 +392,12 @@ class NodeRenderingContext
|
|
372
392
|
end
|
373
393
|
|
374
394
|
class TemplateFinder
|
375
|
-
attr_reader :template_dirs, :overriden_templates, :forced_templates, :fallback_template
|
395
|
+
attr_reader :template_dirs, :overriden_templates, :overriden_language_configs, :forced_templates, :fallback_template
|
376
396
|
|
377
397
|
def initialize(
|
378
398
|
template_dirs: nil,
|
379
399
|
overriden_templates: nil,
|
400
|
+
overriden_language_configs: nil,
|
380
401
|
indentation: ' ',
|
381
402
|
forced_templates: nil,
|
382
403
|
fallback_template: nil,
|
@@ -556,6 +577,7 @@ class LanguageGroupConfig
|
|
556
577
|
end
|
557
578
|
|
558
579
|
def indentation
|
580
|
+
return @user_params[:indent] unless @user_params[:indent].nil?
|
559
581
|
@language_group_params[:indentation] || ' '
|
560
582
|
end
|
561
583
|
|
@@ -677,7 +699,21 @@ class LanguageConfigParser
|
|
677
699
|
else
|
678
700
|
"#{cli_options.language}-#{cli_options.framework}.conf"
|
679
701
|
end
|
680
|
-
config_path =
|
702
|
+
config_path = "/lib/config/#{config_name.downcase}"
|
703
|
+
config_prefix = if !cli_options.overriden_language_configs.to_s.empty?
|
704
|
+
# If the user has specified a overiden language config path, check it first. If the config
|
705
|
+
# exists there, return that, otherwise fall back to the default setup and look for a config there.
|
706
|
+
expanded = File.expand_path("#{cli_options.overriden_language_configs}/#{config_name.downcase}")
|
707
|
+
|
708
|
+
# If the file exists in the path the user specified, set the config path to blank so we will be
|
709
|
+
# looking in the exact path that the user requested.
|
710
|
+
if File.file?(expanded)
|
711
|
+
config_path = ''
|
712
|
+
expanded
|
713
|
+
end
|
714
|
+
end
|
715
|
+
|
716
|
+
config_path = File.expand_path("#{config_prefix || hiptest_publisher_path}#{config_path}")
|
681
717
|
|
682
718
|
if !File.file?(config_path)
|
683
719
|
if cli_options.framework.to_s.empty?
|
@@ -27,7 +27,11 @@ module Hiptest
|
|
27
27
|
if node.is_a? Hiptest::Nodes::Node
|
28
28
|
@rendered_children = {}
|
29
29
|
|
30
|
-
node.children.each
|
30
|
+
node.children.each do |name, child|
|
31
|
+
@rendered_children[name] = @rendered[child]
|
32
|
+
|
33
|
+
@rendered_children[name].uniq! if name == :actionwords && @rendered_children[name].is_a?(Array)
|
34
|
+
end
|
31
35
|
@rendered[node] = render_node(node, super(node))
|
32
36
|
elsif node.is_a? Array
|
33
37
|
@rendered[node] = node.map {|item| @rendered[item]}
|
@@ -14,6 +14,14 @@ module Hiptest
|
|
14
14
|
super(call)
|
15
15
|
end
|
16
16
|
|
17
|
+
def walk_actionword(aw)
|
18
|
+
parameters = aw.children[:parameters]
|
19
|
+
aw.chunks = replace_parameter_value_with_type(aw.chunks, parameters)
|
20
|
+
aw.extra_inlined_parameters = replace_parameter_value_with_type(aw.extra_inlined_parameters, parameters)
|
21
|
+
|
22
|
+
super(aw)
|
23
|
+
end
|
24
|
+
|
17
25
|
def walk_folder(folder)
|
18
26
|
@rendered_children[:ancestor_tags] = ancestor_tags(folder)
|
19
27
|
|
@@ -34,5 +42,18 @@ module Hiptest
|
|
34
42
|
ancestor_tags = folder.ancestors.map { |f| f.children[:tags] }.flatten.uniq
|
35
43
|
ancestor_tags.map { |t| Hiptest::Renderer.render(t, @context) }
|
36
44
|
end
|
45
|
+
|
46
|
+
def replace_parameter_value_with_type(collection, parameters)
|
47
|
+
collection.map do |obj|
|
48
|
+
if obj[:is_parameter]
|
49
|
+
parameter = parameters.find { |parameter| parameter.children[:name] == obj[:name] }
|
50
|
+
obj[:typed_value] = parameter ? "{#{parameter.type.downcase}}" : "{}"
|
51
|
+
else
|
52
|
+
obj[:typed_value] = obj[:value]
|
53
|
+
end
|
54
|
+
|
55
|
+
obj
|
56
|
+
end
|
57
|
+
end
|
37
58
|
end
|
38
59
|
end
|
@@ -0,0 +1 @@
|
|
1
|
+
{{#strip}}{{#each chunks as |treated_chunk|}}{{treated_chunk.typed_value}}{{/each}}{{#each extra_inlined_parameters as |param|}} {{param.typed_value}}{{/each}}{{/strip}}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
{{#if rendered_children.gherkin_annotation }}{{{ rendered_children.gherkin_annotation }}}(
|
1
|
+
{{#if rendered_children.gherkin_annotation }}{{{ rendered_children.gherkin_annotation }}}("{{#escape_backslashes_and_double_quotes}}{{> gherkin_typed_pattern}}{{/escape_backslashes_and_double_quotes}}") { {{{ join rendered_children.parameters_ordered_by_pattern ', '}}} ->{{#indent}}
|
2
2
|
{{{ context.call_prefix }}}.{{{camelize_lower uniq_name}}}({{#if has_parameters?}}{{#join raw_parameter_names ', ' as |param|}}{{{camelize_lower param}}}{{/join}}{{/if}})
|
3
3
|
{{/indent}}
|
4
4
|
}
|
@@ -1,8 +1,9 @@
|
|
1
1
|
package {{{ context.package }}}
|
2
2
|
|
3
|
-
import cucumber.
|
3
|
+
import io.cucumber.datatable.DataTable
|
4
|
+
import io.cucumber.groovy.EN
|
4
5
|
|
5
|
-
this.metaClass.mixin(
|
6
|
+
this.metaClass.mixin(EN)
|
6
7
|
|
7
8
|
Actionwords {{{ context.call_prefix }}} = new Actionwords()
|
8
9
|
|
@@ -1,8 +1,9 @@
|
|
1
1
|
package {{{ context.package }}}
|
2
2
|
|
3
|
-
import cucumber.
|
3
|
+
import io.cucumber.datatable.DataTable
|
4
|
+
import io.cucumber.groovy.EN
|
4
5
|
|
5
|
-
this.metaClass.mixin(
|
6
|
+
this.metaClass.mixin(EN)
|
6
7
|
|
7
8
|
Actionwords {{{ context.call_prefix }}} = new Actionwords()
|
8
9
|
|
@@ -1,4 +1,4 @@
|
|
1
|
-
{{#if rendered_children.gherkin_annotation }}{{{ rendered_children.gherkin_annotation }}}(
|
1
|
+
{{#if rendered_children.gherkin_annotation }}{{{ rendered_children.gherkin_annotation }}}("{{#escape_backslashes_and_double_quotes}}{{> gherkin_typed_pattern}}{{/escape_backslashes_and_double_quotes}}") { {{{ join rendered_children.parameters_ordered_by_pattern ', '}}} ->{{#indent}}
|
2
2
|
{{{ context.call_prefix }}}.get{{{camelize library_name}}}Library().{{{camelize_lower uniq_name}}}({{#if has_parameters?}}{{#join raw_parameter_names ', ' as |param|}}{{{camelize_lower param}}}{{/join}}{{/if}})
|
3
3
|
{{/indent}}
|
4
4
|
}
|
@@ -1,4 +1,4 @@
|
|
1
|
-
{{#if rendered_children.gherkin_annotation }}@{{{ rendered_children.gherkin_annotation }}}("{{#escape_backslashes_and_double_quotes}}{{>
|
1
|
+
{{#if rendered_children.gherkin_annotation }}@{{{ rendered_children.gherkin_annotation }}}("{{#escape_backslashes_and_double_quotes}}{{> gherkin_typed_pattern}}{{/escape_backslashes_and_double_quotes}}")
|
2
2
|
public void {{{camelize_lower rendered_children.name}}}({{{ join rendered_children.parameters_ordered_by_pattern ', '}}}) {{#curly}}{{#indent}}
|
3
3
|
{{{ context.call_prefix }}}.{{{camelize_lower rendered_children.name}}}({{#if has_parameters?}}{{#join raw_parameter_names ', ' as |param|}}{{{camelize_lower param}}}{{/join}}{{/if}});
|
4
4
|
{{/indent}}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
package {{{ context.package }}};
|
2
2
|
|
3
|
-
import cucumber.
|
4
|
-
import cucumber.
|
3
|
+
import io.cucumber.datatable.DataTable;
|
4
|
+
import io.cucumber.java.en.*;
|
5
5
|
|
6
6
|
public class StepDefinitions {{#curly}}{{#indent}}
|
7
7
|
public Actionwords {{{ context.call_prefix }}} = new Actionwords();
|
@@ -1,5 +1,5 @@
|
|
1
1
|
{{#if rendered_children.gherkin_annotation }}
|
2
|
-
{{{ rendered_children.gherkin_annotation }}}(
|
2
|
+
{{{ rendered_children.gherkin_annotation }}}('{{> gherkin_typed_pattern}}', async ({{#if rendered_children.parameters}}{{{ join rendered_children.parameters_ordered_by_pattern ', '}}}{{/if}}) => {{#curly}}{{#indent}}
|
3
3
|
actionWords.{{{camelize_lower rendered_children.name}}}({{#if has_parameters?}}{{#join raw_parameter_names ', ' as |param|}}{{{underscore param}}}{{/join}}{{/if}});
|
4
4
|
{{/indent}}
|
5
5
|
{{/curly}});{{/if}}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
{{#if rendered_children.gherkin_annotation}}
|
2
|
-
{{{ rendered_children.gherkin_annotation }}}(
|
2
|
+
{{{ rendered_children.gherkin_annotation }}}('{{> gherkin_typed_pattern}}', async ({{#if rendered_children.parameters}}{{{ join rendered_children.parameters_ordered_by_pattern ', '}}}{{/if}}) => {{#curly}}{{#indent}}
|
3
3
|
libraryActionWord.getDefaultLibrary().{{{camelize_lower rendered_children.name}}}({{#if has_parameters?}}{{#join raw_parameter_names ', ' as |param|}}{{{underscore param}}}{{/join}}{{/if}});
|
4
4
|
{{/indent}}
|
5
5
|
{{/curly}});{{/if}}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
{{#if rendered_children.gherkin_annotation }}{{{ rendered_children.gherkin_annotation }}}(~"^{{#escape_backslashes_and_double_quotes}}{{> gherkin_pattern}}{{/escape_backslashes_and_double_quotes}}\$") { {{{ join rendered_children.parameters_ordered_by_pattern ', '}}} ->{{#indent}}
|
2
|
+
{{{ context.call_prefix }}}.{{{camelize_lower uniq_name}}}({{#if has_parameters?}}{{#join raw_parameter_names ', ' as |param|}}{{{camelize_lower param}}}{{/join}}{{/if}})
|
3
|
+
{{/indent}}
|
4
|
+
}
|
5
|
+
{{/if}}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
package {{{ context.package }}}
|
2
|
+
|
3
|
+
import cucumber.api.DataTable
|
4
|
+
|
5
|
+
this.metaClass.mixin(cucumber.api.groovy.EN)
|
6
|
+
|
7
|
+
Actionwords {{{ context.call_prefix }}} = new Actionwords()
|
8
|
+
|
9
|
+
{{#each rendered_children.actionwords as |actionword|}}{{{actionword}}}
|
10
|
+
{{/each}}
|
@@ -0,0 +1,10 @@
|
|
1
|
+
package {{{ context.package }}}
|
2
|
+
|
3
|
+
import cucumber.api.DataTable
|
4
|
+
|
5
|
+
this.metaClass.mixin(cucumber.api.groovy.EN)
|
6
|
+
|
7
|
+
Actionwords {{{ context.call_prefix }}} = new Actionwords()
|
8
|
+
|
9
|
+
{{#each rendered_children.library_actionwords as |actionword|}}{{{actionword}}}
|
10
|
+
{{/each}}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
{{#if rendered_children.gherkin_annotation }}{{{ rendered_children.gherkin_annotation }}}(~"^{{#escape_backslashes_and_double_quotes}}{{> gherkin_pattern}}{{/escape_backslashes_and_double_quotes}}\$") { {{{ join rendered_children.parameters_ordered_by_pattern ', '}}} ->{{#indent}}
|
2
|
+
{{{ context.call_prefix }}}.get{{{camelize library_name}}}Library().{{{camelize_lower uniq_name}}}({{#if has_parameters?}}{{#join raw_parameter_names ', ' as |param|}}{{{camelize_lower param}}}{{/join}}{{/if}})
|
3
|
+
{{/indent}}
|
4
|
+
}
|
5
|
+
{{/if}}
|
@@ -0,0 +1,6 @@
|
|
1
|
+
{{#if rendered_children.gherkin_annotation }}@{{{ rendered_children.gherkin_annotation }}}("{{#escape_backslashes_and_double_quotes}}{{> gherkin_pattern}}{{/escape_backslashes_and_double_quotes}}")
|
2
|
+
public void {{{camelize_lower rendered_children.name}}}({{{ join rendered_children.parameters_ordered_by_pattern ', '}}}) {{#curly}}{{#indent}}
|
3
|
+
{{{ context.call_prefix }}}.{{{camelize_lower rendered_children.name}}}({{#if has_parameters?}}{{#join raw_parameter_names ', ' as |param|}}{{{camelize_lower param}}}{{/join}}{{/if}});
|
4
|
+
{{/indent}}
|
5
|
+
{{/curly}}
|
6
|
+
{{/if}}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
package {{{ context.package }}};
|
2
|
+
|
3
|
+
import cucumber.api.DataTable;
|
4
|
+
import cucumber.api.java.en.*;
|
5
|
+
|
6
|
+
public class StepDefinitions {{#curly}}{{#indent}}
|
7
|
+
public Actionwords {{{ context.call_prefix }}} = new Actionwords();
|
8
|
+
|
9
|
+
{{#each rendered_children.actionwords as |actionword|}}{{{actionword}}}
|
10
|
+
{{/each}}
|
11
|
+
{{/indent}}
|
12
|
+
{{/curly}}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
{{#if rendered_children.gherkin_annotation }}
|
2
|
+
{{{ rendered_children.gherkin_annotation }}}(/{{> gherkin_pattern}}/, async ({{#if rendered_children.parameters}}{{{ join rendered_children.parameters_ordered_by_pattern ', '}}}{{/if}}) => {{#curly}}{{#indent}}
|
3
|
+
actionWords.{{{camelize_lower rendered_children.name}}}({{#if has_parameters?}}{{#join raw_parameter_names ', ' as |param|}}{{{underscore param}}}{{/join}}{{/if}});
|
4
|
+
{{/indent}}
|
5
|
+
{{/curly}});{{/if}}
|
@@ -0,0 +1,5 @@
|
|
1
|
+
{{#if rendered_children.gherkin_annotation}}
|
2
|
+
{{{ rendered_children.gherkin_annotation }}}(/{{> gherkin_pattern}}/, async ({{#if rendered_children.parameters}}{{{ join rendered_children.parameters_ordered_by_pattern ', '}}}{{/if}}) => {{#curly}}{{#indent}}
|
3
|
+
libraryActionWord.getDefaultLibrary().{{{camelize_lower rendered_children.name}}}({{#if has_parameters?}}{{#join raw_parameter_names ', ' as |param|}}{{{underscore param}}}{{/join}}{{/if}});
|
4
|
+
{{/indent}}
|
5
|
+
{{/curly}});{{/if}}
|
@@ -1,5 +1,5 @@
|
|
1
1
|
{{#if has_datasets?}}
|
2
|
-
@Unroll("{{{ escape_double_quotes rendered_children.name }}} #hiptestUid")
|
2
|
+
@Unroll("{{{ escape_double_quotes rendered_children.name }}}{{#if context.uids}} #hiptestUid{{/if}}")
|
3
3
|
{{/if}}def "{{{ escape_double_quotes rendered_children.name }}}{{#if rendered_children.uid}} (uid:{{{ rendered_children.uid}}}){{/if}}"() {{#curly}}{{#indent}}{{> desc}}{{#unless has_annotations?}}{{#unless is_empty?}}
|
4
4
|
expect:{{/unless}}{{/unless}}
|
5
5
|
{{> steps}}{{#if has_datasets?}}
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hiptest-publisher
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 3.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
8
|
-
autorequire:
|
7
|
+
- CucumberStudio R&D
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-02-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '0.7'
|
20
17
|
- - ">="
|
21
18
|
- !ruby/object:Gem::Version
|
22
19
|
version: 0.7.5
|
20
|
+
- - "~>"
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: '0.7'
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '0.7'
|
30
27
|
- - ">="
|
31
28
|
- !ruby/object:Gem::Version
|
32
29
|
version: 0.7.5
|
30
|
+
- - "~>"
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0.7'
|
33
33
|
- !ruby/object:Gem::Dependency
|
34
34
|
name: parseconfig
|
35
35
|
requirement: !ruby/object:Gem::Requirement
|
36
36
|
requirements:
|
37
|
-
- - "~>"
|
38
|
-
- !ruby/object:Gem::Version
|
39
|
-
version: '1.0'
|
40
37
|
- - ">="
|
41
38
|
- !ruby/object:Gem::Version
|
42
39
|
version: 1.0.4
|
40
|
+
- - "~>"
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: '1.0'
|
43
43
|
type: :runtime
|
44
44
|
prerelease: false
|
45
45
|
version_requirements: !ruby/object:Gem::Requirement
|
46
46
|
requirements:
|
47
|
-
- - "~>"
|
48
|
-
- !ruby/object:Gem::Version
|
49
|
-
version: '1.0'
|
50
47
|
- - ">="
|
51
48
|
- !ruby/object:Gem::Version
|
52
49
|
version: 1.0.4
|
50
|
+
- - "~>"
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: '1.0'
|
53
53
|
- !ruby/object:Gem::Dependency
|
54
54
|
name: i18n
|
55
55
|
requirement: !ruby/object:Gem::Requirement
|
@@ -88,22 +88,22 @@ dependencies:
|
|
88
88
|
name: multipart-post
|
89
89
|
requirement: !ruby/object:Gem::Requirement
|
90
90
|
requirements:
|
91
|
-
- - "~>"
|
92
|
-
- !ruby/object:Gem::Version
|
93
|
-
version: '2.1'
|
94
91
|
- - ">="
|
95
92
|
- !ruby/object:Gem::Version
|
96
93
|
version: 2.1.1
|
94
|
+
- - "~>"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '2.1'
|
97
97
|
type: :runtime
|
98
98
|
prerelease: false
|
99
99
|
version_requirements: !ruby/object:Gem::Requirement
|
100
100
|
requirements:
|
101
|
-
- - "~>"
|
102
|
-
- !ruby/object:Gem::Version
|
103
|
-
version: '2.1'
|
104
101
|
- - ">="
|
105
102
|
- !ruby/object:Gem::Version
|
106
103
|
version: 2.1.1
|
104
|
+
- - "~>"
|
105
|
+
- !ruby/object:Gem::Version
|
106
|
+
version: '2.1'
|
107
107
|
- !ruby/object:Gem::Dependency
|
108
108
|
name: ruby_version
|
109
109
|
requirement: !ruby/object:Gem::Requirement
|
@@ -192,22 +192,22 @@ dependencies:
|
|
192
192
|
name: codeclimate-test-reporter
|
193
193
|
requirement: !ruby/object:Gem::Requirement
|
194
194
|
requirements:
|
195
|
-
- - "~>"
|
196
|
-
- !ruby/object:Gem::Version
|
197
|
-
version: '0.4'
|
198
195
|
- - ">="
|
199
196
|
- !ruby/object:Gem::Version
|
200
197
|
version: 0.4.6
|
198
|
+
- - "~>"
|
199
|
+
- !ruby/object:Gem::Version
|
200
|
+
version: '0.4'
|
201
201
|
type: :development
|
202
202
|
prerelease: false
|
203
203
|
version_requirements: !ruby/object:Gem::Requirement
|
204
204
|
requirements:
|
205
|
-
- - "~>"
|
206
|
-
- !ruby/object:Gem::Version
|
207
|
-
version: '0.4'
|
208
205
|
- - ">="
|
209
206
|
- !ruby/object:Gem::Version
|
210
207
|
version: 0.4.6
|
208
|
+
- - "~>"
|
209
|
+
- !ruby/object:Gem::Version
|
210
|
+
version: '0.4'
|
211
211
|
- !ruby/object:Gem::Dependency
|
212
212
|
name: i18n-tasks
|
213
213
|
requirement: !ruby/object:Gem::Requirement
|
@@ -236,16 +236,32 @@ dependencies:
|
|
236
236
|
- - "~>"
|
237
237
|
- !ruby/object:Gem::Version
|
238
238
|
version: 0.1.1
|
239
|
+
- !ruby/object:Gem::Dependency
|
240
|
+
name: actionview
|
241
|
+
requirement: !ruby/object:Gem::Requirement
|
242
|
+
requirements:
|
243
|
+
- - "~>"
|
244
|
+
- !ruby/object:Gem::Version
|
245
|
+
version: '5.2'
|
246
|
+
type: :development
|
247
|
+
prerelease: false
|
248
|
+
version_requirements: !ruby/object:Gem::Requirement
|
249
|
+
requirements:
|
250
|
+
- - "~>"
|
251
|
+
- !ruby/object:Gem::Version
|
252
|
+
version: '5.2'
|
239
253
|
description: Provides a command-line tool that generates Java, Python or Ruby code
|
240
254
|
to run the tests.
|
241
|
-
email:
|
255
|
+
email: studio@cucumber.io
|
242
256
|
executables:
|
243
257
|
- hiptest-publisher
|
244
258
|
extensions: []
|
245
259
|
extra_rdoc_files:
|
260
|
+
- CHANGELOG.md
|
246
261
|
- LICENSE
|
247
262
|
- README.md
|
248
263
|
files:
|
264
|
+
- CHANGELOG.md
|
249
265
|
- LICENSE
|
250
266
|
- README.md
|
251
267
|
- bin/hiptest-publisher
|
@@ -259,6 +275,9 @@ files:
|
|
259
275
|
- lib/config/cucumber-javascript.conf
|
260
276
|
- lib/config/cucumber-ruby.conf
|
261
277
|
- lib/config/cucumber-typescript.conf
|
278
|
+
- lib/config/cucumber_legacy-groovy.conf
|
279
|
+
- lib/config/cucumber_legacy-java.conf
|
280
|
+
- lib/config/cucumber_legacy-typescript.conf
|
262
281
|
- lib/config/groovy-spock.conf
|
263
282
|
- lib/config/java-espresso.conf
|
264
283
|
- lib/config/java-junit.conf
|
@@ -326,6 +345,7 @@ files:
|
|
326
345
|
- lib/templates/behave/libraryactionword.hbs
|
327
346
|
- lib/templates/behave/nullliteral.hbs
|
328
347
|
- lib/templates/common/_gherkin_pattern.hbs
|
348
|
+
- lib/templates/common/_gherkin_typed_pattern.hbs
|
329
349
|
- lib/templates/common/booleanliteral.hbs
|
330
350
|
- lib/templates/common/dataset.hbs
|
331
351
|
- lib/templates/common/datatable.hbs
|
@@ -391,6 +411,14 @@ files:
|
|
391
411
|
- lib/templates/cucumber/typescript/actionwords.hbs
|
392
412
|
- lib/templates/cucumber/typescript/library.hbs
|
393
413
|
- lib/templates/cucumber/typescript/libraryactionword.hbs
|
414
|
+
- lib/templates/cucumber_legacy/groovy/step-definitions/actionword.hbs
|
415
|
+
- lib/templates/cucumber_legacy/groovy/step-definitions/actionwords.hbs
|
416
|
+
- lib/templates/cucumber_legacy/groovy/step-definitions/library.hbs
|
417
|
+
- lib/templates/cucumber_legacy/groovy/step-definitions/libraryactionword.hbs
|
418
|
+
- lib/templates/cucumber_legacy/java/actionword.hbs
|
419
|
+
- lib/templates/cucumber_legacy/java/actionwords.hbs
|
420
|
+
- lib/templates/cucumber_legacy/typescript/actionword.hbs
|
421
|
+
- lib/templates/cucumber_legacy/typescript/libraryactionword.hbs
|
394
422
|
- lib/templates/gherkin/_call.hbs
|
395
423
|
- lib/templates/gherkin/_gherkin_text.hbs
|
396
424
|
- lib/templates/gherkin/_scenario.hbs
|
@@ -729,11 +757,11 @@ files:
|
|
729
757
|
- lib/templates/typescript/library.hbs
|
730
758
|
- lib/templates/typescript/libraryactionword.hbs
|
731
759
|
- lib/templates/typescript/parameter.hbs
|
732
|
-
homepage: https://
|
760
|
+
homepage: https://cucumber.io
|
733
761
|
licenses:
|
734
|
-
-
|
762
|
+
- MIT
|
735
763
|
metadata: {}
|
736
|
-
post_install_message:
|
764
|
+
post_install_message:
|
737
765
|
rdoc_options: []
|
738
766
|
require_paths:
|
739
767
|
- lib
|
@@ -748,8 +776,9 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
748
776
|
- !ruby/object:Gem::Version
|
749
777
|
version: '0'
|
750
778
|
requirements: []
|
751
|
-
|
752
|
-
|
779
|
+
rubyforge_project:
|
780
|
+
rubygems_version: 2.7.6.2
|
781
|
+
signing_key:
|
753
782
|
specification_version: 4
|
754
|
-
summary: Export your tests from
|
783
|
+
summary: Export your tests from CucumberStudio into executable tests.
|
755
784
|
test_files: []
|