cucumber 0.3.3 → 0.3.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. data/History.txt +44 -1
  2. data/Manifest.txt +11 -1
  3. data/bin/cucumber +11 -1
  4. data/examples/cs/Rakefile +1 -1
  5. data/examples/cs/features/addition.feature +5 -5
  6. data/examples/cs/features/step_definitons/calculator_steps.rb +2 -2
  7. data/examples/dos_line_endings/Rakefile +1 -1
  8. data/examples/i18n/ar/Rakefile +1 -1
  9. data/examples/i18n/bg/Rakefile +1 -1
  10. data/examples/i18n/cat/Rakefile +6 -0
  11. data/examples/i18n/cat/features/step_definitons/calculator_steps.rb +21 -0
  12. data/examples/i18n/cat/features/suma.feature +16 -0
  13. data/examples/i18n/cat/lib/calculadora.rb +16 -0
  14. data/examples/i18n/da/Rakefile +1 -1
  15. data/examples/i18n/de/Rakefile +1 -1
  16. data/examples/i18n/en-lol/Rakefile +1 -1
  17. data/examples/i18n/en/Rakefile +1 -1
  18. data/examples/i18n/es/Rakefile +1 -1
  19. data/examples/i18n/et/Rakefile +1 -1
  20. data/examples/i18n/fi/Rakefile +1 -1
  21. data/examples/i18n/fr/Rakefile +1 -1
  22. data/examples/i18n/he/Rakefile +1 -1
  23. data/examples/i18n/hu/Rakefile +1 -1
  24. data/examples/i18n/id/Rakefile +1 -1
  25. data/examples/i18n/it/Rakefile +1 -1
  26. data/examples/i18n/ja/Rakefile +1 -1
  27. data/examples/i18n/ko/Rakefile +1 -1
  28. data/examples/i18n/lt/Rakefile +1 -1
  29. data/examples/i18n/lt/features/addition.feature +2 -3
  30. data/examples/i18n/lv/Rakefile +1 -1
  31. data/examples/i18n/no/Rakefile +1 -1
  32. data/examples/i18n/pt/Rakefile +1 -1
  33. data/examples/i18n/pt/features/step_definitions/calculadora_steps.rb +3 -7
  34. data/examples/i18n/pt/features/support/env.rb +6 -0
  35. data/examples/i18n/ro/Rakefile +1 -1
  36. data/examples/i18n/ru/Rakefile +1 -1
  37. data/examples/i18n/se/Rakefile +1 -1
  38. data/examples/i18n/sk/Rakefile +1 -1
  39. data/examples/i18n/zh-CN/Rakefile +1 -1
  40. data/examples/i18n/zh-TW/Rakefile +1 -1
  41. data/examples/java/README.textile +2 -6
  42. data/examples/java/build.xml +26 -0
  43. data/examples/java/features/step_definitons/hello_steps.rb +0 -2
  44. data/examples/junit/features/one_passing_one_failing.feature +8 -0
  45. data/examples/junit/features/pending.feature +5 -0
  46. data/examples/junit/features/step_definitions/steps.rb +11 -0
  47. data/examples/selenium/Rakefile +1 -1
  48. data/examples/selenium_webrat/Rakefile +1 -1
  49. data/examples/sinatra/Rakefile +1 -1
  50. data/examples/test_unit/Rakefile +1 -1
  51. data/examples/tickets/Rakefile +3 -3
  52. data/examples/tickets/features/177/1.feature +29 -29
  53. data/examples/tickets/features/177/2.feature +20 -20
  54. data/examples/watir/Rakefile +1 -1
  55. data/features/junit_formatter.feature +59 -0
  56. data/features/rake_task.feature +4 -4
  57. data/features/step_definitions/cucumber_steps.rb +25 -2
  58. data/gem_tasks/features.rake +5 -1
  59. data/lib/cucumber.rb +2 -2
  60. data/lib/cucumber/cli/configuration.rb +28 -32
  61. data/lib/cucumber/cli/main.rb +0 -2
  62. data/lib/cucumber/core_ext/proc.rb +9 -13
  63. data/lib/cucumber/formatter.rb +1 -1
  64. data/lib/cucumber/formatter/html.rb +1 -0
  65. data/lib/cucumber/formatter/junit.rb +78 -0
  66. data/lib/cucumber/languages.yml +36 -4
  67. data/lib/cucumber/parser/feature.rb +10 -6
  68. data/lib/cucumber/parser/feature.tt +18 -14
  69. data/lib/cucumber/rake/task.rb +92 -24
  70. data/lib/cucumber/step_mother.rb +3 -0
  71. data/lib/cucumber/version.rb +1 -1
  72. data/rails_generators/cucumber/templates/cucumber.rake +2 -1
  73. data/spec/cucumber/cli/configuration_spec.rb +9 -18
  74. metadata +13 -3
  75. data/examples/java/Rakefile +0 -12
