cucumber 0.3.11 → 0.3.90

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.
Files changed (164) hide show
  1. data/History.txt +101 -0
  2. data/Manifest.txt +14 -5
  3. data/config/hoe.rb +1 -2
  4. data/cucumber.yml +1 -0
  5. data/examples/i18n/ar/Rakefile +1 -1
  6. data/examples/i18n/ar/features/addition.feature +1 -0
  7. data/examples/i18n/bg/Rakefile +1 -1
  8. data/examples/i18n/bg/features/addition.feature +1 -0
  9. data/examples/i18n/bg/features/consecutive_calculations.feature +1 -0
  10. data/examples/i18n/bg/features/division.feature +1 -0
  11. data/examples/i18n/cat/Rakefile +1 -1
  12. data/examples/i18n/cat/features/suma.feature +1 -0
  13. data/examples/i18n/da/Rakefile +1 -1
  14. data/examples/i18n/da/features/summering.feature +1 -0
  15. data/examples/i18n/de/Rakefile +1 -1
  16. data/examples/i18n/de/features/addition.feature +1 -0
  17. data/examples/i18n/de/features/division.feature +1 -0
  18. data/examples/i18n/en-lol/features/stuffing.feature +1 -1
  19. data/examples/i18n/en/Rakefile +1 -1
  20. data/examples/i18n/en/features/addition.feature +1 -0
  21. data/examples/i18n/en/features/division.feature +1 -0
  22. data/examples/i18n/es/Rakefile +1 -1
  23. data/examples/i18n/es/features/adicion.feature +1 -0
  24. data/examples/i18n/et/Rakefile +1 -1
  25. data/examples/i18n/et/features/jagamine.feature +1 -0
  26. data/examples/i18n/et/features/liitmine.feature +1 -0
  27. data/examples/i18n/fi/Rakefile +1 -1
  28. data/examples/i18n/fi/features/jakolasku.feature +1 -0
  29. data/examples/i18n/fr/Rakefile +1 -1
  30. data/examples/i18n/fr/features/addition.feature +2 -1
  31. data/examples/i18n/he/Rakefile +1 -1
  32. data/examples/i18n/he/features/addition.feature +1 -0
  33. data/examples/i18n/he/features/division.feature +1 -0
  34. data/examples/i18n/hu/Rakefile +1 -1
  35. data/examples/i18n/hu/features/addition.feature +1 -0
  36. data/examples/i18n/hu/features/division.feature +1 -0
  37. data/examples/i18n/id/Rakefile +1 -1
  38. data/examples/i18n/id/features/addition.feature +1 -0
  39. data/examples/i18n/id/features/division.feature +1 -0
  40. data/examples/i18n/it/Rakefile +1 -1
  41. data/examples/i18n/it/features/somma.feature +1 -0
  42. data/examples/i18n/ja/Rakefile +1 -1
  43. data/examples/i18n/ja/features/addition.feature +1 -0
  44. data/examples/i18n/ja/features/division.feature +1 -0
  45. data/examples/i18n/ko/Rakefile +1 -1
  46. data/examples/i18n/ko/features/addition.feature +6 -5
  47. data/examples/i18n/ko/features/division.feature +1 -0
  48. data/examples/i18n/ko/features/step_definitons/calculator_steps.rb +1 -1
  49. data/examples/i18n/lt/Rakefile +1 -1
  50. data/examples/i18n/lt/features/addition.feature +1 -0
  51. data/examples/i18n/lt/features/division.feature +1 -0
  52. data/examples/i18n/lv/Rakefile +1 -1
  53. data/examples/i18n/lv/features/addition.feature +1 -0
  54. data/examples/i18n/lv/features/division.feature +1 -0
  55. data/examples/i18n/no/Rakefile +1 -1
  56. data/examples/i18n/no/features/step_definitons/kalkulator_steps.rb +1 -1
  57. data/examples/i18n/no/features/summering.feature +1 -0
  58. data/examples/i18n/pl/Rakefile +1 -1
  59. data/examples/i18n/pl/features/addition.feature +1 -0
  60. data/examples/i18n/pl/features/division.feature +1 -0
  61. data/examples/i18n/pt/Rakefile +1 -1
  62. data/examples/i18n/pt/features/adicao.feature +1 -0
  63. data/examples/i18n/ro/Rakefile +1 -1
  64. data/examples/i18n/ro/features/suma.feature +1 -0
  65. data/examples/i18n/ru/Rakefile +1 -1
  66. data/examples/i18n/ru/features/addition.feature +1 -0
  67. data/examples/i18n/ru/features/consecutive_calculations.feature +1 -0
  68. data/examples/i18n/ru/features/division.feature +1 -0
  69. data/examples/i18n/se/Rakefile +1 -1
  70. data/examples/i18n/se/features/summering.feature +1 -0
  71. data/examples/i18n/sk/Rakefile +1 -1
  72. data/examples/i18n/sk/features/addition.feature +1 -0
  73. data/examples/i18n/sk/features/division.feature +1 -0
  74. data/examples/i18n/zh-CN/features/addition.feature +1 -0
  75. data/examples/i18n/zh-TW/features/addition.feature +1 -0
  76. data/examples/i18n/zh-TW/features/division.feature +1 -0
  77. data/examples/self_test/features/support/env.rb +2 -1
  78. data/examples/sinatra/features/step_definitions/add_steps.rb +1 -1
  79. data/examples/sinatra/features/support/env.rb +13 -5
  80. data/examples/steps_library/features/step_definitions/steps_lib1.rb +8 -0
  81. data/examples/steps_library/features/step_definitions/steps_lib2.rb +8 -0
  82. data/examples/tickets/features/step_definitons/tickets_steps.rb +15 -0
  83. data/examples/tickets/features/table_diffing.feature +13 -0
  84. data/features/after_block_exceptions.feature +4 -1
  85. data/features/after_step_block_exceptions.feature +4 -1
  86. data/features/background.feature +6 -0
  87. data/features/bug_371.feature +32 -0
  88. data/features/cucumber_cli.feature +11 -1
  89. data/features/cucumber_cli_diff_disabled.feature +9 -2
  90. data/features/drb_server_integration.feature +28 -5
  91. data/features/expand.feature +2 -1
  92. data/features/html_formatter/a.html +129 -1614
  93. data/features/junit_formatter.feature +4 -4
  94. data/features/language_from_header.feature +30 -0
  95. data/features/rake_task.feature +28 -0
  96. data/features/step_definitions/cucumber_steps.rb +2 -2
  97. data/features/steps_formatter.feature +25 -0
  98. data/features/support/env.rb +13 -5
  99. data/features/table_diffing.feature +45 -0
  100. data/features/unicode_table.feature +35 -0
  101. data/features/work_in_progress.feature +3 -0
  102. data/gem_tasks/sass.rake +4 -0
  103. data/lib/cucumber.rb +0 -57
  104. data/lib/cucumber/ast/comment.rb +1 -1
  105. data/lib/cucumber/ast/feature.rb +2 -2
  106. data/lib/cucumber/ast/feature_element.rb +4 -0
  107. data/lib/cucumber/ast/outline_table.rb +2 -1
  108. data/lib/cucumber/ast/py_string.rb +0 -1
  109. data/lib/cucumber/ast/scenario.rb +5 -3
  110. data/lib/cucumber/ast/scenario_outline.rb +6 -1
  111. data/lib/cucumber/ast/step.rb +8 -1
  112. data/lib/cucumber/ast/step_invocation.rb +6 -1
  113. data/lib/cucumber/ast/table.rb +287 -49
  114. data/lib/cucumber/ast/visitor.rb +2 -1
  115. data/lib/cucumber/cli/configuration.rb +45 -28
  116. data/lib/cucumber/cli/drb_client.rb +8 -9
  117. data/lib/cucumber/cli/language_help_formatter.rb +9 -7
  118. data/lib/cucumber/cli/main.rb +8 -9
  119. data/lib/cucumber/feature_file.rb +53 -0
  120. data/lib/cucumber/filter.rb +50 -0
  121. data/lib/cucumber/formatter/console.rb +12 -0
  122. data/lib/cucumber/formatter/cucumber.css +106 -48
  123. data/lib/cucumber/formatter/cucumber.sass +121 -31
  124. data/lib/cucumber/formatter/html.rb +6 -5
  125. data/lib/cucumber/formatter/junit.rb +3 -6
  126. data/lib/cucumber/formatter/pretty.rb +22 -9
  127. data/lib/cucumber/formatter/profile.rb +1 -1
  128. data/lib/cucumber/formatter/progress.rb +1 -1
  129. data/lib/cucumber/formatter/steps.rb +49 -0
  130. data/lib/cucumber/languages.yml +3 -3
  131. data/lib/cucumber/parser.rb +1 -33
  132. data/lib/cucumber/parser/feature.rb +39 -16
  133. data/lib/cucumber/parser/feature.tt +1 -3
  134. data/lib/cucumber/parser/i18n.tt +30 -23
  135. data/lib/cucumber/parser/i18n/language.rb +83 -0
  136. data/lib/cucumber/parser/treetop_ext.rb +12 -83
  137. data/lib/cucumber/platform.rb +6 -0
  138. data/lib/cucumber/rake/task.rb +6 -0
  139. data/lib/cucumber/step_definition.rb +6 -0
  140. data/lib/cucumber/step_match.rb +1 -1
  141. data/lib/cucumber/step_mother.rb +3 -3
  142. data/lib/cucumber/version.rb +1 -1
  143. data/lib/cucumber/webrat/table_locator.rb +66 -0
  144. data/rails_generators/cucumber/templates/cucumber.rake +4 -0
  145. data/rails_generators/cucumber/templates/env.rb +1 -0
  146. data/rails_generators/cucumber/templates/spork_env.rb +1 -1
  147. data/rails_generators/cucumber/templates/webrat_steps.rb +17 -0
  148. data/rails_generators/feature/templates/feature.erb +1 -1
  149. data/rails_generators/feature/templates/steps.erb +2 -8
  150. data/spec/cucumber/ast/step_collection_spec.rb +5 -4
  151. data/spec/cucumber/ast/table_spec.rb +145 -0
  152. data/spec/cucumber/cli/configuration_spec.rb +55 -9
  153. data/spec/cucumber/cli/drb_client_spec.rb +5 -4
  154. data/spec/cucumber/cli/main_spec.rb +9 -12
  155. data/spec/cucumber/formatter/progress_spec.rb +2 -2
  156. data/spec/cucumber/parser/feature_parser_spec.rb +11 -9
  157. data/spec/cucumber/parser/table_parser_spec.rb +1 -1
  158. data/spec/spec_helper.rb +2 -1
  159. metadata +21 -20
  160. data/spec/cucumber/formatter/html/cucumber.css +0 -37
  161. data/spec/cucumber/formatter/html/cucumber.js +0 -13
  162. data/spec/cucumber/formatter/html/index.html +0 -45
  163. data/spec/cucumber/formatter/html/jquery-1.3.min.js +0 -19
  164. data/spec/cucumber/formatter/html/jquery.uitableedit.js +0 -100
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = %w{--language it}
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -1,3 +1,4 @@
1
+ # language: it
1
2
  Funzionalità: somma
