crudecumber 0.1.3
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.
- checksums.yaml +7 -0
- data/bin/crudecumber +3 -0
- data/lib/crudecumber.rb +34 -0
- data/lib/crudecumber/crudecumber_steps.rb +18 -0
- data/lib/crudecumber/support/crudecumber_formatter.rb +37 -0
- data/lib/crudecumber/support/env.rb +12 -0
- data/lib/crudecumber/support/pass_fail.rb +40 -0
- metadata +95 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: d4b2f150039642ac68d438ca544d69a5f40e6830
|
4
|
+
data.tar.gz: 291d9192107bb5786868669eb8577bc0edb10280
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: c91452bf353ec656f5947f744090ab185b478a0c3c980cf99092fa77d16517d03420670911acf60639b79589bb4f4c6a3b175ebcefd52a7e11e7f1a1ad4b6bd2
|
7
|
+
data.tar.gz: a7435fd4f56e0d1605b2e9eecf817afe78d69147d5931d72ddbd619e3fd6e72cca899ec9a13f0041bf5d08b901d0550935bb60d07fe056ed52418833151d926f
|
data/bin/crudecumber
ADDED
data/lib/crudecumber.rb
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
# This simply requires the Crudecumber step definitions and runs Cucumber with
|
2
|
+
# a SlowHandCuke style formatter and an output HTML report.
|
3
|
+
|
4
|
+
trap('INT') do
|
5
|
+
system('stty -raw echo')
|
6
|
+
STDERR.puts "\n\n"
|
7
|
+
exit!(1)
|
8
|
+
end
|
9
|
+
|
10
|
+
def log(message)
|
11
|
+
return unless ARGV.include?('-v' || '--verbose')
|
12
|
+
$stdout.puts "#{Time.now.strftime('%Y-%m-%d %H:%M:%S')} - #{message}"
|
13
|
+
end
|
14
|
+
|
15
|
+
def steps
|
16
|
+
File.join(File.dirname(File.expand_path(__FILE__)),
|
17
|
+
'crudecumber/crudecumber_steps.rb')
|
18
|
+
end
|
19
|
+
|
20
|
+
def support_files
|
21
|
+
File.join(File.dirname(File.expand_path(__FILE__)),
|
22
|
+
'crudecumber/support/')
|
23
|
+
end
|
24
|
+
|
25
|
+
STDOUT.sync = true
|
26
|
+
arguments = ARGV
|
27
|
+
cmd = "cucumber #{arguments.join(' ')} -r #{steps} -r #{support_files} "\
|
28
|
+
'-f Crudecumber::Formatter -f Crudecumber::Report '\
|
29
|
+
'-o crudecumber_results.html'
|
30
|
+
log cmd
|
31
|
+
exit_code = system(cmd)
|
32
|
+
|
33
|
+
sleep(1)
|
34
|
+
exit_code
|
@@ -0,0 +1,18 @@
|
|
1
|
+
# Global step definition which matches with all steps in a feature.
|
2
|
+
# Essentially listens for the keys "return", "p", "f", "x" and "s" and then
|
3
|
+
# decides whether to pass, fail or skip the step being run.
|
4
|
+
|
5
|
+
Then(/^.*$/) do
|
6
|
+
Cucumber.trap_interrupt
|
7
|
+
key = capture_key
|
8
|
+
if skipped?(key)
|
9
|
+
puts ' Test skipped'
|
10
|
+
pending
|
11
|
+
else
|
12
|
+
unless pass?(key)
|
13
|
+
print "\n Describe the problem: "
|
14
|
+
puts ' Notes: ' + STDIN.gets.chomp
|
15
|
+
fail
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'rubygems'
|
2
|
+
require 'cucumber/formatter/pretty'
|
3
|
+
require 'cucumber/formatter/html'
|
4
|
+
|
5
|
+
module Crudecumber
|
6
|
+
# Custom formatter that inherits from the standard Cucumber 'Pretty'
|
7
|
+
# formatter used for terminal output.
|
8
|
+
#
|
9
|
+
# The formatter prints each scenario step before it is run (similar to the
|
10
|
+
# SlowHandCuke formatter) and stops irrelevant Ruby errors being displayed.
|
11
|
+
class Formatter < Cucumber::Formatter::Pretty
|
12
|
+
def before_step(step)
|
13
|
+
@io.printf "... #{step.name}"
|
14
|
+
@io.flush
|
15
|
+
end
|
16
|
+
|
17
|
+
def before_step_result(*args)
|
18
|
+
@io.printf "\r"
|
19
|
+
super
|
20
|
+
end
|
21
|
+
|
22
|
+
def exception(_arg_1, _arg_2)
|
23
|
+
# Do nothing
|
24
|
+
end
|
25
|
+
end
|
26
|
+
|
27
|
+
# Custom formatter that inherits from the standard Cucumber 'Html' formatter
|
28
|
+
# used for terminal output.
|
29
|
+
#
|
30
|
+
# The formatters sole purpose is to stop ruby errors being displayed in the
|
31
|
+
# output HTML report.
|
32
|
+
class Report < Cucumber::Formatter::Html
|
33
|
+
def exception(_arg_1, _arg_2)
|
34
|
+
# Do nothing
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'launchy'
|
2
|
+
|
3
|
+
require File.dirname(__FILE__) + '/pass_fail.rb'
|
4
|
+
require File.dirname(__FILE__) + '/crudecumber_formatter.rb'
|
5
|
+
|
6
|
+
# Automatically opens the HTML report unless Crudecumber is terminated early.
|
7
|
+
at_exit do
|
8
|
+
d = Dir.pwd
|
9
|
+
unless Cucumber.wants_to_quit
|
10
|
+
Launchy.open('file:///' + d + '/crudecumber_results.html')
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
require 'io/console'
|
2
|
+
|
3
|
+
# Listens for the keys "return", "p", "f", "x" and "s" and then decides whether
|
4
|
+
# to pass, fail, or skip the step being run.
|
5
|
+
module PassFail
|
6
|
+
def capture_key
|
7
|
+
str = ''
|
8
|
+
system('stty raw -echo isig')
|
9
|
+
str = STDIN.getc.chr until ['p', "\r", 'f', 'x', 's'].include? str.downcase
|
10
|
+
system('stty -raw echo')
|
11
|
+
str.downcase
|
12
|
+
end
|
13
|
+
|
14
|
+
def skipped?(a)
|
15
|
+
{
|
16
|
+
s: true,
|
17
|
+
p: false,
|
18
|
+
:"\r" => false,
|
19
|
+
x: false,
|
20
|
+
f: false
|
21
|
+
}[a.to_sym]
|
22
|
+
end
|
23
|
+
|
24
|
+
def pass?(a)
|
25
|
+
{
|
26
|
+
p: true,
|
27
|
+
:"\r" => true,
|
28
|
+
x: false,
|
29
|
+
f: false
|
30
|
+
}[a.to_sym]
|
31
|
+
end
|
32
|
+
|
33
|
+
def Cucumber.trap_interrupt
|
34
|
+
trap('INT') do
|
35
|
+
exit!(1)
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
World(PassFail)
|
metadata
ADDED
@@ -0,0 +1,95 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: crudecumber
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.3
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Dan Buckland
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-06-15 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: cucumber
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
- - ">="
|
21
|
+
- !ruby/object:Gem::Version
|
22
|
+
version: 1.3.3
|
23
|
+
type: :runtime
|
24
|
+
prerelease: false
|
25
|
+
version_requirements: !ruby/object:Gem::Requirement
|
26
|
+
requirements:
|
27
|
+
- - "~>"
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '1.3'
|
30
|
+
- - ">="
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: 1.3.3
|
33
|
+
- !ruby/object:Gem::Dependency
|
34
|
+
name: launchy
|
35
|
+
requirement: !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - "~>"
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '2.0'
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
version: 2.0.4
|
43
|
+
type: :runtime
|
44
|
+
prerelease: false
|
45
|
+
version_requirements: !ruby/object:Gem::Requirement
|
46
|
+
requirements:
|
47
|
+
- - "~>"
|
48
|
+
- !ruby/object:Gem::Version
|
49
|
+
version: '2.0'
|
50
|
+
- - ">="
|
51
|
+
- !ruby/object:Gem::Version
|
52
|
+
version: 2.0.4
|
53
|
+
description: |-
|
54
|
+
Manually run through your Cucumber scenarios.
|
55
|
+
|
56
|
+
Run exactly as you would run Cucumber but instead use "crudecumber" followed
|
57
|
+
by your usual arguments. May not work if you use profiles to manually require
|
58
|
+
automation step definitions.
|
59
|
+
email: danbucklan@gmail.com
|
60
|
+
executables:
|
61
|
+
- crudecumber
|
62
|
+
extensions: []
|
63
|
+
extra_rdoc_files: []
|
64
|
+
files:
|
65
|
+
- bin/crudecumber
|
66
|
+
- lib/crudecumber.rb
|
67
|
+
- lib/crudecumber/crudecumber_steps.rb
|
68
|
+
- lib/crudecumber/support/crudecumber_formatter.rb
|
69
|
+
- lib/crudecumber/support/env.rb
|
70
|
+
- lib/crudecumber/support/pass_fail.rb
|
71
|
+
homepage: https://github.com/danbuckland/crudecumber
|
72
|
+
licenses:
|
73
|
+
- MIT
|
74
|
+
metadata: {}
|
75
|
+
post_install_message:
|
76
|
+
rdoc_options: []
|
77
|
+
require_paths:
|
78
|
+
- lib
|
79
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
80
|
+
requirements:
|
81
|
+
- - ">="
|
82
|
+
- !ruby/object:Gem::Version
|
83
|
+
version: 1.9.3
|
84
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
85
|
+
requirements:
|
86
|
+
- - ">="
|
87
|
+
- !ruby/object:Gem::Version
|
88
|
+
version: '0'
|
89
|
+
requirements: []
|
90
|
+
rubyforge_project:
|
91
|
+
rubygems_version: 2.2.2
|
92
|
+
signing_key:
|
93
|
+
specification_version: 4
|
94
|
+
summary: Crudecumber 0.1.3
|
95
|
+
test_files: []
|