cucumber 0.1.16 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/History.txt +111 -5
- data/License.txt +1 -1
- data/Manifest.txt +141 -83
- data/Rakefile +1 -1
- data/bin/cucumber +2 -2
- data/config/hoe.rb +8 -2
- data/examples/cs/features/addition.feature +4 -5
- data/examples/cs/features/step_definitons/calculator_steps.rb +1 -5
- data/examples/i18n/README.textile +1 -1
- data/examples/i18n/Rakefile +5 -5
- data/examples/i18n/ar/features/addition.feature +10 -11
- data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +1 -10
- data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +1 -1
- data/examples/i18n/de/features/addition.feature +10 -11
- data/examples/i18n/de/features/division.feature +0 -1
- data/examples/i18n/de/features/step_definitons/calculator_steps.rb +2 -10
- data/examples/i18n/en-lol/Rakefile +6 -0
- data/examples/i18n/en-lol/features/step_definitions/cucumbrz_steps.rb +16 -0
- data/examples/i18n/en-lol/features/stuffing.feature +8 -0
- data/examples/i18n/en-lol/features/support/env.rb +8 -0
- data/examples/i18n/en-lol/lib/basket.rb +12 -0
- data/examples/i18n/en-lol/lib/belly.rb +11 -0
- data/examples/i18n/en/features/addition.feature +10 -11
- data/examples/i18n/en/features/division.feature +0 -1
- data/examples/i18n/en/features/step_definitons/calculator_steps.rb +2 -6
- data/examples/i18n/es/features/adicion.feature +11 -12
- data/examples/i18n/es/features/step_definitons/calculador_steps.rb +7 -10
- data/examples/i18n/es/lib/calculador.rb +4 -1
- data/examples/i18n/et/features/jagamine.feature +9 -0
- data/examples/i18n/et/features/liitmine.feature +10 -11
- data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +4 -8
- data/examples/i18n/et/lib/kalkulaator.rb +5 -1
- data/examples/i18n/fi/Rakefile +6 -0
- data/examples/i18n/fi/features/jakolasku.feature +9 -0
- data/examples/i18n/fi/features/step_definitons/laskin_steps.rb +24 -0
- data/examples/i18n/fi/features/yhteenlasku.feature +16 -0
- data/examples/i18n/fi/lib/laskin.rb +14 -0
- data/examples/i18n/fr/features/addition.feature +14 -12
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +11 -13
- data/examples/i18n/fr/lib/calculatrice.rb +1 -1
- data/examples/i18n/id/features/addition.feature +10 -11
- data/examples/i18n/id/features/division.feature +0 -1
- data/examples/i18n/id/features/step_definitons/calculator_steps.rb +2 -11
- data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +1 -1
- data/examples/i18n/ja/features/addition.feature +10 -11
- data/examples/i18n/ja/features/division.feature +2 -3
- data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +4 -13
- data/examples/i18n/ko/features/addition.feature +7 -8
- data/examples/i18n/ko/features/division.feature +3 -4
- data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +1 -5
- data/examples/i18n/lt/features/addition.feature +11 -11
- data/examples/i18n/lt/features/division.feature +0 -1
- data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +2 -11
- data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +3 -10
- data/examples/i18n/no/features/summering.feature +1 -0
- data/examples/i18n/no/features/support/env.rb +6 -0
- data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +1 -1
- data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +1 -1
- data/examples/i18n/ru/Rakefile +6 -0
- data/examples/i18n/ru/features/addition.feature +10 -0
- data/examples/i18n/ru/features/consecutive_calculations.feature +16 -0
- data/examples/i18n/ru/features/division.feature +15 -0
- data/examples/i18n/ru/features/step_definitons/calculator_steps.rb +19 -0
- data/examples/i18n/ru/features/support/env.rb +6 -0
- data/examples/i18n/ru/features/support/world.rb +7 -0
- data/examples/i18n/ru/lib/calculator.rb +24 -0
- data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +1 -1
- data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +2 -2
- data/examples/i18n/zh-TW/Rakefile +6 -0
- data/examples/i18n/zh-TW/features/addition.feature +16 -0
- data/examples/i18n/zh-TW/features/division.feature +10 -0
- data/examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/zh-TW/lib/calculator.rb +14 -0
- data/examples/java/src/cucumber/demo/Hello.java +16 -0
- data/examples/jbehave/README.textile +20 -0
- data/examples/jbehave/features/support/env.rb +7 -0
- data/examples/jbehave/features/trading.feature +28 -0
- data/examples/jbehave/pom.xml +53 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/converters/TraderConverter.java +32 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Stock.java +42 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/model/Trader.java +29 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/persistence/TraderPersister.java +22 -0
- data/examples/jbehave/src/main/java/cukes/jbehave/examples/trader/scenarios/TraderSteps.java +70 -0
- data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
- data/examples/selenium/features/support/env.rb +19 -0
- data/examples/{calculator_ruby_features → selenium_webrat}/Rakefile +0 -0
- data/examples/selenium_webrat/features/search.feature +9 -0
- data/examples/selenium_webrat/features/step_definitons/search_steps.rb +13 -0
- data/examples/selenium_webrat/features/support/env.rb +41 -0
- data/examples/self_test/README.textile +4 -1
- data/examples/self_test/Rakefile +6 -0
- data/examples/self_test/features/background/failing_background.feature +11 -0
- data/examples/self_test/features/background/failing_background_after_success.feature +11 -0
- data/examples/self_test/features/background/multiline_args_background.feature +32 -0
- data/examples/self_test/features/background/passing_background.feature +10 -0
- data/examples/self_test/features/background/pending_background.feature +10 -0
- data/examples/self_test/features/background/scenario_outline_failing_background.feature +16 -0
- data/examples/self_test/features/background/scenario_outline_passing_background.feature +16 -0
- data/examples/self_test/features/call_undefined_step_from_step_def.feature +7 -0
- data/examples/self_test/features/failing_expectation.feature +4 -0
- data/examples/self_test/features/lots_of_undefined.feature +8 -0
- data/examples/self_test/features/outline_sample.feature +11 -5
- data/examples/self_test/features/sample.feature +8 -3
- data/examples/self_test/features/step_definitions/sample_steps.rb +55 -4
- data/examples/self_test/features/support/env.rb +1 -0
- data/examples/self_test/features/support/tag_count_formatter.rb +25 -0
- data/examples/sinatra/Rakefile +6 -0
- data/examples/sinatra/app.rb +14 -0
- data/examples/sinatra/features/add.feature +11 -0
- data/examples/sinatra/features/step_definitions/add_steps.rb +15 -0
- data/examples/sinatra/features/support/env.rb +20 -0
- data/examples/sinatra/views/add.erb +5 -0
- data/examples/sinatra/views/layout.erb +8 -0
- data/examples/tickets/Rakefile +13 -8
- data/examples/tickets/cucumber.yml +2 -1
- data/examples/tickets/features/172.feature +28 -0
- data/examples/tickets/features/177/1.feature +29 -0
- data/examples/tickets/features/177/2.feature +21 -0
- data/examples/tickets/features/177/3.feature +18 -0
- data/examples/tickets/features/180.feature +7 -0
- data/examples/tickets/features/236.feature +13 -0
- data/examples/tickets/features/241.feature +13 -0
- data/examples/tickets/features/scenario_outline.feature +6 -1
- data/examples/tickets/features/step_definitons/tickets_steps.rb +41 -4
- data/examples/tickets/features/tickets.feature +5 -1
- data/features/background.feature +221 -0
- data/features/cucumber_cli.feature +263 -97
- data/features/cucumber_cli_diff_disabled.feature +45 -0
- data/features/cucumber_cli_outlines.feature +50 -42
- data/features/custom_formatter.feature +11 -0
- data/features/report_called_undefined_steps.feature +34 -0
- data/features/step_definitions/cucumber_steps.rb +6 -3
- data/features/step_definitions/extra_steps.rb +1 -1
- data/features/support/env.rb +3 -2
- data/gem_tasks/features.rake +1 -1
- data/gem_tasks/flog.rake +1 -1
- data/gem_tasks/gemspec.rake +2 -2
- data/gem_tasks/jar.rake +67 -0
- data/gem_tasks/rspec.rake +2 -0
- data/lib/autotest/cucumber_mixin.rb +18 -23
- data/lib/cucumber.rb +55 -11
- data/lib/cucumber/ast.rb +29 -0
- data/lib/cucumber/ast/background.rb +50 -0
- data/lib/cucumber/ast/comment.rb +26 -0
- data/lib/cucumber/ast/examples.rb +38 -0
- data/lib/cucumber/ast/feature.rb +62 -0
- data/lib/cucumber/ast/feature_element.rb +46 -0
- data/lib/cucumber/ast/features.rb +20 -0
- data/lib/cucumber/ast/outline_table.rb +81 -0
- data/lib/cucumber/ast/py_string.rb +58 -0
- data/lib/cucumber/ast/scenario.rb +64 -0
- data/lib/cucumber/ast/scenario_outline.rb +90 -0
- data/lib/cucumber/ast/step.rb +122 -0
- data/lib/cucumber/ast/step_collection.rb +66 -0
- data/lib/cucumber/ast/step_invocation.rb +110 -0
- data/lib/cucumber/ast/table.rb +318 -0
- data/lib/cucumber/ast/tags.rb +33 -0
- data/lib/cucumber/ast/visitor.rb +125 -0
- data/lib/cucumber/broadcaster.rb +2 -9
- data/lib/cucumber/cli/configuration.rb +364 -0
- data/lib/cucumber/cli/language_help_formatter.rb +59 -0
- data/lib/cucumber/cli/main.rb +109 -0
- data/lib/cucumber/core_ext/exception.rb +41 -8
- data/lib/cucumber/core_ext/instance_exec.rb +54 -0
- data/lib/cucumber/core_ext/proc.rb +29 -65
- data/lib/cucumber/core_ext/string.rb +19 -0
- data/lib/cucumber/formatter.rb +1 -0
- data/lib/cucumber/{formatters → formatter}/ansicolor.rb +13 -16
- data/lib/cucumber/formatter/color_io.rb +23 -0
- data/lib/cucumber/formatter/console.rb +109 -0
- data/lib/cucumber/formatter/cucumber.css +55 -0
- data/lib/cucumber/formatter/cucumber.sass +49 -0
- data/lib/cucumber/formatter/html.rb +133 -0
- data/lib/cucumber/formatter/pretty.rb +179 -0
- data/lib/cucumber/formatter/profile.rb +77 -0
- data/lib/cucumber/formatter/progress.rb +60 -0
- data/lib/cucumber/formatter/rerun.rb +35 -0
- data/lib/cucumber/formatter/unicode.rb +35 -0
- data/lib/cucumber/formatters/unicode.rb +2 -35
- data/lib/cucumber/jbehave.rb +97 -0
- data/lib/cucumber/languages.yml +196 -80
- data/lib/cucumber/parser.rb +43 -0
- data/lib/cucumber/parser/basic.rb +0 -0
- data/lib/cucumber/parser/feature.rb +1487 -0
- data/lib/cucumber/parser/feature.tt +193 -0
- data/lib/cucumber/parser/i18n.tt +31 -0
- data/lib/cucumber/parser/table.rb +402 -0
- data/lib/cucumber/parser/table.tt +59 -0
- data/lib/cucumber/parser/treetop_ext.rb +75 -0
- data/lib/cucumber/platform.rb +2 -17
- data/lib/cucumber/rails/rspec.rb +5 -9
- data/lib/cucumber/rails/world.rb +2 -2
- data/lib/cucumber/rake/task.rb +39 -7
- data/lib/cucumber/step_definition.rb +103 -0
- data/lib/cucumber/step_match.rb +49 -0
- data/lib/cucumber/step_mother.rb +183 -67
- data/lib/cucumber/version.rb +2 -2
- data/lib/cucumber/world.rb +53 -1
- data/rails_generators/cucumber/cucumber_generator.rb +22 -3
- data/rails_generators/cucumber/templates/cucumber +2 -1
- data/rails_generators/cucumber/templates/cucumber.rake +13 -5
- data/rails_generators/cucumber/templates/env.rb +4 -3
- data/rails_generators/cucumber/templates/paths.rb +18 -11
- data/rails_generators/cucumber/templates/webrat_steps.rb +41 -25
- data/rails_generators/feature/feature_generator.rb +4 -0
- data/rails_generators/feature/templates/steps.erb +0 -4
- data/spec/cucumber/ast/background_spec.rb +49 -0
- data/spec/cucumber/ast/feature_factory.rb +63 -0
- data/spec/cucumber/ast/feature_spec.rb +37 -0
- data/spec/cucumber/ast/py_string_spec.rb +47 -0
- data/spec/cucumber/ast/scenario_outline_spec.rb +67 -0
- data/spec/cucumber/ast/scenario_spec.rb +65 -0
- data/spec/cucumber/ast/step_collection_spec.rb +8 -0
- data/spec/cucumber/ast/step_spec.rb +66 -0
- data/spec/cucumber/ast/table_spec.rb +149 -0
- data/spec/cucumber/ast/tags_spec.rb +19 -0
- data/spec/cucumber/broadcaster_spec.rb +6 -18
- data/spec/cucumber/cli/configuration_spec.rb +275 -0
- data/spec/cucumber/cli/main_spec.rb +203 -0
- data/spec/cucumber/core_ext/proc_spec.rb +27 -35
- data/spec/cucumber/core_ext/string_spec.rb +8 -0
- data/spec/cucumber/{formatters → formatter}/ansicolor_spec.rb +2 -2
- data/spec/cucumber/formatter/color_io_spec.rb +26 -0
- data/spec/cucumber/formatter/html/cucumber.css +37 -0
- data/spec/cucumber/formatter/html/cucumber.js +13 -0
- data/spec/cucumber/formatter/html/index.html +45 -0
- data/spec/cucumber/formatter/html/jquery-1.3.min.js +19 -0
- data/spec/cucumber/formatter/html/jquery.uitableedit.js +100 -0
- data/spec/cucumber/formatters/profile_formatter_spec.rb +17 -16
- data/spec/cucumber/parser/feature_parser_spec.rb +282 -0
- data/spec/cucumber/parser/table_parser_spec.rb +48 -0
- data/spec/cucumber/step_definition_spec.rb +81 -0
- data/spec/cucumber/step_mother_spec.rb +50 -51
- data/spec/cucumber/treetop_parser/empty_feature.feature +1 -1
- data/spec/cucumber/treetop_parser/multiple_tables.feature +6 -8
- data/spec/cucumber/treetop_parser/scenario_outline.feature +1 -1
- data/spec/cucumber/treetop_parser/spaces.feature +3 -1
- data/spec/cucumber/treetop_parser/with_comments.feature +1 -1
- data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
- data/spec/cucumber/world/pending_spec.rb +13 -12
- data/spec/spec_helper.rb +1 -1
- metadata +165 -88
- data/examples/calculator_ruby_features/features/addition.rb +0 -39
- data/examples/calculator_ruby_features/features/step_definitons/calculator_steps.rb +0 -43
- data/examples/i18n/ja/README.txt +0 -5
- data/examples/selenium/features/step_definitons/stories_steps.rb +0 -40
- data/gem_tasks/treetop.rake +0 -41
- data/lib/cucumber/cli.rb +0 -356
- data/lib/cucumber/executor.rb +0 -205
- data/lib/cucumber/formatters.rb +0 -1
- data/lib/cucumber/formatters/autotest_formatter.rb +0 -23
- data/lib/cucumber/formatters/cucumber.css +0 -132
- data/lib/cucumber/formatters/cucumber.js +0 -11
- data/lib/cucumber/formatters/html_formatter.rb +0 -151
- data/lib/cucumber/formatters/jquery.js +0 -32
- data/lib/cucumber/formatters/pretty_formatter.rb +0 -285
- data/lib/cucumber/formatters/profile_formatter.rb +0 -92
- data/lib/cucumber/formatters/progress_formatter.rb +0 -61
- data/lib/cucumber/model.rb +0 -1
- data/lib/cucumber/model/table.rb +0 -32
- data/lib/cucumber/step_methods.rb +0 -49
- data/lib/cucumber/tree.rb +0 -16
- data/lib/cucumber/tree/feature.rb +0 -105
- data/lib/cucumber/tree/features.rb +0 -21
- data/lib/cucumber/tree/given_scenario.rb +0 -13
- data/lib/cucumber/tree/scenario.rb +0 -240
- data/lib/cucumber/tree/step.rb +0 -173
- data/lib/cucumber/tree/table.rb +0 -26
- data/lib/cucumber/tree/top_down_visitor.rb +0 -23
- data/lib/cucumber/treetop_parser/feature.treetop.erb +0 -254
- data/lib/cucumber/treetop_parser/feature_ar.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_cy.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_da.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_de.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_en-lol.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_en-tx.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_en.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_es.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_et.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_fr.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_id.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_it.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_ja.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_ko.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_lt.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_nl.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_no.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_parser.rb +0 -36
- data/lib/cucumber/treetop_parser/feature_pl.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_pt.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_ro.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_ro2.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_ru.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_se.rb +0 -1951
- data/lib/cucumber/treetop_parser/feature_zh-CN.rb +0 -1951
- data/lib/cucumber/world/pending.rb +0 -22
- data/script/console +0 -10
- data/script/console.cmd +0 -1
- data/script/destroy +0 -14
- data/script/destroy.cmd +0 -1
- data/script/generate +0 -14
- data/script/generate.cmd +0 -1
- data/script/txt2html +0 -74
- data/script/txt2html.cmd +0 -1
- data/setup.rb +0 -1585
- data/spec/cucumber/cli_spec.rb +0 -521
- data/spec/cucumber/executor_spec.rb +0 -382
- data/spec/cucumber/formatters/autotest_formatter_spec.rb +0 -26
- data/spec/cucumber/formatters/features.html +0 -269
- data/spec/cucumber/formatters/html_formatter_spec.rb +0 -104
- data/spec/cucumber/formatters/pretty_formatter_spec.rb +0 -410
- data/spec/cucumber/formatters/progress_formatter_spec.rb +0 -81
- data/spec/cucumber/model/table_spec.rb +0 -32
- data/spec/cucumber/tree/feature_spec.rb +0 -122
- data/spec/cucumber/tree/row_scenario_outline_spec.rb +0 -73
- data/spec/cucumber/tree/row_scenario_spec.rb +0 -55
- data/spec/cucumber/tree/row_step_outline_spec.rb +0 -38
- data/spec/cucumber/tree/scenario_outline_spec.rb +0 -50
- data/spec/cucumber/tree/scenario_spec.rb +0 -134
- data/spec/cucumber/tree/step_outline_spec.rb +0 -17
- data/spec/cucumber/tree/step_spec.rb +0 -59
- data/spec/cucumber/treetop_parser/feature_parser_spec.rb +0 -120
@@ -0,0 +1,60 @@
|
|
1
|
+
require 'cucumber/formatter/console'
|
2
|
+
|
3
|
+
module Cucumber
|
4
|
+
module Formatter
|
5
|
+
class Progress < Ast::Visitor
|
6
|
+
include Console
|
7
|
+
|
8
|
+
def initialize(step_mother, io, options)
|
9
|
+
super(step_mother)
|
10
|
+
@io = io
|
11
|
+
@options = options
|
12
|
+
end
|
13
|
+
|
14
|
+
def visit_features(features)
|
15
|
+
super
|
16
|
+
@io.puts
|
17
|
+
@io.puts
|
18
|
+
print_summary
|
19
|
+
end
|
20
|
+
|
21
|
+
def visit_multiline_arg(multiline_arg)
|
22
|
+
@multiline_arg = true
|
23
|
+
super
|
24
|
+
@multiline_arg = false
|
25
|
+
end
|
26
|
+
|
27
|
+
def visit_step_name(keyword, step_match, status, source_indent, background)
|
28
|
+
progress(status) unless status == :outline
|
29
|
+
end
|
30
|
+
|
31
|
+
def visit_table_cell_value(value, width, status)
|
32
|
+
progress(status) if (status != :thead) && !@multiline_arg
|
33
|
+
end
|
34
|
+
|
35
|
+
private
|
36
|
+
|
37
|
+
def print_summary
|
38
|
+
print_steps(:pending)
|
39
|
+
print_steps(:failed)
|
40
|
+
print_counts
|
41
|
+
print_snippets(@options)
|
42
|
+
end
|
43
|
+
|
44
|
+
CHARS = {
|
45
|
+
:passed => '.',
|
46
|
+
:failed => 'F',
|
47
|
+
:undefined => 'U',
|
48
|
+
:pending => 'P',
|
49
|
+
:skipped => '-'
|
50
|
+
}
|
51
|
+
|
52
|
+
def progress(status)
|
53
|
+
char = CHARS[status]
|
54
|
+
@io.print(format_string(char, status))
|
55
|
+
@io.flush
|
56
|
+
end
|
57
|
+
|
58
|
+
end
|
59
|
+
end
|
60
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
module Cucumber
|
2
|
+
module Formatter
|
3
|
+
class Rerun < Ast::Visitor
|
4
|
+
def initialize(step_mother, io, options)
|
5
|
+
super(step_mother)
|
6
|
+
@io = io
|
7
|
+
@file_names = []
|
8
|
+
@file_colon_lines = Hash.new{|h,k| h[k] = []}
|
9
|
+
end
|
10
|
+
|
11
|
+
def visit_features(features)
|
12
|
+
super
|
13
|
+
files = @file_names.uniq.map do |file|
|
14
|
+
lines = @file_colon_lines[file]
|
15
|
+
"#{file}:#{lines.join(':')}"
|
16
|
+
end
|
17
|
+
@io.puts files.join(' ')
|
18
|
+
end
|
19
|
+
|
20
|
+
def visit_feature_element(feature_element)
|
21
|
+
@rerun = false
|
22
|
+
super
|
23
|
+
if @rerun
|
24
|
+
file, line = *feature_element.file_colon_line.split(':')
|
25
|
+
@file_colon_lines[file] << line
|
26
|
+
@file_names << file
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
def visit_step_name(keyword, step_match, status, source_indent, background)
|
31
|
+
@rerun = true if [:failed].index(status)
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
# Require this file if you need Unicode support.
|
2
|
+
require 'cucumber/platform'
|
3
|
+
require 'cucumber/formatter/ansicolor'
|
4
|
+
|
5
|
+
$KCODE='u' unless Cucumber::RUBY_1_9
|
6
|
+
|
7
|
+
if Cucumber::WINDOWS_MRI && `chcp` =~ /(\d+)/
|
8
|
+
codepage = $1.to_i
|
9
|
+
codepages = (1251..1252)
|
10
|
+
|
11
|
+
if codepages.include?(codepage)
|
12
|
+
Cucumber::CODEPAGE = "cp#{codepage}"
|
13
|
+
|
14
|
+
require 'iconv'
|
15
|
+
module Kernel
|
16
|
+
alias cucumber_print print
|
17
|
+
def print(*a)
|
18
|
+
begin
|
19
|
+
cucumber_print(*Iconv.iconv(Cucumber::CODEPAGE, "UTF-8", *a))
|
20
|
+
rescue Iconv::IllegalSequence
|
21
|
+
cucumber_print(*a)
|
22
|
+
end
|
23
|
+
end
|
24
|
+
|
25
|
+
alias cucumber_puts puts
|
26
|
+
def puts(*a)
|
27
|
+
begin
|
28
|
+
cucumber_puts(*Iconv.iconv(Cucumber::CODEPAGE, "UTF-8", *a))
|
29
|
+
rescue Iconv::IllegalSequence
|
30
|
+
cucumber_puts(*a)
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
@@ -1,35 +1,2 @@
|
|
1
|
-
#
|
2
|
-
require 'cucumber/
|
3
|
-
require 'cucumber/formatters/ansicolor'
|
4
|
-
|
5
|
-
$KCODE='u' unless Cucumber::RUBY_1_9
|
6
|
-
|
7
|
-
if Cucumber::WINDOWS_MRI && `chcp` =~ /Active code page: (\d+)/
|
8
|
-
codepage = $1.to_i
|
9
|
-
codepages = (1251..1252)
|
10
|
-
|
11
|
-
if codepages.include?(codepage)
|
12
|
-
Cucumber::CODEPAGE = "cp#{codepage}"
|
13
|
-
|
14
|
-
require 'iconv'
|
15
|
-
module Kernel
|
16
|
-
alias cucumber_print print
|
17
|
-
def print(*a)
|
18
|
-
begin
|
19
|
-
cucumber_print *Iconv.iconv(Cucumber::CODEPAGE, "UTF-8", *a)
|
20
|
-
rescue Iconv::IllegalSequence
|
21
|
-
cucumber_print(*a)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
alias cucumber_puts puts
|
26
|
-
def puts(*a)
|
27
|
-
begin
|
28
|
-
cucumber_puts *Iconv.iconv(Cucumber::CODEPAGE, "UTF-8", *a)
|
29
|
-
rescue Iconv::IllegalSequence
|
30
|
-
cucumber_puts(*a)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
1
|
+
# This is for backwards compatibility
|
2
|
+
require 'cucumber/formatter/unicode'
|
@@ -0,0 +1,97 @@
|
|
1
|
+
if defined?(JRUBY_VERSION)
|
2
|
+
require 'java'
|
3
|
+
|
4
|
+
Exception::CUCUMBER_FILTER_PATTERNS.unshift(/^org\/jruby|^org\/jbehave|^org\/junit|^java\/|^sun\/|^\$_dot_dot_/)
|
5
|
+
|
6
|
+
module Cucumber
|
7
|
+
module JBehave
|
8
|
+
# Register an instance of org.jbehave.scenario.steps.Steps
|
9
|
+
def JBehave(jbehave_steps)
|
10
|
+
jbehave_steps.getSteps.each do |jbehave_candidate_step|
|
11
|
+
step_definitions << JBehaveStepDefinition.new(jbehave_steps, jbehave_candidate_step)
|
12
|
+
end
|
13
|
+
end
|
14
|
+
|
15
|
+
# Open up so we can get the pattern....
|
16
|
+
JBehaveCandidateStep = org.jbehave.scenario.steps.CandidateStep
|
17
|
+
class JBehaveCandidateStep
|
18
|
+
field_reader :pattern
|
19
|
+
end
|
20
|
+
|
21
|
+
# Adapter for JBehave org.jbehave.scenario.steps.CandidateStep
|
22
|
+
class JBehaveStepDefinition
|
23
|
+
def initialize(jbehave_steps, jbehave_candidate_step)
|
24
|
+
@jbehave_steps = jbehave_steps
|
25
|
+
@jbehave_candidate_step = jbehave_candidate_step
|
26
|
+
@regexp = Regexp.new(jbehave_candidate_step.pattern.pattern)
|
27
|
+
end
|
28
|
+
|
29
|
+
def step_match(name_to_match, name_to_report)
|
30
|
+
if(match = name_to_match.match(@regexp))
|
31
|
+
StepMatch.new(self, name_to_match, name_to_report, match.captures)
|
32
|
+
else
|
33
|
+
nil
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
def file_colon_line
|
38
|
+
@jbehave_steps.java_class.name
|
39
|
+
end
|
40
|
+
|
41
|
+
def format_args(step_name, format)
|
42
|
+
step_name.gzub(@regexp, format)
|
43
|
+
end
|
44
|
+
|
45
|
+
def invoke(world, args, step_name)
|
46
|
+
step = @jbehave_candidate_step.createFrom("Given #{step_name}") # JBehave doesn't care about the adverb.
|
47
|
+
step = @jbehave_candidate_step.__send__(:createStep, "Given #{step_name}", args) # JBehave doesn't care about the adverb.
|
48
|
+
|
49
|
+
result = step.perform
|
50
|
+
result.describeTo(Reporter)
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
# Implements the org.jbehave.scenario.reporters.ScenarioReporter methods
|
55
|
+
class Reporter
|
56
|
+
def self.successful(step_text)
|
57
|
+
# noop
|
58
|
+
end
|
59
|
+
|
60
|
+
def self.failed(step, java_exception)
|
61
|
+
raise java_exception_to_ruby_exception(java_exception)
|
62
|
+
end
|
63
|
+
|
64
|
+
private
|
65
|
+
|
66
|
+
def self.java_exception_to_ruby_exception(java_exception)
|
67
|
+
# OK, this is a little funky - JRuby weirdness
|
68
|
+
ruby_exception = org.jruby.NativeException.new(JRuby.runtime, JBehaveException, java_exception)
|
69
|
+
ruby_exception.set_backtrace([]) # work around backtrace bug in jruby
|
70
|
+
exception = JBehaveException.new("#{java_exception.getClass.getName}: #{java_exception.getMessage}")
|
71
|
+
bt = ruby_exception.backtrace
|
72
|
+
Exception.cucumber_strip_backtrace!(bt, nil, nil)
|
73
|
+
exception.set_backtrace(bt)
|
74
|
+
exception
|
75
|
+
end
|
76
|
+
end
|
77
|
+
|
78
|
+
class JBehaveException < Exception
|
79
|
+
end
|
80
|
+
|
81
|
+
def self.snippet_text(step_keyword, step_name)
|
82
|
+
camel = step_name.gsub(/(\s.)/) {$1.upcase.strip}
|
83
|
+
method = camel[0..0].downcase + camel[1..-1]
|
84
|
+
snippet = %{ @#{step_keyword}("#{step_name}")
|
85
|
+
public void #{method}() {
|
86
|
+
throw new RuntimeException("pending");
|
87
|
+
}}
|
88
|
+
end
|
89
|
+
end
|
90
|
+
end
|
91
|
+
|
92
|
+
self.extend(Cucumber::JBehave)
|
93
|
+
self.snippet_generator = Cucumber::JBehave
|
94
|
+
else
|
95
|
+
STDERR.puts "ERROR: cucumber/jbehave only works with JRuby"
|
96
|
+
Kernel.exit(1)
|
97
|
+
end
|
data/lib/cucumber/languages.yml
CHANGED
@@ -1,273 +1,389 @@
|
|
1
|
-
#
|
2
|
-
#
|
3
|
-
#
|
4
|
-
#
|
5
|
-
#
|
6
|
-
#
|
1
|
+
# encoding: UTF-8
|
2
|
+
# We use the codes here (prefer 2 letters when possible)
|
3
|
+
# http://en.wikipedia.org/wiki/List_of_ISO_639-2_codes
|
4
|
+
#
|
5
|
+
# If you want several aliases for a keyword, just separate them
|
6
|
+
# with a | character. Make sure there are no ambiguities in the
|
7
|
+
# keywords.
|
8
|
+
#
|
7
9
|
"en":
|
10
|
+
name: English
|
11
|
+
native: English
|
12
|
+
encoding: UTF-8
|
8
13
|
feature: Feature
|
14
|
+
background: Background
|
9
15
|
scenario: Scenario
|
10
16
|
scenario_outline: Scenario Outline
|
11
|
-
examples: Examples
|
12
|
-
more_examples: More Examples
|
13
|
-
given_scenario: GivenScenario
|
17
|
+
examples: Examples|Scenarios
|
14
18
|
given: Given
|
15
19
|
when: When
|
16
20
|
then: Then
|
17
21
|
and: And
|
18
22
|
but: But
|
23
|
+
|
19
24
|
# Please help us keeping the languages below uptodate. The parsers for a language
|
20
25
|
# that is missing a keyword will expect the English word until the missing word(s)
|
21
26
|
# are added.
|
22
27
|
#
|
23
|
-
# Please keep the grammars in alphabetical order from here and down.
|
28
|
+
# Please keep the grammars in alphabetical order by name from here and down.
|
24
29
|
|
25
|
-
# Arabic
|
26
30
|
"ar":
|
31
|
+
name: Arabic
|
32
|
+
native: العربية
|
33
|
+
encoding: UTF-8
|
27
34
|
feature: خاصية
|
35
|
+
background: الخلفية
|
28
36
|
scenario: سيناريو
|
29
|
-
|
30
|
-
|
37
|
+
scenario_outline: سيناريو مخطط
|
38
|
+
examples: امثلة
|
31
39
|
given: بفرض
|
32
|
-
when:
|
33
|
-
then:
|
40
|
+
when: متى|عندما
|
41
|
+
then: اذاً|ثم
|
34
42
|
and: و
|
35
43
|
but: لكن
|
36
|
-
# Welsh
|
37
44
|
"cy":
|
45
|
+
name: Welsh
|
46
|
+
native: Cymraeg
|
47
|
+
encoding: UTF-8
|
38
48
|
feature: Arwedd
|
39
49
|
scenario: Scenario
|
40
|
-
|
41
|
-
given_scenario: Anrhegedig scenario
|
50
|
+
examples: Enghreifftiau
|
42
51
|
given: anrhegedig a
|
43
52
|
when: Pryd
|
44
53
|
then: Yna
|
45
54
|
and: A
|
46
55
|
but: Ond
|
47
|
-
|
56
|
+
"cz":
|
57
|
+
name: Czech
|
58
|
+
native: Česky
|
59
|
+
encoding: UTF-8
|
60
|
+
feature: Požadavek
|
61
|
+
background: Pozadí
|
62
|
+
scenario: Scénář
|
63
|
+
scenario_outline: Náčrt Scénáře
|
64
|
+
examples: Příklady
|
65
|
+
given: Pokud
|
66
|
+
when: Když
|
67
|
+
then: Pak
|
68
|
+
and: A
|
69
|
+
but: Ale
|
48
70
|
"da":
|
71
|
+
name: Danish
|
72
|
+
native: dansk
|
73
|
+
encoding: UTF-8
|
49
74
|
feature: Egenskab
|
75
|
+
background: Baggrund
|
50
76
|
scenario: Scenarie
|
51
|
-
|
77
|
+
scenario_outline: Abstrakt Scenario
|
78
|
+
examples: Eksempler
|
52
79
|
given: Givet
|
53
80
|
when: Når
|
54
81
|
then: Så
|
55
82
|
and: Og
|
56
83
|
but: Men
|
57
|
-
# German
|
58
84
|
"de":
|
85
|
+
name: German
|
86
|
+
native: Deutsch
|
87
|
+
encoding: UTF-8
|
59
88
|
feature: Funktionalität
|
89
|
+
background: Grundlage
|
60
90
|
scenario: Szenario
|
61
91
|
scenario_outline: Szenariogrundriss
|
62
92
|
examples: Beispiele
|
63
|
-
more_examples: Mehr Beispiele
|
64
|
-
given_scenario: Gegebenes Szenario
|
65
93
|
given: Gegeben sei
|
66
94
|
when: Wenn
|
67
95
|
then: Dann
|
68
96
|
and: Und
|
69
97
|
but: Aber
|
70
|
-
|
98
|
+
"en-au":
|
99
|
+
name: Australian
|
100
|
+
native: Australian
|
101
|
+
encoding: UTF-8
|
102
|
+
feature: Crikey
|
103
|
+
background: Background
|
104
|
+
scenario: Mate
|
105
|
+
scenario_outline: Blokes
|
106
|
+
examples: Cobber
|
107
|
+
given: Ya know how
|
108
|
+
when: When
|
109
|
+
then: Ya gotta
|
110
|
+
and: N
|
111
|
+
but: Cept
|
71
112
|
"en-lol":
|
113
|
+
name: LOLCAT
|
114
|
+
native: LOLCAT
|
115
|
+
encoding: UTF-8
|
72
116
|
feature: OH HAI
|
117
|
+
background: B4
|
73
118
|
scenario: MISHUN
|
74
|
-
|
75
|
-
|
76
|
-
given:
|
119
|
+
scenario_outline: MISHUN SRSLY
|
120
|
+
examples: EXAMPLZ
|
121
|
+
given: I CAN HAZ
|
77
122
|
when: WEN
|
78
123
|
then: DEN
|
79
124
|
and: AN
|
80
125
|
but: BUT
|
81
|
-
# Texan
|
82
126
|
"en-tx":
|
127
|
+
name: Texan
|
128
|
+
native: Texan
|
129
|
+
encoding: UTF-8
|
83
130
|
feature: Feature
|
131
|
+
background: Background
|
84
132
|
scenario: Scenario
|
85
|
-
|
86
|
-
|
133
|
+
scenario_outline: All y'all
|
134
|
+
examples: Examples
|
87
135
|
given: Given y'all
|
88
136
|
when: When y'all
|
89
137
|
then: Then y'all
|
90
138
|
and: And y'all
|
91
139
|
but: But y'all
|
92
|
-
# Spanish
|
93
140
|
"es":
|
141
|
+
name: Spanish
|
142
|
+
native: español
|
143
|
+
encoding: UTF-8
|
144
|
+
background: Antecedentes
|
94
145
|
feature: Característica
|
95
146
|
scenario: Escenario
|
96
|
-
|
97
|
-
|
147
|
+
scenario_outline: Esquema del escenario
|
148
|
+
examples: Ejemplos
|
98
149
|
given: Dado
|
99
150
|
when: Cuando
|
100
151
|
then: Entonces
|
101
152
|
and: Y
|
102
153
|
but: Pero
|
103
|
-
# Estonian
|
104
154
|
"et":
|
155
|
+
name: Estonian
|
156
|
+
native: eesti keel
|
157
|
+
encoding: UTF-8
|
105
158
|
feature: Omadus
|
159
|
+
background: Taust
|
106
160
|
scenario: Stsenaarium
|
107
|
-
|
161
|
+
scenario_outline: Raamstsenaarium
|
162
|
+
examples: Juhtumid
|
108
163
|
given: Eeldades
|
109
164
|
when: Kui
|
110
165
|
then: Siis
|
111
166
|
and: Ja
|
112
167
|
but: Kuid
|
113
|
-
|
168
|
+
"fi":
|
169
|
+
name: Finnish
|
170
|
+
native: suomi
|
171
|
+
encoding: UTF-8
|
172
|
+
feature: Ominaisuus
|
173
|
+
background: Tausta
|
174
|
+
scenario: Tapaus
|
175
|
+
scenario_outline: Tapausaihio
|
176
|
+
examples: Tapaukset
|
177
|
+
given: Oletetaan
|
178
|
+
when: Kun
|
179
|
+
then: Niin
|
180
|
+
and: Ja
|
181
|
+
but: Mutta
|
114
182
|
"fr":
|
183
|
+
name: French
|
184
|
+
native: français
|
185
|
+
encoding: UTF-8
|
115
186
|
feature: Fonctionnalité
|
187
|
+
background: Contexte
|
116
188
|
scenario: Scénario
|
117
|
-
|
118
|
-
|
119
|
-
given:
|
189
|
+
scenario_outline: Plan du Scénario
|
190
|
+
examples: Exemples
|
191
|
+
given: Soit
|
120
192
|
when: Lorsque
|
121
193
|
then: Alors
|
122
194
|
and: Et
|
123
195
|
but: Mais
|
124
|
-
# Malay
|
125
196
|
"id":
|
197
|
+
name: Indonesian
|
198
|
+
native: Bahasa Indonesia
|
199
|
+
encoding: UTF-8
|
126
200
|
feature: Fitur
|
127
201
|
scenario: Skenario
|
128
|
-
|
129
|
-
|
202
|
+
scenario_outline: Skenario konsep
|
203
|
+
examples: Contoh
|
130
204
|
given: Dengan
|
131
205
|
when: Ketika
|
132
206
|
then: Maka
|
133
207
|
and: Dan
|
134
208
|
but: Tapi
|
135
|
-
# Italian
|
136
209
|
"it":
|
210
|
+
name: Italian
|
211
|
+
native: italiano
|
212
|
+
encoding: UTF-8
|
137
213
|
feature: Funzionalità
|
138
214
|
scenario: Scenario
|
139
215
|
more_examples: Più esempi
|
140
|
-
given_scenario: DatoLoScenario
|
141
216
|
given: Dato
|
142
217
|
when: Quando
|
143
218
|
then: Allora
|
144
219
|
and: E
|
145
220
|
but: Ma
|
146
|
-
# Japanese
|
147
221
|
"ja":
|
222
|
+
name: Japanese
|
223
|
+
native: 日本語
|
224
|
+
encoding: UTF-8
|
148
225
|
feature: フィーチャ
|
226
|
+
background: 背景
|
149
227
|
scenario: シナリオ
|
150
|
-
|
151
|
-
|
228
|
+
scenario_outline: シナリオテンプレート|テンプレ|シナリオテンプレ
|
229
|
+
examples: 例|サンプル
|
152
230
|
given: 前提
|
153
231
|
when: もし
|
154
232
|
then: ならば
|
155
233
|
and: かつ
|
156
234
|
but: しかし
|
157
|
-
# Lithuanian
|
158
235
|
"lt":
|
236
|
+
name: Lithuanian
|
237
|
+
native: lietuvių kalba
|
238
|
+
encoding: UTF-8
|
159
239
|
feature: Sąvybė
|
160
240
|
scenario: Scenarijus
|
161
|
-
|
162
|
-
given_scenario: DuotasScenarijus
|
241
|
+
examples: Pavyzdžių
|
163
242
|
given: Duota
|
164
243
|
when: Kai
|
165
244
|
then: Tada
|
166
245
|
and: Ir
|
167
246
|
but: Bet
|
168
|
-
# Dutch
|
169
247
|
"nl":
|
248
|
+
name: Dutch
|
249
|
+
native: Nederlands
|
250
|
+
encoding: UTF-8
|
170
251
|
feature: Functionaliteit
|
171
252
|
scenario: Scenario
|
172
|
-
more_examples: Meer voorbeelden
|
173
|
-
given_scenario: GegevenScenario
|
174
253
|
given: Gegeven
|
175
254
|
when: Als
|
176
255
|
then: Dan
|
177
256
|
and: En
|
178
257
|
but: Maar
|
179
|
-
# Norwegian
|
180
258
|
"no":
|
259
|
+
name: Norwegian
|
260
|
+
native: norsk
|
261
|
+
encoding: UTF-8
|
181
262
|
feature: Egenskap
|
263
|
+
background: Bakgrunn
|
182
264
|
scenario: Scenario
|
183
|
-
|
184
|
-
|
265
|
+
scenario_outline: Abstrakt Scenario
|
266
|
+
examples: Eksempler
|
185
267
|
given: Gitt
|
186
268
|
when: Når
|
187
269
|
then: Så
|
188
270
|
and: Og
|
189
271
|
but: Men
|
190
|
-
# Polish
|
191
272
|
"pl":
|
273
|
+
name: Polish
|
274
|
+
native: polski
|
275
|
+
encoding: UTF-8
|
192
276
|
feature: Właściwość
|
193
277
|
scenario: Scenariusz
|
194
|
-
more_examples: WięcejPrzykładów
|
195
|
-
given_scenario: DanyScenariusz
|
196
278
|
given: Dane
|
197
279
|
when: Jeżeli
|
198
280
|
then: Wtedy
|
199
281
|
and: Oraz
|
200
282
|
but: Ale
|
201
|
-
# Portuguese
|
202
283
|
"pt":
|
284
|
+
name: Portuguese
|
285
|
+
native: português
|
286
|
+
encoding: UTF-8
|
287
|
+
background: Contexto
|
203
288
|
feature: Característica
|
204
289
|
scenario: Cenário
|
205
|
-
|
290
|
+
scenario_outline: Esquema do Cenário
|
291
|
+
examples: Exemplos
|
206
292
|
given: Dado
|
207
293
|
when: Quando
|
208
294
|
then: Então
|
209
295
|
and: E
|
210
296
|
but: Mas
|
211
|
-
# Romanian (without diacritics - the commonly used)
|
212
297
|
"ro":
|
298
|
+
name: Romanian
|
299
|
+
native: română
|
300
|
+
encoding: UTF-8
|
213
301
|
feature: Functionalitate
|
214
302
|
scenario: Scenariu
|
215
|
-
more_examples: Mai multe exemple
|
216
|
-
given_scenario: ScenariuDat
|
217
303
|
given: Daca
|
218
304
|
when: Cand
|
219
305
|
then: Atunci
|
220
306
|
and: Si
|
221
307
|
but: Dar
|
222
|
-
# Romanian (with diacritics - not commonly used)
|
223
308
|
"ro2":
|
309
|
+
name: Romanian (diacritical)
|
310
|
+
native: română (diacritical)
|
311
|
+
encoding: UTF-8
|
224
312
|
feature: Funcționalitate
|
225
313
|
scenario: Scenariu
|
226
|
-
more_examples: Mai multe exemple
|
227
|
-
given_scenario: ScenariuDat
|
228
314
|
given: Dacă
|
229
315
|
when: Când
|
230
316
|
then: Atunci
|
231
317
|
and: Și
|
232
318
|
but: Dar
|
233
|
-
# Russian
|
234
319
|
"ru":
|
320
|
+
name: Russian
|
321
|
+
native: русский
|
322
|
+
encoding: UTF-8
|
235
323
|
feature: Функционал
|
324
|
+
background: Предыстория
|
236
325
|
scenario: Сценарий
|
237
|
-
|
238
|
-
|
326
|
+
scenario_outline: Структура сценария
|
327
|
+
examples: Значения
|
328
|
+
given: Допустим
|
239
329
|
when: Если
|
240
330
|
then: То
|
241
|
-
and:
|
242
|
-
but:
|
243
|
-
# Swedish
|
331
|
+
and: И|К тому же
|
332
|
+
but: Но|А
|
244
333
|
"se":
|
334
|
+
name: Swedish
|
335
|
+
native: Svenska
|
336
|
+
encoding: UTF-8
|
245
337
|
feature: Egenskap
|
338
|
+
background: Bakgrund
|
246
339
|
scenario: Scenario
|
247
|
-
|
340
|
+
scenario_outline: Abstrakt Scenario
|
341
|
+
examples: Exempel
|
248
342
|
given: Givet
|
249
343
|
when: När
|
250
344
|
then: Så
|
251
345
|
and: Och
|
252
346
|
but: Men
|
253
|
-
# Chinese simplified
|
254
347
|
"zh-CN":
|
348
|
+
name: Chinese simplified
|
349
|
+
native: 简体中文
|
350
|
+
encoding: UTF-8
|
255
351
|
feature: 功能
|
352
|
+
background: 背景
|
256
353
|
scenario: 场景
|
257
|
-
|
354
|
+
scenario_outline: 场景大纲
|
355
|
+
examples: 例子
|
258
356
|
given: 假如
|
259
357
|
when: 当
|
260
358
|
then: 那么
|
261
359
|
and: 而且
|
262
360
|
but: 但是
|
263
|
-
|
361
|
+
"zh-TW":
|
362
|
+
name: Chinese traditional
|
363
|
+
native: 繁體中文
|
364
|
+
encoding: UTF-8
|
365
|
+
feature: 功能
|
366
|
+
background: 背景
|
367
|
+
scenario: 場景|劇本
|
368
|
+
scenario_outline: 場景大綱|劇本大綱
|
369
|
+
examples: 例子
|
370
|
+
given: 假設
|
371
|
+
when: 當
|
372
|
+
then: 那麼
|
373
|
+
and: 而且|並且
|
374
|
+
but: 但是
|
264
375
|
"ko":
|
376
|
+
name: Korean
|
377
|
+
native: 한국어
|
378
|
+
encoding: UTF-8
|
379
|
+
background: 배경
|
265
380
|
feature: 기능
|
266
|
-
scenario:
|
381
|
+
scenario: 시나리오
|
382
|
+
scenario_outline: 시나리오 개요
|
383
|
+
examples: 예
|
267
384
|
more_examples: 다른 예
|
268
|
-
given_scenario: 주어진 예
|
269
385
|
given: 조건
|
270
386
|
when: 만일
|
271
387
|
then: 그러면
|
272
388
|
and: 그리고
|
273
|
-
but: 하지만
|
389
|
+
but: 하지만
|