2
3
  Per evitare di fare errori stupidi
3
4
  Come utente
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = %w{--language ja}
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -1,3 +1,4 @@
1
+ # language: ja
1
2
  フィーチャ: 加算
2
3
  バカな間違いを避けるために
3
4
  数学オンチとして
@@ -1,3 +1,4 @@
1
+ # language: ja
1
2
  フィーチャ: 除算
2
3
  バカな間違いを避けるために
3
4
  有理数も計算できること
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = %w{--language ko}
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -1,13 +1,14 @@
1
+ # language: ko
1
2
  기능: 덧셈
2
3
  예기치못한 실수을 방지하기 위해
3
4
  수학을 잘 못하는 사람으로써
4
5
  두숫자의 합을 알고 싶다
5
6
 
6
- 시나리오: 두 숫자를 더하기
7
- 조건 계산기에 50을 입력했음
8
- 그리고 계산기에 70을 입력했음
9
- 만일 내가 add를 누르면
10
- 그러면 화면에 출력된 결과는 120이다
7
+ 시나리오 개요: 두 숫자를 더하기
8
+ 조건 계산기에 <입력1>을 입력했음
9
+ 그리고 계산기에 <입력2>을 입력했음
10
+ 만일 내가 <버튼>를 누르면
11
+ 그러면 화면에 출력된 결과는 <결과>이다
11
12
 
