cucumber-console 0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -0,0 +1,60 @@
1
+ Cucumber Console
2
+ =============
3
+
4
+ Cucumber Console allows you to run your Cucumber tests in a Rails console.
5
+ Best served chilled with [irb-config](https://github.com/nviennot/irb-config).
6
+
7
+ ### Watch the screencast
8
+
9
+ [![Watch the screencast!](https://s3.amazonaws.com/velvetpulse/screencasts/irb-config-screencast.jpg)](http://velvetpulse.com/2012/11/19/improve-your-ruby-workflow-by-integrating-vim-tmux-pry/)
10
+
11
+ Usage
12
+ ------
13
+
14
+ Install it with:
15
+
16
+ ```ruby
17
+ gem 'cucumber-console'
18
+ ```
19
+
20
+ If you have [Pry](https://github.com/pry/pry) installed, you will have access to the `cucumber` command
21
+ in your console, which works exactly like the shell command line cucumber one.
22
+
23
+
24
+ ```
25
+ pafy@bisou ~/prj/pleasehalp [master●] % rails c
26
+ Loading development environment (Rails 3.2.9)
27
+ ~/prj/pleasehalp (development) > cucumber --format=pretty features/questions.feature:8
28
+ Using the default profile...
29
+ Feature: User asks a question
30
+
31
+ @javascript
32
+ Scenario: User asks a question # features/questions.feature:4
33
+ Given I am on the homepage # features/step_definitions/web_steps.rb:50
34
+ When I fill in the question field with "What time is it?" # features/step_definitions/question.rb:1
35
+ And I press "Ask" # features/step_definitions/web_steps.rb:58
36
+ Then the "question_text" field within the page should equal "" # features/step_definitions/web_steps.rb:145
37
+ And I should see a question "What time is it?" # features/step_definitions/question.rb:5
38
+
39
+ 1 scenario (1 passed)
40
+ 5 steps (5 passed)
41
+ 0m1.036s
42
+
43
+ ~/prj/crowdtap/sniper (development) >
44
+ ```
45
+
46
+ If you don't have pry, you can use:
47
+
48
+ ```ruby
49
+ CucumberConsole.run '--format=pretty', 'features/questions.feature:8'
50
+ ```
51
+
52
+ TODO
53
+ ----
54
+
55
+ * Testing
56
+
57
+ License
58
+ -------
59
+
60
+ MIT License
@@ -0,0 +1,10 @@
1
+ module CucumberConsole
2
+ autoload :Runner, 'cucumber-console/runner'
3
+ autoload :Pry, 'cucumber-console/pry'
4
+
5
+ def self.run(*args)
6
+ Runner.run(args)
7
+ end
8
+
9
+ Pry.setup if defined?(::Pry)
10
+ end
@@ -0,0 +1,12 @@
1
+ module CucumberConsole::Pry
2
+ def self.setup
3
+ ::Pry::CommandSet.new do
4
+ create_command "cucumber", "Works pretty much like the regular cucumber command" do
5
+ group "Testing"
6
+ def process(*args)
7
+ CucumberConsole::Runner.run(args)
8
+ end
9
+ end
10
+ end.tap { |cmd| ::Pry::Commands.import cmd }
11
+ end
12
+ end
@@ -0,0 +1,52 @@
1
+ class CucumberConsole::Runner
2
+ def self.reset(args)
3
+ require 'cucumber'
4
+ require 'cucumber/rspec/disable_option_parser'
5
+ require 'optparse'
6
+ require 'cucumber'
7
+ require 'logger'
8
+ require 'cucumber/parser'
9
+ require 'cucumber/feature_file'
10
+ require 'cucumber/cli/configuration'
11
+
12
+ # If we are using RSpec, make sure we load it before, because some step
13
+ # definitions may contain some rspec wizardry.
14
+ ::RSpecConsole::Runner.reset(args) if defined?(::RSpec) && defined?(::RSpecConsole)
15
+
16
+ config = ::Cucumber::Cli::Configuration.new
17
+ config.parse!(args)
18
+ ::Cucumber.logger = config.log
19
+
20
+ if @runtime
21
+ def config.support_to_load
22
+ begin
23
+ load 'factory_girl/step_definitions.rb' if defined?(FactoryGirl)
24
+ rescue LoadError
25
+ end
26
+ []
27
+ end
28
+ @runtime.configure(config)
29
+ else
30
+ @runtime = ::Cucumber::Runtime.new(config)
31
+ end
32
+
33
+ @runtime.instance_eval do
34
+ @loader = nil
35
+ @results = ::Cucumber::Runtime::Results.new(config)
36
+ @support_code.instance_eval do
37
+ @programming_languages.map do |programming_language|
38
+ programming_language.step_definitions.clear
39
+ end
40
+ end
41
+ end
42
+ end
43
+
44
+ def self.run(args)
45
+ ::RailsEnvSwitcher.with_env('test', :reload => true) do
46
+ reset(args)
47
+ @runtime.run!
48
+ @runtime.write_stepdefs_json
49
+ @runtime.results.failure?
50
+ end
51
+ end
52
+ end
@@ -0,0 +1,3 @@
1
+ module CucumberConsole
2
+ VERSION = '0.1'
3
+ end
metadata ADDED
@@ -0,0 +1,83 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: cucumber-console
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.1'
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Nicolas Viennot
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-12-21 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: cucumber
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: rails-env-switcher
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: '0'
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
46
+ description: Run Cucumber tests in your console
47
+ email:
48
+ - nicolas@viennot.biz
49
+ executables: []
50
+ extensions: []
51
+ extra_rdoc_files: []
52
+ files:
53
+ - lib/cucumber-console/pry.rb
54
+ - lib/cucumber-console/version.rb
55
+ - lib/cucumber-console/runner.rb
56
+ - lib/cucumber-console.rb
57
+ - README.md
58
+ homepage: http://github.com/nviennot/cucumber-console
59
+ licenses: []
60
+ post_install_message:
61
+ rdoc_options: []
62
+ require_paths:
63
+ - lib
64
+ required_ruby_version: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ required_rubygems_version: !ruby/object:Gem::Requirement
71
+ none: false
72
+ requirements:
73
+ - - ! '>='
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ requirements: []
77
+ rubyforge_project:
78
+ rubygems_version: 1.8.24
79
+ signing_key:
80
+ specification_version: 3
81
+ summary: Run Cucumber tests in your console
82
+ test_files: []
83
+ has_rdoc: false