cucumber 0.3.11 → 0.3.90

Sign up to get free protection for your applications and to get access to all the features.
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
+ """