12
13
  예:
13
14
  | 입력1 | 입력2 | 버튼 | 결과 |
@@ -1,3 +1,4 @@
1
+ # language: ko
1
2
  기능: 나눗셈
2
3
  예기치못한 실수을 방지하기 위해
3
4
  분수를 계산 능력 요구한다
@@ -15,7 +15,7 @@ Given /^계산기에 (.*)을 입력했음$/ do |n|
15
15
  @calc.push n.to_i
16
16
  end
17
17
 
18
- When /^내가 (.*)를 누루면$/ do |op|
18
+ When /^내가 (.*)를 누르면$/ do |op|
19
19
  @result = @calc.send op
20
20
  end
21
21
 
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = %w{--language lt}
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -1,3 +1,4 @@
1
+ # language: lt
1
2
  Sąvybė: Sudėtis
2
3
  Norint išvengti kvailų klaidų
3
4
  Kaip matematinis idiotas
@@ -1,3 +1,4 @@
1
+ # language: lt
1
2
  Feature: Dalyba
2
3
  Norint išvengti klaidų
3
4
  Kasininkai privalo mokėti skaičiuoti trupmenas
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = %w{--language lv}
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -1,3 +1,4 @@
1
+ # language: lv
1
2
  Funkcionalitāte: Saskaitīšana