@@ -1,3 +1,46 @@
1
+ == 0.3.4 2009-05-14
2
+
3
+ A couple of great new features in this release. Running with Rake is faster than before,
4
+ and there is a brand new JUnit formatter - great for Continuous Integration reports!
5
+
6
+ This release was made especially for the Oslo XP Meetup today.
7
+
8
+ ** IMPORTANT UPGRADE NOTES FOR RAILS USERS **
9
+
10
+ Running Cucumber features in the same Ruby interpreter as Rake doesn't seem to work,
11
+ so you have to explicitly tell the task to fork (like it was doing by default in prior
12
+ versions). In lib/tasks/cucumber.rake:
13
+
14
+ Cucumber::Rake::Task.new(:features) do |t|
15
+ t.fork = true # Explicitly fork
16
+ t.cucumber_opts = %w{--format pretty}
17
+ end
18
+
19
+ (If you run script/generate cucumber this will be done for you).
20
+ Alternatively you can omit forking and run features like this:
21
+
22
+ RAILS_ENV=test rake features
23
+
24
+ However, setting the RAILS_ENV is easy to forget, so I don't recommend relying on this.
25
+
26
+ === Bugfixes
27
+ * Hooks (World, Before, After) are no longer executed when --dry-run (Aslak Hellesøy)
28
+ * Proper UTF8 use in HTML formatter (Herminio Torres)
29
+ * Problem with multiple terms in languages.yml (#321 Aslak Hellesøy)
30
+
31
+ === New features
32
+ * New JUnit formatter (Gareth Jones)
33
+ * Support for Vietnamese (Ngoc Dao)
34
+ * Added aliases for Feature and But in Japanese (Leonard Chin)
35
+ * Support for Catalan (Francesc Esplugas)
36
+
37
+ === Changed features
38
+ * The Java example under examples/java uses Ant instead of Rake - and the new JUnit formatter.
39
+ * Rake task should not shell out (#297 Aslak Hellesøy)
40
+ The Cucumber Rake task will run Cucumber in the same Ruby interpreter as Rake itself
41
+ unless explicitly told to fork a new interpreter. This is to increase speed. You can
42
+ force a new interpreter by setting fork=true or rcov=true in the task.
43
+
1
44
  == 0.3.3 2009-05-10
2
45
 
3
46
  Minor bugfix release, made specially for EuRuKo!
@@ -235,7 +278,7 @@ for multiline arguments are some of the highlights.
235
278
  * Pure Ruby features are no longer supported.
236
279
  * Remove --color option in autotest. Can be added manually in cucumber.yml (#215 Jean-Michel Garnier)
237
280
 
238
- == (0.16.4 aslakhellesoy-cucumber gem on GitHub)
281
+ == (0.1.16.4 aslakhellesoy-cucumber gem on GitHub)
239
282
 
240
283
  Bugfix release.
241
284
 
@@ -29,6 +29,10 @@ examples/i18n/bg/features/step_definitons/calculator_steps.rb
29
29
  examples/i18n/bg/features/support/env.rb
30
30
  examples/i18n/bg/features/support/world.rb
31
31
  examples/i18n/bg/lib/calculator.rb
32
+ examples/i18n/cat/Rakefile
33
+ examples/i18n/cat/features/step_definitons/calculator_steps.rb
34
+ examples/i18n/cat/features/suma.feature
35
+ examples/i18n/cat/lib/calculadora.rb
32
36
  examples/i18n/da/Rakefile
33
37
  examples/i18n/da/features/step_definitons/kalkulator_steps.rb
34
38
  examples/i18n/da/features/summering.feature
@@ -114,6 +118,7 @@ examples/i18n/no/lib/kalkulator.rb
114
118
  examples/i18n/pt/Rakefile
115
119
  examples/i18n/pt/features/adicao.feature
116
120
  examples/i18n/pt/features/step_definitions/calculadora_steps.rb
121
+ examples/i18n/pt/features/support/env.rb
117
122
  examples/i18n/pt/lib/calculadora.rb
118
123
  examples/i18n/ro/Rakefile
119
124
  examples/i18n/ro/features/step_definitons/calculator_steps.rb
@@ -146,12 +151,15 @@ examples/i18n/zh-TW/features/division.feature
146
151
  examples/i18n/zh-TW/features/step_definitons/calculator_steps.rb
147
152
  examples/i18n/zh-TW/lib/calculator.rb
148
153
  examples/java/README.textile
149
- examples/java/Rakefile
154
+ examples/java/build.xml
150
155
  examples/java/features/hello.feature
151
156
  examples/java/features/step_definitons/hello_steps.rb
152
157
  examples/java/features/step_definitons/tree_steps.rb
153
158
  examples/java/features/tree.feature
154
159
  examples/java/src/cucumber/demo/Hello.java
160
+ examples/junit/features/one_passing_one_failing.feature
161
+ examples/junit/features/pending.feature
162
+ examples/junit/features/step_definitions/steps.rb
155
163
  examples/pure_java/README.textile
156
164
  examples/selenium/Rakefile
157
165
  examples/selenium/features/search.feature
@@ -236,6 +244,7 @@ features/cucumber_cli_diff_disabled.feature
236
244
  features/cucumber_cli_outlines.feature
237
245
  features/custom_formatter.feature
238
246
  features/exclude_files.feature
247
+ features/junit_formatter.feature
239
248
  features/multiline_names.feature
240
249
  features/rake_task.feature
241
250
  features/report_called_undefined_steps.feature
@@ -291,6 +300,7 @@ lib/cucumber/formatter/console.rb
291
300
  lib/cucumber/formatter/cucumber.css
292
301
  lib/cucumber/formatter/cucumber.sass
293
302
  lib/cucumber/formatter/html.rb
303
+ lib/cucumber/formatter/junit.rb
294
304
  lib/cucumber/formatter/pretty.rb
295
305
  lib/cucumber/formatter/profile.rb
296
306
  lib/cucumber/formatter/progress.rb
@@ -3,4 +3,14 @@
3
3
  $:.unshift(File.dirname(__FILE__ + '.rb') + '/../lib') unless $:.include?(File.dirname(__FILE__ + '.rb') + '/../lib')
4
4
 
5
5
  require 'cucumber/cli/main'
6
- Cucumber::Cli::Main.execute(ARGV.dup) # The dup is to keep ARGV intact, so that tools like ruby-debug can respawn.
6
+ begin
7
+ # The dup is to keep ARGV intact, so that tools like ruby-debug can respawn.
8
+ failure = Cucumber::Cli::Main.execute(ARGV.dup)
9
+ Kernel.exit(failure ? 1 : 0)
10
+ rescue SystemExit => e
11
+ Kernel.exit(e.status)
12
+ rescue Exception => e
13
+ STDERR.puts("#{e.message} (#{e.class})")
14
+ STDERR.puts(e.backtrace.join("\n"))
15
+ Kernel.exit 1
16
+ end
@@ -2,7 +2,7 @@ $:.unshift(File.dirname(__FILE__) + '/../../lib')
2
2
  require 'cucumber/rake/task'
3
3
 
4
4
  Cucumber::Rake::Task.new(:features) do |t|
5
- t.cucumber_opts = "--format pretty"
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
7
7
 
8
8
  task :features => :compile
@@ -3,13 +3,13 @@ Feature: Addition
3
3
  As a math idiot
4
4
  I want to be told the sum of two numbers
5
5
 
6
- Scenario: Add two numbers
7
- Given I have entered 50 into the calculator
8
- And I have entered 70 into the calculator
6
+ Scenario Outline: Add two numbers
7
+ Given I have entered <input_1> into the calculator
8
+ And I have entered <input_2> into the calculator
9
9
  When I press add
10
- Then the result should be 120 on the screen
10
+ Then the result should be <output> on the screen
11
11
 
12
- More Examples:
12
+ Examples:
13
13
  | input_1 | input_2 | output |
14
14
  | 20 | 30 | 50 |
15
15
  | 2 | 5 | 7 |
@@ -1,9 +1,9 @@
1
1
  require 'spec/expectations'
2
2
  $:.unshift(File.dirname(__FILE__) + '/../../lib') # This line is not needed in your own project
3
- require 'Calculator'
3
+ require 'Calculator' # Calculator.dll
4
4
 
5
5
  Before do
6
- @calc = Demo::Calculator.new
6
+ @calc = Demo::Calculator.new # A .NET class in Calculator.dll
7
7
  end
8
8
 
9
9
  Given "I have entered $n into the calculator" do |n|
@@ -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 = "--format pretty"
5
+ t.cucumber_opts = %w{--format pretty}
6
6
  end
@@ -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 = "--language ar"
5
+ t.cucumber_opts = %w{--language ar}
6
6
  end
@@ -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 = "--language bg"
5
+ t.cucumber_opts = %w{--language bg}
6
6
  end
@@ -0,0 +1,6 @@
1
+ $:.unshift(File.dirname(__FILE__) + '/../../../lib')
2
+ require 'cucumber/rake/task'
3
+
4
+ Cucumber::Rake::Task.new do |t|
5
+ t.cucumber_opts = %w{--language cat}
6
+ end
@@ -0,0 +1,21 @@
1
+ # encoding: utf-8
2
+ require 'spec/expectations'
3
+ $:.unshift(File.dirname(__FILE__) + '/../../lib') # This line is not needed in your own project
4
+ require 'cucumber/formatter/unicode'
5
+ require 'calculadora'
6
+
7
+ Before do
8
+ @calc = Calculadora.new
9
+ end
10
+
11
+ Donat /que he introduït (\d+) a la calculadora/ do |n|
12
+ @calc.push n.to_i
13
+ end
14
+
15
+ Quan /premo el (\w+)/ do |op|
16
+ @result = @calc.send op
17
+ end
18
+
19
+ Aleshores /el resultat ha de ser (\d+) a la pantalla/ do |result|
20
+ @result.should == result.to_f
21
+ end
@@ -0,0 +1,16 @@
1
+ Característica: Suma
2
+ Per evitar fer errors tontos
3
+ Com un matemàtic idiota
4
+ Vull saber la suma dels números
5
+
6
+ Esquema de l'escenari: Sumar dos números
7
+ Donat que he introduït <entrada_1> a la calculadora
8
+ I que he introduït <entrada_2> a la calculadora
9
+ Quan premo el <botó>
10
+ Aleshores el resultat ha de ser <resultat> a la pantalla
11
+
12
+ Exemples:
13
+ | entrada_1 | entrada_2 | botó | resultat |
14
+ | 20 | 30 | add | 50 |
15
+ | 2 | 5 | add | 7 |
16
+ | 0 | 40 | add | 40 |
@@ -0,0 +1,16 @@
1
+ class Calculadora
2
+
3
+ def push(n)
4
+ @args ||= []
5
+ @args << n
6
+ end
7
+
8
+ def add
9
+ @args.inject(0){|n,sum| sum+=n}
10
+ end
11
+
12
+ def divide
13
+ @args[0].to_f / @args[1].to_f
14
+ end
15
+
16
+ end
@@ -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 = "--language da"
5
+ t.cucumber_opts = %w{--language da}
6
6
  end
@@ -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 = "--language de"
5
+ t.cucumber_opts = %w{--language de}
6
6
  end
@@ -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 = "--language en-lol"
5
+ t.cucumber_opts = %w{--language en-lol}
6
6
  end
@@ -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 = "--language en"
5
+ t.cucumber_opts = %w{--language en}
6
6
  end
@@ -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 = "--language es"
5
+ t.cucumber_opts = %w{--language es}
6
6
  end
@@ -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 = "--language et"
5
+ t.cucumber_opts = %w{--language et}
6
6
  end
@@ -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 = "--language fi"
5
+ t.cucumber_opts = %w{--language fi}
6
6
  end
@@ -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 = "--language fr"
5
+ t.cucumber_opts = %w{--language fr}
6
6
  end
@@ -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 = "--language he"
5
+ t.cucumber_opts = %w{--language he}
6
6
  end
@@ -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 = "--language hu"
5
+ t.cucumber_opts = %w{--language hu}
6
6
  end
@@ -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 = "--language id"
5
+ t.cucumber_opts = %w{--language id}
6
6
  end
@@ -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 = "--language it"
5
+ t.cucumber_opts = %w{--language it}
6
6
  end
@@ -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 = "--language ja"
5
+ t.cucumber_opts = %w{--language ja}
6
6
  end
@@ -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 = "--language ko"
5
+ t.cucumber_opts = %w{--language ko}
6
6
  end
@@ -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 = "--language lt"
5
+ t.cucumber_opts = %w{--language lt}
6
6
  end
@@ -3,14 +3,13 @@ Sąvybė: Sudėtis
3
3
  Kaip matematinis idiotas
4
4
  Aš noriu, kad man pasakytų dviejų skaičių sumą
5
5
 
6
- # Someone please translate this in languages.yml please
7
- Scenario Outline: dviejų skaičių sudėtis
6
+ Scenarijaus šablonas: dviejų skaičių sudėtis
8
7
  Duota aš įvedžiau <įvestis_1> į skaičiuotuvą
9
8
  Ir aš įvedžiau <įvestis_2> į skaičiuotuvą
10
9
  Kai aš paspaudžiu "<mygtukas>"
11
10
  Tada rezultatas ekrane turi būti <išvestis>
12
11
 
13
- Pavyzdžių
12
+ Pavyzdžiai
14
13
  | įvestis_1 | įvestis_2 | mygtukas | išvestis |
15
14
  | 20 | 30 | add | 50 |
16
15
  | 2 | 5 | add | 7 |
@@ -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 = "--language lv"
5
+ t.cucumber_opts = %w{--language lv}
6
6
  end
@@ -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 = "--language no"
5
+ t.cucumber_opts = %w{--language no}
6
6
  end
@@ -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 = "--language pt"
5
+ t.cucumber_opts = %w{--language pt}
6
6
  end
@@ -1,8 +1,4 @@
1
1
  # encoding: utf-8
2
- require 'spec/expectations'
3
- $:.unshift(File.dirname(__FILE__) + '/../../lib') # This line is not needed in your own project
4
- require 'cucumber/formatter/unicode'
5
- require 'calculadora'
6
2
 
7
3
  Before do
8
4
  @calc = Calculadora.new
@@ -11,14 +7,14 @@ end
11
7
  After do
12
8
  end
13
9
 
14
- Given /que eu digitei (\d+) na calculadora/ do |n|
10
+ Dado /que eu digitei (\d+) na calculadora/ do |n|
15
11
  @calc.push n.to_i
16
12
  end
17
13
 
18
- When 'eu aperto o botão de soma' do
14
+ Quando 'eu aperto o botão de soma' do
19
15
  @result = @calc.soma
20
16
  end
21
17
 
22
- Then /o resultado na calculadora deve ser (\d*)/ do |result|
18
+ Então /o resultado na calculadora deve ser (\d*)/ do |result|
23
19
  @result.should == result.to_i
24
20
  end
@@ -0,0 +1,6 @@
1
+ # encoding: utf-8
2
+ $KCODE='u' unless Cucumber::RUBY_1_9
3
+ require 'spec/expectations'
4
+ $:.unshift(File.dirname(__FILE__) + '/../../lib') # This line is not needed in your own project
5
+ require 'cucumber/formatter/unicode'
6
+ require 'calculadora'