cucumberator 0.0.8 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 35d488b49daad891ef1834eedd102d759938cc6b
4
- data.tar.gz: 29b22ee644ba383c26b32f3c78abc6dd2aa093cc
3
+ metadata.gz: fd33d4cd979148095682cd5dbf9105e1f4f4f720
4
+ data.tar.gz: 17b116517d3783d358bc4b4b9c8ca979c2980016
5
5
  SHA512:
6
- metadata.gz: b9227d0c7c407cefc0f8d7f7ca2e35dc3c8678ad0bc1d3165d10b6635956b3a007a52c80d397e57a9679ef3a010892cadbdc205368c9a6b50f43943268a3c1d2
7
- data.tar.gz: d3f5a76e42e5fe875ea4c4423257bf87c0ade2b107e685f98306a909eaec5eeec7c07f0f307df098a7f30c2ee1ea85b73becde8ffaf4bdf392234842b98c94d8
6
+ metadata.gz: 4acd1ecca4389109c3ebda242b6056d8f46fa143ae5446f960854240fdc46c9bba7071392fdd34bf0865013fe617996ed82cb4b8724dba24179f4630bef123e5
7
+ data.tar.gz: 00a422b4c21ad26fb90c4b5762c7236c446bc4e76c4ab298e28d86d286b2afa8cbbbdc1b57f07428525a785ecb8594c06d5594c8a996b32ab4dee4b48f55dfa3
data/.gitignore CHANGED
@@ -2,3 +2,4 @@
2
2
  .bundle
3
3
  Gemfile.lock