2
3
  Lai izvairītos no muļķīgām kļūdām
3
4
  Kā matemātikas idiots
@@ -1,3 +1,4 @@
1
+ # language: lv
1
2
  Funkcionalitāte: Dalīšana
2
3
  Lai izvairītos no muļķīgām kļūdām
3
4
  Kasieriem ir jāprot aprēķināt daļas
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = %w{--language no}
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -4,7 +4,7 @@ Before do
4
4
  @calc = Kalkulator.new
5
5
  end
6
6
 
7
- Gitt /at jeg har tastet inn (\d+)/ do |n|
7
+ Given /at jeg har tastet inn (\d+)/ do |n|
8
8
  @calc.push n.to_i
9
9
  end
10
10
 
@@ -1,3 +1,4 @@
1
+ # language: no
1
2
  Egenskap: Summering
2
3
  For å slippe å gjøre dumme feil
3
4
  Som en regnskapsfører
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = %w{--language pl}
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -1,3 +1,4 @@
1
+ # language: pl
1
2
  Właściwość: Dodawanie
2
3
  W celu uniknięcia głupich błędów
3
4
  Jako matematyczny idiota
@@ -1,3 +1,4 @@
1
+ # language: pl
1
2
  Właściwość: Dzielenie
2
3
  W celu uniknięcia głupich błędów
3
4
  Kasjer musi znać się na ułamkach
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = %w{--language pt}
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -1,3 +1,4 @@
1
+ # language: pt
1
2
  Funcionalidade: Adição
2
3
  Para evitar erros bobos
3
4
  Como um péssimo matemático
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = %w{--language ro}
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -1,3 +1,4 @@
1
+ # language: ro
1
2
  Functionalitate: suma
2
3
  Pentru a nu face erori stupide
3
4
  Ca utilizator
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = %w{--language ru}
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -1,3 +1,4 @@
1
+ # language: ru
1
2
  Функционал: Сложение чисел
2
3
  Чтобы не складывать в уме
3
4
  Все, у кого с этим туго
