square-cucumber 0.3.12.2
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 +830 -0
- data/License.txt +20 -0
- data/Manifest.txt +410 -0
- data/README.txt +4 -0
- data/Rakefile +9 -0
- data/bin/cucumber +17 -0
- data/config/hoe.rb +76 -0
- data/config/requirements.rb +15 -0
- data/cucumber.yml +2 -0
- data/examples/cs/README.textile +1 -0
- data/examples/cs/Rakefile +12 -0
- data/examples/cs/compile.bat +1 -0
- data/examples/cs/features/addition.feature +16 -0
- data/examples/cs/features/step_definitons/calculator_steps.rb +19 -0
- data/examples/cs/src/demo/Calculator.cs +20 -0
- data/examples/dos_line_endings/Rakefile +6 -0
- data/examples/dos_line_endings/features/dos_line_endings.feature +9 -0
- data/examples/i18n/README.textile +18 -0
- data/examples/i18n/Rakefile +30 -0
- data/examples/i18n/ar/Rakefile +6 -0
- data/examples/i18n/ar/features/addition.feature +17 -0
- data/examples/i18n/ar/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/ar/lib/calculator.rb +11 -0
- data/examples/i18n/bg/Rakefile +6 -0
- data/examples/i18n/bg/features/addition.feature +12 -0
- data/examples/i18n/bg/features/consecutive_calculations.feature +19 -0
- data/examples/i18n/bg/features/division.feature +17 -0
- data/examples/i18n/bg/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/bg/features/support/env.rb +6 -0
- data/examples/i18n/bg/features/support/world.rb +8 -0
- data/examples/i18n/bg/lib/calculator.rb +24 -0
- data/examples/i18n/cat/Rakefile +6 -0
- data/examples/i18n/cat/features/step_definitons/calculator_steps.rb +21 -0
- data/examples/i18n/cat/features/suma.feature +17 -0
- data/examples/i18n/cat/lib/calculadora.rb +16 -0
- data/examples/i18n/da/Rakefile +6 -0
- data/examples/i18n/da/features/step_definitons/kalkulator_steps.rb +24 -0
- data/examples/i18n/da/features/summering.feature +18 -0
- data/examples/i18n/da/lib/kalkulator.rb +11 -0
- data/examples/i18n/de/Rakefile +6 -0
- data/examples/i18n/de/features/addition.feature +17 -0
- data/examples/i18n/de/features/division.feature +10 -0
- data/examples/i18n/de/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/de/lib/calculator.rb +14 -0
- 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/Rakefile +6 -0
- data/examples/i18n/en/features/addition.feature +17 -0
- data/examples/i18n/en/features/division.feature +10 -0
- data/examples/i18n/en/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/en/lib/calculator.rb +14 -0
- data/examples/i18n/es/Rakefile +6 -0
- data/examples/i18n/es/features/adicion.feature +17 -0
- data/examples/i18n/es/features/step_definitons/calculador_steps.rb +21 -0
- data/examples/i18n/es/lib/calculador.rb +14 -0
- data/examples/i18n/et/Rakefile +6 -0
- data/examples/i18n/et/features/jagamine.feature +10 -0
- data/examples/i18n/et/features/liitmine.feature +17 -0
- data/examples/i18n/et/features/step_definitions/kalkulaator_steps.rb +24 -0
- data/examples/i18n/et/lib/kalkulaator.rb +14 -0
- data/examples/i18n/fi/Rakefile +6 -0
- data/examples/i18n/fi/features/jakolasku.feature +10 -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/Rakefile +6 -0
- data/examples/i18n/fr/features/addition.feature +18 -0
- data/examples/i18n/fr/features/step_definitions/calculatrice_steps.rb +25 -0
- data/examples/i18n/fr/lib/calculatrice.rb +10 -0
- data/examples/i18n/he/Rakefile +6 -0
- data/examples/i18n/he/features/addition.feature +17 -0
- data/examples/i18n/he/features/division.feature +10 -0
- data/examples/i18n/he/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/he/lib/calculator.rb +14 -0
- data/examples/i18n/hu/Rakefile +6 -0
- data/examples/i18n/hu/features/addition.feature +17 -0
- data/examples/i18n/hu/features/division.feature +10 -0
- data/examples/i18n/hu/features/step_definitons/calculator_steps.rb +25 -0
- data/examples/i18n/hu/lib/calculator.rb +14 -0
- data/examples/i18n/id/Rakefile +6 -0
- data/examples/i18n/id/features/addition.feature +17 -0
- data/examples/i18n/id/features/division.feature +10 -0
- data/examples/i18n/id/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/id/lib/calculator.rb +14 -0
- data/examples/i18n/it/Rakefile +6 -0
- data/examples/i18n/it/features/somma.feature +11 -0
- data/examples/i18n/it/features/step_definitons/calcolatrice_steps.rb +24 -0
- data/examples/i18n/it/lib/calcolatrice.rb +11 -0
- data/examples/i18n/ja/Rakefile +6 -0
- data/examples/i18n/ja/features/addition.feature +17 -0
- data/examples/i18n/ja/features/division.feature +10 -0
- data/examples/i18n/ja/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/ja/lib/calculator.rb +14 -0
- data/examples/i18n/ko/Rakefile +6 -0
- data/examples/i18n/ko/features/addition.feature +17 -0
- data/examples/i18n/ko/features/division.feature +11 -0
- data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/ko/lib/calculator.rb +14 -0
- data/examples/i18n/lt/Rakefile +6 -0
- data/examples/i18n/lt/features/addition.feature +17 -0
- data/examples/i18n/lt/features/division.feature +10 -0
- data/examples/i18n/lt/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/lt/lib/calculator.rb +14 -0
- data/examples/i18n/lv/Rakefile +6 -0
- data/examples/i18n/lv/features/addition.feature +17 -0
- data/examples/i18n/lv/features/division.feature +10 -0
- data/examples/i18n/lv/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/lv/lib/calculator.rb +14 -0
- data/examples/i18n/no/Rakefile +6 -0
- data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +17 -0
- data/examples/i18n/no/features/summering.feature +19 -0
- data/examples/i18n/no/features/support/env.rb +6 -0
- data/examples/i18n/no/lib/kalkulator.rb +11 -0
- data/examples/i18n/pl/Rakefile +6 -0
- data/examples/i18n/pl/features/addition.feature +17 -0
- data/examples/i18n/pl/features/division.feature +10 -0
- data/examples/i18n/pl/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/pl/features/support/env.rb +6 -0
- data/examples/i18n/pl/lib/calculator.rb +14 -0
- data/examples/i18n/pt/Rakefile +6 -0
- data/examples/i18n/pt/features/adicao.feature +11 -0
- data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +20 -0
- data/examples/i18n/pt/features/support/env.rb +6 -0
- data/examples/i18n/pt/lib/calculadora.rb +10 -0
- data/examples/i18n/ro/Rakefile +6 -0
- data/examples/i18n/ro/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/ro/features/suma.feature +11 -0
- data/examples/i18n/ro/lib/calculator.rb +11 -0
- data/examples/i18n/ru/Rakefile +6 -0
- data/examples/i18n/ru/features/addition.feature +11 -0
- data/examples/i18n/ru/features/consecutive_calculations.feature +17 -0
- data/examples/i18n/ru/features/division.feature +16 -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 +8 -0
- data/examples/i18n/ru/lib/calculator.rb +24 -0
- data/examples/i18n/se/Rakefile +6 -0
- data/examples/i18n/se/features/step_definitons/kalkulator_steps.rb +24 -0
- data/examples/i18n/se/features/summering.feature +18 -0
- data/examples/i18n/se/lib/kalkulator.rb +11 -0
- data/examples/i18n/sk/Rakefile +6 -0
- data/examples/i18n/sk/features/addition.feature +17 -0
- data/examples/i18n/sk/features/division.feature +10 -0
- data/examples/i18n/sk/features/step_definitons/calculator_steps.rb +24 -0
- data/examples/i18n/sk/lib/calculator.rb +14 -0
- data/examples/i18n/zh-CN/Rakefile +6 -0
- data/examples/i18n/zh-CN/features/addition.feature +18 -0
- data/examples/i18n/zh-CN/features/step_definitons/calculator_steps.rb +26 -0
- data/examples/i18n/zh-CN/lib/calculator.rb +10 -0
- data/examples/i18n/zh-TW/Rakefile +6 -0
- data/examples/i18n/zh-TW/features/addition.feature +17 -0
- data/examples/i18n/zh-TW/features/division.feature +11 -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/README.textile +18 -0
- data/examples/java/build.xml +33 -0
- data/examples/java/features/hello.feature +11 -0
- data/examples/java/features/step_definitons/hello_steps.rb +23 -0
- data/examples/java/features/step_definitons/tree_steps.rb +14 -0
- data/examples/java/features/tree.feature +9 -0
- data/examples/java/src/cucumber/demo/Hello.java +16 -0
- data/examples/junit/features/one_passing_one_failing.feature +8 -0
- data/examples/junit/features/pending.feature +5 -0
- data/examples/junit/features/step_definitions/steps.rb +11 -0
- data/examples/pure_java/README.textile +5 -0
- data/examples/selenium/Rakefile +6 -0
- data/examples/selenium/features/search.feature +9 -0
- data/examples/selenium/features/step_definitons/search_steps.rb +13 -0
- data/examples/selenium/features/support/env.rb +19 -0
- data/examples/selenium_webrat/Rakefile +6 -0
- data/examples/selenium_webrat/config.ru +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 +45 -0
- data/examples/self_test/README.textile +6 -0
- data/examples/self_test/Rakefile +6 -0
- data/examples/self_test/features/background/background_tagged_before_on_outline.feature +12 -0
- data/examples/self_test/features/background/background_with_name.feature +7 -0
- data/examples/self_test/features/background/failing_background.feature +12 -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/multiline_name.feature +27 -0
- data/examples/self_test/features/outline_sample.feature +15 -0
- data/examples/self_test/features/sample.feature +21 -0
- data/examples/self_test/features/search_sample.feature +32 -0
- data/examples/self_test/features/step_definitions/sample_steps.rb +81 -0
- data/examples/self_test/features/support/env.rb +17 -0
- data/examples/self_test/features/tons_of_cukes.feature +52 -0
- data/examples/self_test/features/undefined_multiline_args.feature +12 -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 +28 -0
- data/examples/sinatra/views/add.erb +5 -0
- data/examples/sinatra/views/layout.erb +8 -0
- data/examples/test_unit/Rakefile +6 -0
- data/examples/test_unit/features/step_definitions/test_unit_steps.rb +23 -0
- data/examples/test_unit/features/test_unit.feature +9 -0
- data/examples/tickets/Rakefile +16 -0
- 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/229/tagged_hooks.feature +8 -0
- data/examples/tickets/features/229/tagged_hooks.rb +14 -0
- data/examples/tickets/features/236.feature +13 -0
- data/examples/tickets/features/241.feature +13 -0
- data/examples/tickets/features/246.feature +4 -0
- data/examples/tickets/features/248.feature +11 -0
- data/examples/tickets/features/270/back.feature +14 -0
- data/examples/tickets/features/270/back.steps.rb +14 -0
- data/examples/tickets/features/272/hooks.feature +26 -0
- data/examples/tickets/features/272/hooks_steps.rb +53 -0
- data/examples/tickets/features/279/py_string_indent.feature +25 -0
- data/examples/tickets/features/279/py_string_indent.steps.rb +12 -0
- data/examples/tickets/features/279/wrong.feature_ +11 -0
- data/examples/tickets/features/301/filter_background_tagged_hooks.feature +6 -0
- data/examples/tickets/features/301/filter_background_tagged_hooks_steps.rb +12 -0
- data/examples/tickets/features/306/only_background.feature +4 -0
- data/examples/tickets/features/lib/eatting_machine.rb +18 -0
- data/examples/tickets/features/lib/pantry.rb +20 -0
- data/examples/tickets/features/scenario_outline.feature +95 -0
- data/examples/tickets/features/step_definitons/246_steps.rb +3 -0
- data/examples/tickets/features/step_definitons/248_steps.rb +15 -0
- data/examples/tickets/features/step_definitons/scenario_outline_steps.rb +42 -0
- data/examples/tickets/features/step_definitons/tickets_steps.rb +66 -0
- data/examples/tickets/features/tickets.feature +28 -0
- data/examples/watir/README.textile +16 -0
- data/examples/watir/Rakefile +6 -0
- data/examples/watir/features/search.feature +12 -0
- data/examples/watir/features/step_definitons/search_steps.rb +22 -0
- data/examples/watir/features/support/env.rb +32 -0
- data/features/after_block_exceptions.feature +102 -0
- data/features/after_step_block_exceptions.feature +104 -0
- data/features/background.feature +311 -0
- data/features/bug_371.feature +32 -0
- data/features/cucumber_cli.feature +549 -0
- data/features/cucumber_cli_diff_disabled.feature +53 -0
- data/features/cucumber_cli_outlines.feature +109 -0
- data/features/custom_formatter.feature +11 -0
- data/features/drb_server_integration.feature +115 -0
- data/features/exclude_files.feature +20 -0
- data/features/expand.feature +49 -0
- data/features/html_formatter.feature +7 -0
- data/features/html_formatter/a.html +185 -0
- data/features/junit_formatter.feature +71 -0
- data/features/language_from_header.feature +30 -0
- data/features/multiline_names.feature +43 -0
- data/features/rake_task.feature +150 -0
- data/features/report_called_undefined_steps.feature +35 -0
- data/features/snippet.feature +22 -0
- data/features/step_definitions/cucumber_steps.rb +130 -0
- data/features/step_definitions/extra_steps.rb +2 -0
- data/features/support/env.rb +120 -0
- data/features/usage.feature +126 -0
- data/features/work_in_progress.feature +151 -0
- data/gem_tasks/deployment.rake +11 -0
- data/gem_tasks/environment.rake +7 -0
- data/gem_tasks/features.rake +10 -0
- data/gem_tasks/fix_cr_lf.rake +10 -0
- data/gem_tasks/flog.rake +4 -0
- data/gem_tasks/gemspec.rake +10 -0
- data/gem_tasks/rspec.rake +45 -0
- data/gem_tasks/sass.rake +4 -0
- data/gem_tasks/yard.rake +8 -0
- data/lib/autotest/cucumber.rb +6 -0
- data/lib/autotest/cucumber_mixin.rb +125 -0
- data/lib/autotest/cucumber_rails.rb +6 -0
- data/lib/autotest/cucumber_rails_rspec.rb +6 -0
- data/lib/autotest/cucumber_rspec.rb +6 -0
- data/lib/autotest/discover.rb +9 -0
- data/lib/cucumber.rb +11 -0
- data/lib/cucumber/ast.rb +29 -0
- data/lib/cucumber/ast/background.rb +62 -0
- data/lib/cucumber/ast/comment.rb +30 -0
- data/lib/cucumber/ast/examples.rb +26 -0
- data/lib/cucumber/ast/feature.rb +58 -0
- data/lib/cucumber/ast/feature_element.rb +57 -0
- data/lib/cucumber/ast/features.rb +30 -0
- data/lib/cucumber/ast/outline_table.rb +143 -0
- data/lib/cucumber/ast/py_string.rb +57 -0
- data/lib/cucumber/ast/scenario.rb +83 -0
- data/lib/cucumber/ast/scenario_outline.rb +93 -0
- data/lib/cucumber/ast/step.rb +112 -0
- data/lib/cucumber/ast/step_collection.rb +75 -0
- data/lib/cucumber/ast/step_invocation.rb +136 -0
- data/lib/cucumber/ast/table.rb +334 -0
- data/lib/cucumber/ast/tags.rb +33 -0
- data/lib/cucumber/ast/visitor.rb +116 -0
- data/lib/cucumber/broadcaster.rb +13 -0
- data/lib/cucumber/cli/configuration.rb +425 -0
- data/lib/cucumber/cli/drb_client.rb +20 -0
- data/lib/cucumber/cli/language_help_formatter.rb +59 -0
- data/lib/cucumber/cli/main.rb +136 -0
- data/lib/cucumber/core_ext/exception.rb +53 -0
- data/lib/cucumber/core_ext/instance_exec.rb +67 -0
- data/lib/cucumber/core_ext/proc.rb +29 -0
- data/lib/cucumber/core_ext/string.rb +48 -0
- data/lib/cucumber/feature_file.rb +47 -0
- data/lib/cucumber/filter.rb +50 -0
- data/lib/cucumber/formatter/ansicolor.rb +110 -0
- data/lib/cucumber/formatter/color_io.rb +23 -0
- data/lib/cucumber/formatter/console.rb +149 -0
- data/lib/cucumber/formatter/cucumber.css +132 -0
- data/lib/cucumber/formatter/cucumber.sass +139 -0
- data/lib/cucumber/formatter/duration.rb +10 -0
- data/lib/cucumber/formatter/html.rb +258 -0
- data/lib/cucumber/formatter/junit.rb +75 -0
- data/lib/cucumber/formatter/pretty.rb +188 -0
- data/lib/cucumber/formatter/profile.rb +77 -0
- data/lib/cucumber/formatter/progress.rb +60 -0
- data/lib/cucumber/formatter/rerun.rb +44 -0
- data/lib/cucumber/formatter/tag_cloud.rb +28 -0
- data/lib/cucumber/formatter/unicode.rb +35 -0
- data/lib/cucumber/formatter/usage.rb +85 -0
- data/lib/cucumber/formatters/unicode.rb +7 -0
- data/lib/cucumber/languages.yml +532 -0
- data/lib/cucumber/parser.rb +6 -0
- data/lib/cucumber/parser/feature.rb +1787 -0
- data/lib/cucumber/parser/feature.tt +324 -0
- data/lib/cucumber/parser/i18n.tt +42 -0
- data/lib/cucumber/parser/i18n/language.rb +80 -0
- data/lib/cucumber/parser/table.rb +414 -0
- data/lib/cucumber/parser/table.tt +71 -0
- data/lib/cucumber/parser/treetop_ext.rb +52 -0
- data/lib/cucumber/platform.rb +23 -0
- data/lib/cucumber/rails/rspec.rb +10 -0
- data/lib/cucumber/rails/world.rb +99 -0
- data/lib/cucumber/rake/task.rb +233 -0
- data/lib/cucumber/rspec_neuter.rb +23 -0
- data/lib/cucumber/step_definition.rb +122 -0
- data/lib/cucumber/step_match.rb +61 -0
- data/lib/cucumber/step_mother.rb +362 -0
- data/lib/cucumber/version.rb +10 -0
- data/lib/cucumber/webrat/mechanize_world.rb +82 -0
- data/lib/cucumber/world.rb +53 -0
- data/rails_generators/cucumber/USAGE +11 -0
- data/rails_generators/cucumber/cucumber_generator.rb +66 -0
- data/rails_generators/cucumber/templates/cucumber +8 -0
- data/rails_generators/cucumber/templates/cucumber.rake +20 -0
- data/rails_generators/cucumber/templates/cucumber_environment.rb +23 -0
- data/rails_generators/cucumber/templates/env.rb +26 -0
- data/rails_generators/cucumber/templates/paths.rb +27 -0
- data/rails_generators/cucumber/templates/spork_env.rb +36 -0
- data/rails_generators/cucumber/templates/webrat_steps.rb +147 -0
- data/rails_generators/feature/USAGE +12 -0
- data/rails_generators/feature/feature_generator.rb +40 -0
- data/rails_generators/feature/templates/feature.erb +31 -0
- data/rails_generators/feature/templates/steps.erb +20 -0
- data/spec/cucumber/ast/background_spec.rb +50 -0
- data/spec/cucumber/ast/feature_element_spec.rb +40 -0
- data/spec/cucumber/ast/feature_factory.rb +63 -0
- data/spec/cucumber/ast/feature_spec.rb +38 -0
- data/spec/cucumber/ast/py_string_spec.rb +51 -0
- data/spec/cucumber/ast/scenario_outline_spec.rb +67 -0
- data/spec/cucumber/ast/scenario_spec.rb +38 -0
- data/spec/cucumber/ast/step_collection_spec.rb +17 -0
- data/spec/cucumber/ast/step_spec.rb +66 -0
- data/spec/cucumber/ast/table_spec.rb +186 -0
- data/spec/cucumber/ast/visitor_spec.rb +27 -0
- data/spec/cucumber/broadcaster_spec.rb +15 -0
- data/spec/cucumber/cli/configuration_spec.rb +396 -0
- data/spec/cucumber/cli/drb_client_spec.rb +43 -0
- data/spec/cucumber/cli/main_spec.rb +140 -0
- data/spec/cucumber/core_ext/proc_spec.rb +54 -0
- data/spec/cucumber/core_ext/string_spec.rb +42 -0
- data/spec/cucumber/formatter/ansicolor_spec.rb +35 -0
- data/spec/cucumber/formatter/color_io_spec.rb +27 -0
- data/spec/cucumber/formatter/duration_spec.rb +22 -0
- data/spec/cucumber/formatter/progress_spec.rb +36 -0
- data/spec/cucumber/parser/feature_parser_spec.rb +387 -0
- data/spec/cucumber/parser/table_parser_spec.rb +48 -0
- data/spec/cucumber/rails/stubs/mini_rails.rb +18 -0
- data/spec/cucumber/rails/stubs/test_help.rb +1 -0
- data/spec/cucumber/rails/world_spec.rb +11 -0
- data/spec/cucumber/sell_cucumbers.feature +19 -0
- data/spec/cucumber/step_definition_spec.rb +101 -0
- data/spec/cucumber/step_mother_spec.rb +155 -0
- data/spec/cucumber/treetop_parser/empty_feature.feature +4 -0
- data/spec/cucumber/treetop_parser/empty_scenario.feature +9 -0
- data/spec/cucumber/treetop_parser/empty_scenario_outline.feature +3 -0
- data/spec/cucumber/treetop_parser/fit_scenario.feature +8 -0
- data/spec/cucumber/treetop_parser/given_scenario.feature +9 -0
- data/spec/cucumber/treetop_parser/invalid_scenario_outlines.feature +7 -0
- data/spec/cucumber/treetop_parser/multiline_steps.feature +17 -0
- data/spec/cucumber/treetop_parser/multiple_tables.feature +27 -0
- data/spec/cucumber/treetop_parser/scenario_outline.feature +16 -0
- data/spec/cucumber/treetop_parser/spaces.feature +12 -0
- data/spec/cucumber/treetop_parser/test_dos.feature +25 -0
- data/spec/cucumber/treetop_parser/with_comments.feature +10 -0
- data/spec/cucumber/treetop_parser/with_tags.feature +18 -0
- data/spec/cucumber/world/pending_spec.rb +47 -0
- data/spec/spec.opts +2 -0
- data/spec/spec_helper.rb +13 -0
- metadata +504 -0
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
Feature: JUnit output formatter
|
|
2
|
+
In order for developers to create test reports with ant
|
|
3
|
+
Cucumber should be able to output JUnit xml files
|
|
4
|
+
|
|
5
|
+
Background:
|
|
6
|
+
Given I am in junit
|
|
7
|
+
And the tmp directory is empty
|
|
8
|
+
|
|
9
|
+
@mri186 @diffxml
|
|
10
|
+
Scenario: one feature, one passing scenario, one failing scenario
|
|
11
|
+
When I run cucumber --format junit --out tmp/ features/one_passing_one_failing.feature
|
|
12
|
+
Then it should fail with
|
|
13
|
+
"""
|
|
14
|
+
|
|
15
|
+
"""
|
|
16
|
+
And "examples/junit/tmp/TEST-one_passing_one_failing.xml" should contain XML
|
|
17
|
+
"""
|
|
18
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
19
|
+
<testsuite errors="0" tests="2" name="One passing scenario, one failing scenario" failures="1">
|
|
20
|
+
<testcase name="Given a passing scenario" classname="One passing scenario, one failing scenario.Passing">
|
|
21
|
+
</testcase>
|
|
22
|
+
<testcase name="Given a failing scenario" classname="One passing scenario, one failing scenario.Failing">
|
|
23
|
+
<failure message="Given a failing scenario">
|
|
24
|
+
(RuntimeError)
|
|
25
|
+
./features/step_definitions/steps.rb:6:in `/a failing scenario/'
|
|
26
|
+
features/one_passing_one_failing.feature:7:in `Given a failing scenario' </failure>
|
|
27
|
+
</testcase>
|
|
28
|
+
</testsuite>
|
|
29
|
+
|
|
30
|
+
"""
|
|
31
|
+
|
|
32
|
+
@mri186 @diffxml
|
|
33
|
+
Scenario: pending step
|
|
34
|
+
When I run cucumber --format junit --out tmp/ features/pending.feature
|
|
35
|
+
Then it should pass with
|
|
36
|
+
"""
|
|
37
|
+
|
|
38
|
+
"""
|
|
39
|
+
And "examples/junit/tmp/TEST-pending.xml" should contain XML
|
|
40
|
+
"""
|
|
41
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
42
|
+
<testsuite errors="0" tests="1" name="Pending step" failures="1">
|
|
43
|
+
<testcase name="Given a pending step" classname="Pending step.Pending">
|
|
44
|
+
<failure message="Given a pending step">
|
|
45
|
+
TODO (Cucumber::Pending)
|
|
46
|
+
./features/step_definitions/steps.rb:10:in `/a pending step/'
|
|
47
|
+
features/pending.feature:4:in `Given a pending step' </failure>
|
|
48
|
+
</testcase>
|
|
49
|
+
</testsuite>
|
|
50
|
+
|
|
51
|
+
"""
|
|
52
|
+
|
|
53
|
+
Scenario: run all features
|
|
54
|
+
When I run cucumber --format junit --out tmp/ features
|
|
55
|
+
Then it should fail with
|
|
56
|
+
"""
|
|
57
|
+
|
|
58
|
+
"""
|
|
59
|
+
And "examples/junit/tmp/TEST-one_passing_one_failing.xml" should exist
|
|
60
|
+
And "examples/junit/tmp/TEST-pending.xml" should exist
|
|
61
|
+
|
|
62
|
+
Scenario: show correct error message if no --out is passed
|
|
63
|
+
When I run cucumber --format junit features
|
|
64
|
+
Then STDERR should not match
|
|
65
|
+
"""
|
|
66
|
+
can't convert .* into String \(TypeError\)
|
|
67
|
+
"""
|
|
68
|
+
And STDERR should match
|
|
69
|
+
"""
|
|
70
|
+
You \*must\* specify \-\-out DIR for the junit formatter
|
|
71
|
+
"""
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
Feature: Language from header
|
|
2
|
+
In order to simplify command line and
|
|
3
|
+
settings in IDEs, Cucumber should pick
|
|
4
|
+
up parser language from a header.
|
|
5
|
+
|
|
6
|
+
Scenario: LOLCAT
|
|
7
|
+
Given a standard Cucumber project directory structure
|
|
8
|
+
And a file named "features/lolcat.feature" with:
|
|
9
|
+
"""
|
|
10
|
+
# language: en-lol
|
|
11
|
+
OH HAI: STUFFING
|
|
12
|
+
B4: HUNGRY
|
|
13
|
+
MISHUN: CUKES
|
|
14
|
+
DEN KTHXBAI
|
|
15
|
+
"""
|
|
16
|
+
When I run cucumber -i features/lolcat.feature
|
|
17
|
+
Then it should pass with
|
|
18
|
+
"""
|
|
19
|
+
# language: en-lol
|
|
20
|
+
OH HAI: STUFFING
|
|
21
|
+
|
|
22
|
+
B4: HUNGRY # features/lolcat.feature:3
|
|
23
|
+
|
|
24
|
+
MISHUN: CUKES # features/lolcat.feature:4
|
|
25
|
+
DEN KTHXBAI # features/lolcat.feature:5
|
|
26
|
+
|
|
27
|
+
1 scenario (1 undefined)
|
|
28
|
+
1 step (1 undefined)
|
|
29
|
+
|
|
30
|
+
"""
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
Feature: Multiline description names
|
|
2
|
+
In order to accurately document feature elements
|
|
3
|
+
As a cucumberist
|
|
4
|
+
I want to have multiline names
|
|
5
|
+
|
|
6
|
+
Scenario: multiline scenario
|
|
7
|
+
When I run cucumber features/multiline_name.feature --no-snippets
|
|
8
|
+
Then it should pass with
|
|
9
|
+
"""
|
|
10
|
+
Feature: multiline
|
|
11
|
+
|
|
12
|
+
Background: I'm a multiline name # features/multiline_name.feature:3
|
|
13
|
+
which goes on and on and on for three lines
|
|
14
|
+
yawn
|
|
15
|
+
Given passing without a table # features/step_definitions/sample_steps.rb:12
|
|
16
|
+
|
|
17
|
+
Scenario: I'm a multiline name # features/multiline_name.feature:8
|
|
18
|
+
which goes on and on and on for three lines
|
|
19
|
+
yawn
|
|
20
|
+
Given passing without a table # features/step_definitions/sample_steps.rb:12
|
|
21
|
+
|
|
22
|
+
Scenario Outline: I'm a multiline name # features/multiline_name.feature:13
|
|
23
|
+
which goes on and on and on for three lines
|
|
24
|
+
yawn
|
|
25
|
+
Given <state> without a table # features/step_definitions/sample_steps.rb:12
|
|
26
|
+
|
|
27
|
+
Examples:
|
|
28
|
+
| state |
|
|
29
|
+
| passing |
|
|
30
|
+
|
|
31
|
+
Scenario Outline: name # features/multiline_name.feature:21
|
|
32
|
+
Given <state> without a table # features/step_definitions/sample_steps.rb:12
|
|
33
|
+
|
|
34
|
+
Examples: I'm a multiline name
|
|
35
|
+
which goes on and on and on for three lines
|
|
36
|
+
yawn
|
|
37
|
+
| state |
|
|
38
|
+
| passing |
|
|
39
|
+
|
|
40
|
+
3 scenarios (3 passed)
|
|
41
|
+
6 steps (6 passed)
|
|
42
|
+
|
|
43
|
+
"""
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
Feature: Rake task
|
|
2
|
+
In order to ease the development process
|
|
3
|
+
As a developer and CI server administrator
|
|
4
|
+
Cucumber features should be executable via Rake
|
|
5
|
+
|
|
6
|
+
Background:
|
|
7
|
+
Given a standard Cucumber project directory structure
|
|
8
|
+
And a file named "features/missing_step_definitions.feature" with:
|
|
9
|
+
"""
|
|
10
|
+
Feature: Sample
|
|
11
|
+
|
|
12
|
+
Scenario: Wanted
|
|
13
|
+
Given I want to run this
|
|
14
|
+
|
|
15
|
+
Scenario: Unwanted
|
|
16
|
+
Given I don't want this ran
|
|
17
|
+
"""
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
Scenario: rake task with a defined profile
|
|
21
|
+
Given the following profile is defined:
|
|
22
|
+
"""
|
|
23
|
+
foo: --quiet --no-color features/missing_step_definitions.feature:3
|
|
24
|
+
"""
|
|
25
|
+
And a file named "Rakefile" with:
|
|
26
|
+
"""
|
|
27
|
+
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
28
|
+
require 'cucumber/rake/task'
|
|
29
|
+
|
|
30
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
31
|
+
t.profile = "foo"
|
|
32
|
+
end
|
|
33
|
+
"""
|
|
34
|
+
When I run rake features
|
|
35
|
+
Then it should pass
|
|
36
|
+
And the output should contain
|
|
37
|
+
"""
|
|
38
|
+
Feature: Sample
|
|
39
|
+
|
|
40
|
+
Scenario: Wanted
|
|
41
|
+
Given I want to run this
|
|
42
|
+
|
|
43
|
+
1 scenario (1 undefined)
|
|
44
|
+
1 step (1 undefined)
|
|
45
|
+
"""
|
|
46
|
+
|
|
47
|
+
Scenario: rake task with a defined profile and cucumber_opts
|
|
48
|
+
Given the following profile is defined:
|
|
49
|
+
"""
|
|
50
|
+
bar: ['features/missing_step_definitions.feature:3']
|
|
51
|
+
"""
|
|
52
|
+
And a file named "Rakefile" with:
|
|
53
|
+
"""
|
|
54
|
+
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
55
|
+
require 'cucumber/rake/task'
|
|
56
|
+
|
|
57
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
58
|
+
t.profile = "bar"
|
|
59
|
+
t.cucumber_opts = %w{--quiet --no-color}
|
|
60
|
+
end
|
|
61
|
+
"""
|
|
62
|
+
When I run rake features
|
|
63
|
+
Then it should pass
|
|
64
|
+
And the output should contain
|
|
65
|
+
"""
|
|
66
|
+
Feature: Sample
|
|
67
|
+
|
|
68
|
+
Scenario: Wanted
|
|
69
|
+
Given I want to run this
|
|
70
|
+
|
|
71
|
+
1 scenario (1 undefined)
|
|
72
|
+
1 step (1 undefined)
|
|
73
|
+
"""
|
|
74
|
+
|
|
75
|
+
Scenario: rake task with a defined profile and feature list
|
|
76
|
+
Given a file named "features/the_one_i_want_to_run.feature" with:
|
|
77
|
+
"""
|
|
78
|
+
Feature: Desired
|
|
79
|
+
|
|
80
|
+
Scenario: Something
|
|
81
|
+
Given this is missing
|
|
82
|
+
"""
|
|
83
|
+
Given the following profile is defined:
|
|
84
|
+
"""
|
|
85
|
+
baz: ['--quiet', '--no-color']
|
|
86
|
+
"""
|
|
87
|
+
And a file named "Rakefile" with:
|
|
88
|
+
"""
|
|
89
|
+
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
90
|
+
require 'cucumber/rake/task'
|
|
91
|
+
|
|
92
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
93
|
+
t.profile = "baz"
|
|
94
|
+
t.feature_list = ['features/the_one_i_want_to_run.feature']
|
|
95
|
+
end
|
|
96
|
+
"""
|
|
97
|
+
When I run rake features
|
|
98
|
+
Then it should pass
|
|
99
|
+
And the output should contain
|
|
100
|
+
"""
|
|
101
|
+
Feature: Desired
|
|
102
|
+
|
|
103
|
+
Scenario: Something
|
|
104
|
+
Given this is missing
|
|
105
|
+
|
|
106
|
+
1 scenario (1 undefined)
|
|
107
|
+
1 step (1 undefined)
|
|
108
|
+
"""
|
|
109
|
+
|
|
110
|
+
Scenario: deprecation warnings
|
|
111
|
+
Given a file named "Rakefile" with:
|
|
112
|
+
"""
|
|
113
|
+
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
114
|
+
require 'cucumber/rake/task'
|
|
115
|
+
|
|
116
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
117
|
+
t.feature_list = ['features/missing_step_definitions.feature']
|
|
118
|
+
end
|
|
119
|
+
"""
|
|
120
|
+
When I run rake features
|
|
121
|
+
Then it should pass
|
|
122
|
+
And STDERR should match
|
|
123
|
+
"""
|
|
124
|
+
Cucumber::Rake::Task#feature_list is deprecated and will be removed in 0.4.0. Please use profiles for complex settings: http://wiki.github.com/aslakhellesoy/cucumber/using-rake#profiles
|
|
125
|
+
"""
|
|
126
|
+
|
|
127
|
+
Scenario: respect requires
|
|
128
|
+
Given a file named "features/support/env.rb"
|
|
129
|
+
And a file named "features/support/dont_require_me.rb"
|
|
130
|
+
And the following profile is defined:
|
|
131
|
+
"""
|
|
132
|
+
no_bomb: features/missing_step_definitions.feature:3 --require features/support/env.rb --verbose
|
|
133
|
+
"""
|
|
134
|
+
And a file named "Rakefile" with:
|
|
135
|
+
"""
|
|
136
|
+
$LOAD_PATH.unshift(CUCUMBER_LIB)
|
|
137
|
+
require 'cucumber/rake/task'
|
|
138
|
+
|
|
139
|
+
Cucumber::Rake::Task.new(:features) do |t|
|
|
140
|
+
t.profile = "no_bomb"
|
|
141
|
+
t.cucumber_opts = %w{--quiet --no-color}
|
|
142
|
+
end
|
|
143
|
+
"""
|
|
144
|
+
|
|
145
|
+
When I run rake features
|
|
146
|
+
Then it should pass
|
|
147
|
+
And the output should not contain
|
|
148
|
+
"""
|
|
149
|
+
* features/support/dont_require_me.rb
|
|
150
|
+
"""
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
Feature: Cucumber command line
|
|
2
|
+
In order to find out what step definitions need to be implemented
|
|
3
|
+
Developers should always see what step definition is missing
|
|
4
|
+
|
|
5
|
+
@mri186
|
|
6
|
+
Scenario: Get info at arbitrary levels of nesting
|
|
7
|
+
When I run cucumber features/call_undefined_step_from_step_def.feature
|
|
8
|
+
Then it should pass with
|
|
9
|
+
"""
|
|
10
|
+
Feature: Calling undefined step
|
|
11
|
+
|
|
12
|
+
Scenario: Call directly # features/call_undefined_step_from_step_def.feature:3
|
|
13
|
+
Given a step definition that calls an undefined step # features/step_definitions/sample_steps.rb:19
|
|
14
|
+
Undefined step: "this does not exist" (Cucumber::Undefined)
|
|
15
|
+
./features/step_definitions/sample_steps.rb:20:in `/^a step definition that calls an undefined step$/'
|
|
16
|
+
features/call_undefined_step_from_step_def.feature:4:in `Given a step definition that calls an undefined step'
|
|
17
|
+
|
|
18
|
+
Scenario: Call via another # features/call_undefined_step_from_step_def.feature:6
|
|
19
|
+
Given call step "a step definition that calls an undefined step" # features/step_definitions/sample_steps.rb:23
|
|
20
|
+
Undefined step: "this does not exist" (Cucumber::Undefined)
|
|
21
|
+
./features/step_definitions/sample_steps.rb:20:in `/^a step definition that calls an undefined step$/'
|
|
22
|
+
features/call_undefined_step_from_step_def.feature:7:in `Given call step "a step definition that calls an undefined step"'
|
|
23
|
+
|
|
24
|
+
2 scenarios (2 undefined)
|
|
25
|
+
2 steps (2 undefined)
|
|
26
|
+
|
|
27
|
+
You can implement step definitions for undefined steps with these snippets:
|
|
28
|
+
|
|
29
|
+
Given /^this does not exist$/ do
|
|
30
|
+
pending
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
"""
|
|
35
|
+
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
Feature: Snippets
|
|
2
|
+
In order to help speed up writing step definitions
|
|
3
|
+
As a feature editor
|
|
4
|
+
I want snippet suggestions for undefined step definitions
|
|
5
|
+
|
|
6
|
+
Scenario: Snippet for undefined step with a pystring
|
|
7
|
+
When I run cucumber features/undefined_multiline_args.feature:3 -s
|
|
8
|
+
Then the output should contain
|
|
9
|
+
"""
|
|
10
|
+
Given /^a pystring$/ do |string|
|
|
11
|
+
pending
|
|
12
|
+
end
|
|
13
|
+
"""
|
|
14
|
+
Scenario: Snippet for undefined step with a step table
|
|
15
|
+
When I run cucumber features/undefined_multiline_args.feature:9 -s
|
|
16
|
+
Then the output should contain
|
|
17
|
+
"""
|
|
18
|
+
Given /^a table$/ do |table|
|
|
19
|
+
# table is a Cucumber::Ast::Table
|
|
20
|
+
pending
|
|
21
|
+
end
|
|
22
|
+
"""
|
|
@@ -0,0 +1,130 @@
|
|
|
1
|
+
require 'tempfile'
|
|
2
|
+
|
|
3
|
+
Given /^I am in (.*)$/ do |example_dir_relative_path|
|
|
4
|
+
@current_dir = examples_dir(example_dir_relative_path)
|
|
5
|
+
end
|
|
6
|
+
|
|
7
|
+
Given /^a standard Cucumber project directory structure$/ do
|
|
8
|
+
@current_dir = working_dir
|
|
9
|
+
in_current_dir do
|
|
10
|
+
FileUtils.mkdir_p 'features/support'
|
|
11
|
+
FileUtils.mkdir 'features/step_definitions'
|
|
12
|
+
end
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
Given /^the (.*) directory is empty$/ do |directory|
|
|
16
|
+
in_current_dir do
|
|
17
|
+
FileUtils.remove_dir(directory) rescue nil
|
|
18
|
+
FileUtils.mkdir 'tmp'
|
|
19
|
+
end
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
Given /^a file named "([^\"]*)"$/ do |file_name|
|
|
23
|
+
create_file(file_name, '')
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
Given /^a file named "([^\"]*)" with:$/ do |file_name, file_content|
|
|
27
|
+
create_file(file_name, file_content)
|
|
28
|
+
end
|
|
29
|
+
|
|
30
|
+
Given /^the following profiles? (?:are|is) defined:$/ do |profiles|
|
|
31
|
+
create_file('cucumber.yml', profiles)
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
Given /^I am running spork in the background$/ do
|
|
35
|
+
run_spork_in_background
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
Given /^I am not running (?:.*) in the background$/ do
|
|
39
|
+
# no-op
|
|
40
|
+
end
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
When /^I run cucumber (.*)$/ do |cucumber_opts|
|
|
44
|
+
run "#{Cucumber::RUBY_BINARY} #{Cucumber::BINARY} --no-color #{cucumber_opts}"
|
|
45
|
+
end
|
|
46
|
+
|
|
47
|
+
When /^I run rake (.*)$/ do |rake_opts|
|
|
48
|
+
run "rake #{rake_opts} --trace"
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
Then /^it should (fail|pass)$/ do |success|
|
|
52
|
+
if success == 'fail'
|
|
53
|
+
last_exit_status.should_not == 0
|
|
54
|
+
else
|
|
55
|
+
if last_exit_status != 0
|
|
56
|
+
raise "Failed with exit status #{last_exit_status}\nSTDOUT:\n#{last_stdout}\nSTDERR:\n#{last_stderr}"
|
|
57
|
+
end
|
|
58
|
+
end
|
|
59
|
+
end
|
|
60
|
+
|
|
61
|
+
Then /^it should (fail|pass) with$/ do |success, output|
|
|
62
|
+
last_stdout.should == output
|
|
63
|
+
Then("it should #{success}")
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
Then /^the output should contain$/ do |text|
|
|
67
|
+
last_stdout.should include(text)
|
|
68
|
+
end
|
|
69
|
+
|
|
70
|
+
Then /^the output should not contain$/ do |text|
|
|
71
|
+
last_stdout.should_not include(text)
|
|
72
|
+
end
|
|
73
|
+
|
|
74
|
+
Then /^the output should be$/ do |text|
|
|
75
|
+
last_stdout.should == text
|
|
76
|
+
end
|
|
77
|
+
|
|
78
|
+
Then /^"(.*)" should contain XML$/ do |file, xml|
|
|
79
|
+
t = Tempfile.new('cucumber-junit')
|
|
80
|
+
t.write(xml)
|
|
81
|
+
t.flush
|
|
82
|
+
t.close
|
|
83
|
+
cmd = "diffxml #{t.path} #{file}"
|
|
84
|
+
diff = `#{cmd}`
|
|
85
|
+
if diff =~ /<delta>/m
|
|
86
|
+
raise diff + "\nXML WAS:\n" + IO.read(file)
|
|
87
|
+
end
|
|
88
|
+
end
|
|
89
|
+
|
|
90
|
+
Then /^"(.*)" should contain$/ do |file, text|
|
|
91
|
+
strip_duration(IO.read(file)).should == text
|
|
92
|
+
end
|
|
93
|
+
|
|
94
|
+
Then /^"(.*)" should match$/ do |file, text|
|
|
95
|
+
IO.read(file).should =~ Regexp.new(text)
|
|
96
|
+
end
|
|
97
|
+
|
|
98
|
+
Then /^"([^\"]*)" should have the same contents as "([^\"]*)"$/ do |actual_file, expected_file|
|
|
99
|
+
actual = IO.read(actual_file)
|
|
100
|
+
actual = replace_duration(actual, '0m30.005s')
|
|
101
|
+
# Comment out to replace expected file. Use with care! Remember to update duration afterwards.
|
|
102
|
+
# File.open(expected_file, "w") {|io| io.write(actual)}
|
|
103
|
+
actual.should == IO.read(expected_file)
|
|
104
|
+
end
|
|
105
|
+
|
|
106
|
+
Then /^STDERR should match$/ do |text|
|
|
107
|
+
last_stderr.should =~ /#{text}/
|
|
108
|
+
end
|
|
109
|
+
|
|
110
|
+
Then /^STDERR should not match$/ do |text|
|
|
111
|
+
last_stderr.should_not =~ /#{text}/
|
|
112
|
+
end
|
|
113
|
+
|
|
114
|
+
Then /^STDERR should be empty$/ do
|
|
115
|
+
last_stderr.should == ""
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
Then /^"(.*)" should exist$/ do |file|
|
|
119
|
+
File.exists?(file).should be_true
|
|
120
|
+
FileUtils.rm(file)
|
|
121
|
+
end
|
|
122
|
+
|
|
123
|
+
Then /^"([^\"]*)" should not be required$/ do |file_name|
|
|
124
|
+
last_stdout.should_not include("* #{file_name}")
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
Then /^"([^\"]*)" should be required$/ do |file_name|
|
|
128
|
+
last_stdout.should include("* #{file_name}")
|
|
129
|
+
end
|
|
130
|
+
|