4
4
  pkg/*
5
+ tmp/*
@@ -0,0 +1,7 @@
1
+ language: ruby
2
+ rvm:
3
+ - 1.9.3
4
+ - 2.0.0
5
+ - jruby-19mode
6
+ - rbx-19mode
7
+ script: "bundle exec cucumber features -f progress"
data/README.md CHANGED
@@ -1,9 +1,14 @@
1
1
  Cucumberator is Cucumber extension to write steps in command line, whatch how browser responds to them and save directly to your .feature file.
2
2
 
3
+ [![Gem Version](https://badge.fury.io/rb/cucumberator.png)](http://badge.fury.io/rb/cucumberator)
4
+ [![Dependency Status](https://gemnasium.com/vidmantas/cucumberator.png)](https://gemnasium.com/vidmantas/cucumberator)
5
+ [![Code Climate](https://codeclimate.com/github/vidmantas/cucumberator.png)](https://codeclimate.com/github/vidmantas/cucumberator)
6
+ [![Build Status](https://travis-ci.org/vidmantas/cucumberator.png)](https://travis-ci.org/vidmantas/cucumberator)
7
+
3
8
  ## How to use
4
9
 
5
- * Put @cucumberize tag in front of empty Scenario you want to append with new steps.
6
- * Or place step "Then I will write new steps" anywhere in scenario [PREFERRED]
10
+ * Place a step "Then I will write new steps" anywhere in scenario [PREFERRED]
11
+ * Or put @cucumberize tag in front of **last** scenario you want to append with new steps.
7
12
  * Fire up the cucumber and wait until prompt shows up.
8
13
  * Write a step, watch it happen on the browser!
9
14
 
@@ -45,10 +50,11 @@ Now use special step in any place:
45
50
  Then I will write new steps
46
51
  # ...can be the end or other steps...
47
52
 
48
- or put @cucumberize before last **empty** Scenario you want to fill up, for example
53
+ or put @cucumberize before **last** scenario you want to fill up, for example
49
54
 
50
- @javascript @cucumberize
55
+ @cucumberize
51
56
  Scenario: check fancy ajax login
57
+ Given a user with login of "likeaboss"
52
58
 
53
59
  and then run this feature file, watch your console for prompt to show up. Enjoy writing steps on the go!
54
60
 
@@ -56,17 +62,21 @@ and then run this feature file, watch your console for prompt to show up. Enjoy
56
62
 
57
63
  Latest cucumberator version supports:
58
64
 
59
- * Ruby >= 1.9
60
- * Cucumber >= 1.3
65
+ * Cucumber >= 1.3
66
+ * Ruby >= 1.9
67
+ * JRuby >= 1.7.4 (1.9 mode)
68
+ * Rubinius >= 2.0.0.w38 (1.9 mode)
69
+
70
+ Check for compability details on [Travis](https://travis-ci.org/vidmantas/cucumberator)
61
71
 
62
- ## TODO
72
+ ## Want to contribute?
63
73
 
64
- * tests
65
- * refactor Cucumberator::Writer - too fat already
74
+ Fork the project, run tests with:
66
75
 
67
- ## Suggestions?
76
+ bundle exec cucumber features
68
77
 
69
- Drop me a line or feel free to contribute!
78
+ then code, code, code and provide me a pull request <3
79
+ ...Or just fill in a [ticket](https://github.com/vidmantas/cucumberator/issues)
70
80
 
71
81
  ## Sponsors
72
82
 
@@ -15,9 +15,13 @@ Gem::Specification.new do |s|
15
15
 
16
16
  s.files = `git ls-files`.split("\n")
17
17
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
18
- s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
18
+ s.executables = `git ls-files -- bin/*`.split("\n").map { |f| File.basename(f) }
19
19
  s.require_paths = ["lib"]
20
20
 
21
- s.add_dependency 'cucumber', '> 1.3'
22
- s.add_dependency 'cucumber-rails', '> 1.3'
21
+ s.required_ruby_version = ">= 1.9.3"
22
+
23
+ s.add_dependency 'cucumber', '> 1.3'
24
+
25
+ s.add_development_dependency 'aruba', '~> 0.5.3'
26
+ s.add_development_dependency 'pry'
23
27
  end
@@ -0,0 +1,39 @@
1
+ Feature: step saving
2
+ Background:
3
+ Given a file named "examples/support/env.rb" with:
4
+ """
5
+ require 'cucumberator'
6
+ """
7
+ Given a file named "examples/step_definitions/extra.rb" with:
8
+ """
9
+ When(/I do some magical stuff with '(\w+)'/) do |*args|
10
+ # just example
11
+ end
12
+
13
+ """
14
+ Given a file named "examples/cucumberize.feature" with:
15
+ """
16
+ Feature: example
17
+ @cucumberize
18
+ Scenario: cucumberize
19
+ When I do some magical stuff with 'apples'
20
+
21
+ """
22
+
23
+ Scenario: autosave after successfull execution
24
+ When I run `cucumber examples/cucumberize.feature` interactively
25
+ And I type "When I do some magical stuff with 'chairs'"
26
+ And I type "exit"
27
+ Then it should pass with:
28
+ """
29
+ Saved `When I do some magical stuff with 'chairs'` to cucumberize.feature
30
+ """
31
+ And the file "examples/cucumberize.feature" should contain exactly:
32
+ """
33
+ Feature: example
34
+ @cucumberize
35
+ Scenario: cucumberize
36
+ When I do some magical stuff with 'apples'
37
+ When I do some magical stuff with 'chairs'
38
+
39
+ """
@@ -0,0 +1,28 @@
1
+ Feature: exit-all command
2
+ Background:
3
+ Given a file named "examples/support/env.rb" with:
4
+ """
5
+ require 'cucumberator'
6
+ """
7
+ Given a file named "examples/exit_all.feature" with:
8
+ """
9
+ Feature: example
10
+ Scenario: exit-all
11
+ Then I will write new steps
12
+ Then I will write new steps
13
+ Then I will write new steps
14
+
15
+ Scenario: should be ignored totally
16
+ Then I will write new steps
17
+ Then I will write new steps
18
+ Then I will write new steps
19
+
20
+ """
21
+
22
+ Scenario: check `exit-all` command
23
+ When I run `cucumber examples/exit_all.feature` interactively
24
+ And I type "exit-all"
25
+ Then it should fail with:
26
+ """
27
+ 1 scenario (1 skipped)
28
+ """
@@ -0,0 +1,31 @@
1
+ Feature: save command
2
+ Background:
3
+ Given a file named "examples/support/env.rb" with:
4
+ """
5
+ require 'cucumberator'
6
+ """
7
+ Given a file named "examples/save.feature" with:
8
+ """
9
+ Feature: example
10
+ Scenario: stop where exit
11
+ Then I will write new steps
12
+
13
+ """
14
+
15
+ Scenario: check `save` command
16
+ When I run `cucumber examples/save.feature` interactively
17
+ And I type "When I do something extraordinary"
18
+ And I type "save"
19
+ And I type "exit"
20
+ Then it should pass with:
21
+ """
22
+ Saved `When I do something extraordinary` to save.feature
23
+ """
24
+ And the file "examples/save.feature" should contain exactly:
25
+ """
26
+ Feature: example
27
+ Scenario: stop where exit
28
+ When I do something extraordinary
29
+ Then I will write new steps
30
+
31
+ """
@@ -0,0 +1,33 @@
1
+ Feature: help command
2
+ Background:
3
+ Given a file named "examples/support/env.rb" with:
4
+ """
5
+ require 'cucumberator'
6
+ """
7
+ Given a file named "examples/help.feature" with:
8
+ """
9
+ Feature: example
10
+ Scenario: help
11
+ Then I will write new steps
12
+
13
+ """
14
+
15
+ Scenario: check help command
16
+ When I run `cucumber examples/help.feature` interactively
17
+ And I type "help"
18
+ And I type "exit"
19
+ Then it should pass with:
20
+ """
21
+ :: Write a step here and watch it happen on the browser.
22
+ :: Steps are automatically saved unless it raises exception. Use 'save' to force-save it anyway.
23
+ :: Available commands:
24
+ :: save - force-saves last step into current feature file
25
+ :: last-step - display last executed step (to be saved on 'save' command)
26
+ :: undo - remove last saved line from feature file
27
+ :: next - execute next step and stop
28
+ :: steps - display available steps
29
+ :: where - display current location in file
30
+ :: exit - exits current scenario
31
+ :: exit-all - exists whole Cucumber feature
32
+ :: help - display this notification
33
+ """
@@ -0,0 +1,23 @@
1
+ Feature: step saving
2
+ Background:
3
+ Given a file named "examples/support/env.rb" with:
4
+ """
5
+ require 'cucumberator'
6
+ """
7
+
8
+ Scenario: last-step display
9
+ Given a file named "examples/last_step.feature" with:
10
+ """
11
+ Feature: example
12
+ Scenario: example
13
+ Then I will write new steps
14
+
15
+ """
16
+ When I run `cucumber examples/last_step.feature` interactively
17
+ And I type "When new step is executed"
18
+ And I type "last-step"
19
+ And I type "exit"
20
+ Then it should pass with:
21
+ """
22
+ It was: `When new step is executed`
23
+ """
@@ -0,0 +1,38 @@
1
+ Feature: next
2
+ Background:
3
+ Given a file named "examples/support/env.rb" with:
4
+ """
5
+ require 'cucumberator'
6
+ """
7
+ Given a file named "examples/step_definitions/extra.rb" with:
8
+ """
9
+ When(/I do some magical stuff with '(\w+)'/) do |*args|
10
+ # just example
11
+ end
12
+
13
+ """
14
+ Given a file named "examples/next.feature" with:
15
+ """
16
+ Feature: example
17
+ Scenario: stop where exit
18
+ Then I will write new steps
19
+ When I do some magical stuff with 'apples'
20
+ When I do some magical stuff with 'oranges'
21
+ When I do some magical stuff with 'bananas'
22
+ When I do some magical stuff with 'water'
23
+
24
+ """
25
+
26
+ Scenario: one next
27
+ When I run `cucumber examples/next.feature` interactively
28
+ And I type "next"
29
+ And I type "where"
30
+ And I type "exit"
31
+ Then it should pass with:
32
+ """
33
+ examples/next.feature:4:in `When I do some magical stuff with 'apples'
34
+ """
35
+ And it should pass with:
36
+ """
37
+ 4: -> When I do some magical stuff with 'apples'
38
+ """
@@ -0,0 +1,88 @@
1
+ Feature: step saving
2
+ Background:
3
+ Given a file named "examples/support/env.rb" with:
4
+ """
5
+ require 'cucumberator'
6
+ """
7
+ Given a file named "examples/step_definitions/extra.rb" with:
8
+ """
9
+ When(/I do some magical stuff with '(\w+)'/) do |*args|
10
+ # just example
11
+ end
12
+
13
+ """
14
+
15
+ Scenario: autosave after successfull execution
16
+ Given a file named "examples/autosave.feature" with:
17
+ """
18
+ Feature: example
19
+ Scenario: stop where exit
20
+ When I do some magical stuff with 'apples'
21
+ Then I will write new steps
22
+
23
+ """
24
+ When I run `cucumber examples/autosave.feature` interactively
25
+ And I type "When I do some magical stuff with 'chairs'"
26
+ And I type "exit"
27
+ Then it should pass with:
28
+ """
29
+ Saved `When I do some magical stuff with 'chairs'` to autosave.feature
30
+ """
31
+ And the file "examples/autosave.feature" should contain exactly:
32
+ """
33
+ Feature: example
34
+ Scenario: stop where exit
35
+ When I do some magical stuff with 'apples'
36
+ When I do some magical stuff with 'chairs'
37
+ Then I will write new steps
38
+
39
+ """
40
+
41
+ Scenario: autosave for empty line
42
+ Given a file named "examples/autosave_nl.feature" with:
43
+ """
44
+ Feature: example
45
+ Scenario: stop where exit
46
+ When I do some magical stuff with 'apples'
47
+ Then I will write new steps
48
+
49
+ """
50
+ When I run `cucumber examples/autosave_nl.feature` interactively
51
+ And I type ""
52
+ And I type "exit"
53
+ And the file "examples/autosave_nl.feature" should contain exactly:
54
+ """
55
+ Feature: example
56
+ Scenario: stop where exit
57
+ When I do some magical stuff with 'apples'
58
+
59
+ Then I will write new steps
60
+
61
+ """
62
+
63
+ Scenario: explicit save after step failure
64
+ Given a file named "examples/autosave_explicit.feature" with:
65
+ """
66
+ Feature: example
67
+ Scenario: stop where exit
68
+ When I do some magical stuff with 'apples'
69
+ Then I will write new steps
70
+
71
+ """
72
+ When I run `cucumber examples/autosave_explicit.feature` interactively
73
+ And I type "When new step is executed"
74
+ And I type "save"
75
+ And I type "exit"
76
+ Then it should pass with:
77
+ """
78
+ Saved `When new step is executed` to autosave_explicit.feature
79
+ """
80
+ And the file "examples/autosave_explicit.feature" should contain exactly:
81
+ """
82
+ Feature: example
83
+ Scenario: stop where exit
84
+ When I do some magical stuff with 'apples'
85
+ When new step is executed
86
+ Then I will write new steps
87
+
88
+ """
@@ -0,0 +1,29 @@
1
+ Feature: stop execution on cucumberator step & exit sucessfully
2
+ Scenario: using cucumberator step, but cucumberator not required
3
+ Given a file named "examples/simple_hook_test.feature" with:
4
+ """
5
+ Feature: example
6
+ Scenario: stop and exit
7
+ Then I will write new steps
8
+ """
9
+ When I run `cucumber examples/simple_hook_test.feature`
10
+ Then the output should contain "1 step (1 undefined)"
11
+
12
+ Scenario: using cucumberator step with cucumberator required
13
+ Given a file named "examples/simple_hook_test.feature" with:
14
+ """
15
+ Feature: example
16
+ Scenario: stop and exit
17
+ Then I will write new steps
18
+ """
19
+ And a file named "examples/support/env.rb" with:
20
+ """
21
+ require 'cucumberator'
22
+ """
23
+ When I run `cucumber examples/simple_hook_test.feature` interactively
24
+ And I type "exit"
25
+ Then it should pass with:
26
+ """
27
+ 1 scenario (1 passed)
28
+ 1 step (1 passed)
29
+ """
@@ -0,0 +1,31 @@
1
+ Feature: steps command
2
+ Background:
3
+ Given a file named "examples/support/env.rb" with:
4
+ """
5
+ require 'cucumberator'
6
+ """
7
+ Given a file named "examples/step_definitions/extra.rb" with:
8
+ """
9
+ When(/I do some magical stuff with '(\w+)'/) do |*args|
10
+ # just example
11
+ end
12
+
13
+ """
14
+ Given a file named "examples/steps.feature" with:
15
+ """
16
+ Feature: example
17
+ Scenario: stop where exit
18
+ Then I will write new steps
19
+
20
+ """
21
+
22
+ Scenario: check `steps` command
23
+ When I run `cucumber examples/steps.feature` interactively
24
+ And I type "steps"
25
+ And I type "exit"
26
+ Then it should pass with:
27
+ """
28
+ :: Yay, you have 2 steps in your pocket:
29
+ /^I will write new steps$/
30
+ /I do some magical stuff with '(\w+)'/
31
+ """