@@ -1,3 +1,4 @@
1
+ # language: ru
1
2
  Функционал: Последовательные вычисления
2
3
  Чтобы вычислять сложные выражения
3
4
  Пользователи хотят проводить вычисления над результатом предыдущей операций
@@ -1,3 +1,4 @@
1
+ # language: ru
1
2
  Функционал: Деление чисел
2
3
  Поскольку деление сложный процесс и люди часто допускают ошибки
3
4
  Нужно дать им возможность делить на калькуляторе
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = %w{--language se}
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -1,3 +1,4 @@
1
+ # language: se
1
2
  Egenskap: Summering
2
3
  För att slippa att göra dumma fel
3
4
  Som räknare
@@ -2,5 +2,5 @@ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new do |t|
5
- t.cucumber_opts = %w{--language sk}
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -1,3 +1,4 @@
1
+ # language: sk
1
2
  Požiadavka: Sčítavanie
2
3
  Aby som sa vyhol hlúpym chybám
3
4
  Ako matematický idiot
@@ -1,3 +1,4 @@
1
+ # language: sk
1
2
  Požiadavka: Delenie
2
3
  Aby som sa vyhol hlúpym chybám
3
4
  Pokladníci musia vedieť vypočítať podiel
@@ -1,3 +1,4 @@
1
+ # language: zh-CN
1
2
  功能:加法
2
3
  为了避免一些愚蠢的错误
3
4
  作为一个数学白痴
@@ -1,3 +1,4 @@
1
+ # language: zh-TW
1
2
  功能: 加法
2
3
  為了避免愚蠢的錯誤
3
4
  作為一個數學白痴
@@ -1,3 +1,4 @@
1
+ # language: zh-TW
1
2
  功能: 除法
2
3
  為了避免愚蠢的錯誤
3
4
  收銀機必須要能夠計算除法
@@ -1,4 +1,5 @@
1
1
  require 'spec/expectations'
2
+ $KCODE = 'u' unless Cucumber::RUBY_1_9
2
3
 
3
4
  Before('@not_used') do
4
5
  raise "Should never run"
@@ -14,4 +15,4 @@ end
14
15
 
15
16
  After('@background_tagged_before_on_outline') do
16
17
  @cukes.should == '888'
17
- end
18
+ end
@@ -11,5 +11,5 @@ When /^I press '(.*)'$/ do |name|
11
11
  end
12
12
 
13
13
  Then /^I should see '(.*)'$/ do |text|
14
- response.should contain(/#{text}/m)
14
+ response_body.should contain(/#{text}/m)
15
15
  end
@@ -7,14 +7,22 @@ require app_file
7
7
  # Force the application name because polyglot breaks the auto-detection logic.
8
8
  Sinatra::Application.app_file = app_file
9
9
 
10
- # RSpec
11
10
  require 'spec/expectations'
12
11
 
13
- # Webrat
14
12
  require 'webrat'
15
13
  Webrat.configure do |config|
16
- config.mode = :sinatra
14
+ config.mode = :rack
17
15
  end
18
16
 
19
- World{Webrat::SinatraSession.new}
20
- World(Webrat::Matchers, Webrat::HaveTagMatcher)
17
+ class MyWorld
18
+ include Webrat::Methods
19
+ include Webrat::Matchers
20
+
21
+ Webrat::Methods.delegate_to_session :response_code, :response_body
22
+
23
+ def app
24
+ Sinatra::Application
25
+ end
26
+ end
27
+
28
+ World{MyWorld.new}
@@ -0,0 +1,8 @@
1
+ Given /^I defined a first step$/ do
2
+ end
3
+
4
+ When /^I define a second step$/ do
5
+ end
6
+
7
+ Then /^I should also have a third step$/ do
8
+ end
@@ -0,0 +1,8 @@
1
+ Given /^I defined a step 4$/ do
2
+ end
3
+
4
+ When /^I create a step 5$/ do
5
+ end
6
+
7
+ Then /^I should be too tired for step 6$/ do
8
+ end
@@ -64,3 +64,18 @@ end
64
64
  Then /^I should get a no method error for 'backtrace_line'$/ do
65
65
  pending
66
66
  end
67
+
68
+ Then /the table should be different with table:/ do |expected|
69
+ expected.diff!(table(%{
70
+ | b | c | a | d |
71
+ | KASHA | AIIT | BOOYA | X |
72
+ | four | five | three | Y |
73
+ }), :coldiff => true)
74
+ end
75
+
76
+ Then /the table should be different with array:/ do |expected|
77
+ expected.diff!([
78
+ {'a' => 'BOOYA', 'b' => 'KASHA'},
79
+ {'a' => 'three', 'b' => 'four'},
80
+ ])
81
+ end
@@ -0,0 +1,13 @@
1
+ @intentional_failure
2
+ Feature: Tables
3
+ Scenario: Extra row with table
4
+ Then the table should be different with table:
5
+ | a | b |
6
+ | one | two |
7
+ | three | four |
8
+
9
+ Scenario: Extra row and missing column with table
10
+ Then the table should be different with table:
11
+ | a | e | b |
12
+ | one | Q | two |
13
+ | three | R | four |
@@ -48,7 +48,10 @@ Feature: After Block Exceptions
48
48
 
49
49
  Scenario: Success # features/naughty_step_in_scenario.feature:6
50
50
  Given this step works # features/step_definitions/steps.rb:5
51
-
51
+
52
+ Failing Scenarios:
53
+ cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Naughty Step
54
+
52
55
  2 scenarios (1 failed, 1 passed)
53
56
  2 steps (2 passed)
54
57
 
@@ -49,7 +49,10 @@ Feature: AfterStep Block Exceptions
49
49
 
50
50
  Scenario: Success # features/naughty_step_in_scenario.feature:6
51
51
  Given this step works # features/step_definitions/steps.rb:5
52
-
52
+
53
+ Failing Scenarios:
54
+ cucumber features/naughty_step_in_scenario.feature:3 # Scenario: Naughty Step
55
+
53
56
  2 scenarios (1 failed, 1 passed)
54
57
  2 steps (1 failed, 1 passed)
55
58
 
@@ -112,6 +112,9 @@ Feature: backgrounds
112
112
  Scenario: another failing background
113
113
  Then I should have '10' cukes
114
114
 
115
+ Failing Scenarios:
116
+ cucumber features/background/failing_background.feature:8 # Scenario: failing background
117
+
115
118
  2 scenarios (1 failed, 1 skipped)
116
119
  6 steps (1 failed, 5 skipped)
117
120
 
@@ -193,6 +196,9 @@ Feature: backgrounds
193
196
  features/background/failing_background_after_success.feature:5:in `And '10' global cukes'
194
197
  Then I should have '10' global cukes
195
198
 
199
+ Failing Scenarios:
200
+ cucumber features/background/failing_background_after_success.feature:10 # Scenario: failing background
201
+
196
202
  2 scenarios (1 failed, 1 passed)
197
203
  6 steps (1 failed, 1 skipped, 4 passed)
198
204
 
@@ -0,0 +1,32 @@
1
+ Feature: https://rspec.lighthouseapp.com/projects/16211/tickets/371
2
+ Scenario: Before runs once
3
+ Given a standard Cucumber project directory structure
4
+ And a file named "features/f.feature" with:
5
+ """
6
+ Feature: F
7
+ Scenario: S
8
+ Given G
9
+ """
10
+ And a file named "features/step_definitions/steps.rb" with:
11
+ """
12
+ Before do
13
+ puts "B"
14
+ end
15
+ Given /G/ do
16
+ puts "G"
17
+ end
18
+ """
19
+ When I run cucumber -q --format pretty --format progress --out progress.txt features/f.feature
20
+ Then it should pass with
21
+ """
22
+ Feature: F
23
+
24
+ Scenario: S
25
+ B
26
+ G
27
+ Given G
28
+
29
+ 1 scenario (1 passed)
30
+ 1 step (1 passed)
31
+
32
+ """