cucumber-blanket 0.0.1
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/.gitignore +17 -0
- data/Gemfile +4 -0
- data/LICENSE.txt +22 -0
- data/README.md +67 -0
- data/Rakefile +1 -0
- data/cucumber-blanket.gemspec +23 -0
- data/javascript/blanket.js +5446 -0
- data/javascript/cucumber-blanket.js +30 -0
- data/lib/cucumber/blanket/version.rb +5 -0
- data/lib/cucumber/blanket.rb +31 -0
- metadata +82 -0
@@ -0,0 +1,30 @@
|
|
1
|
+
(function (){
|
2
|
+
/* ADAPTER
|
3
|
+
*
|
4
|
+
* This blanket.js adapter is designed to autostart coverage
|
5
|
+
* immediately. The other side of this is handled from Cucumber
|
6
|
+
*
|
7
|
+
* Required blanket commands:
|
8
|
+
* blanket.setupCoverage(); // Do it ASAP
|
9
|
+
* blanket.onTestStart(); // Do it ASAP
|
10
|
+
* blanket.onTestDone(); // After Scenario Hook
|
11
|
+
* blanket.onTestsDone(); // After Scenario Hook
|
12
|
+
*/
|
13
|
+
|
14
|
+
blanket.beforeStartTestRunner({
|
15
|
+
callback: function() {
|
16
|
+
blanket.setupCoverage();
|
17
|
+
blanket.onTestStart();
|
18
|
+
}
|
19
|
+
});
|
20
|
+
|
21
|
+
|
22
|
+
/* REPORTER
|
23
|
+
*
|
24
|
+
* Blanket.js docs speak of blanket.customReporter but
|
25
|
+
* that doesn't actually work so we'll override defaultReporter
|
26
|
+
*/
|
27
|
+
blanket.defaultReporter = function(coverage_results){
|
28
|
+
window.COVERAGE_RESULTS = coverage_results; // We'll grab this on selenium side
|
29
|
+
};
|
30
|
+
})();
|
@@ -0,0 +1,31 @@
|
|
1
|
+
require "cucumber/blanket/version"
|
2
|
+
|
3
|
+
module Cucumber
|
4
|
+
module Blanket
|
5
|
+
class << self
|
6
|
+
@@coverage_data = []
|
7
|
+
|
8
|
+
# Grab code coverage from the frontend
|
9
|
+
# Currently this adds >1 second to every scenario, but it's worth it
|
10
|
+
def extract_from page
|
11
|
+
sleep 0.5 # Give blanketJS time to setupCoverage() before we go to stop it
|
12
|
+
page.evaluate_script("blanket.onTestDone();")
|
13
|
+
page.evaluate_script("blanket.onTestsDone();")
|
14
|
+
sleep 0.5 # Allow time for blanketJS and the adapter to prepare the report
|
15
|
+
@@coverage_data << page.evaluate_script("window.COVERAGE_RESULTS")
|
16
|
+
flatten!
|
17
|
+
end
|
18
|
+
|
19
|
+
def flatten!
|
20
|
+
# go through every line of every file and OR it all together
|
21
|
+
# e.g. line 1 is 1 and 0, so it is 1
|
22
|
+
# @@coverage_data should never exceed length 2
|
23
|
+
end
|
24
|
+
|
25
|
+
def generate_report
|
26
|
+
# but for now, so you know it's there...
|
27
|
+
puts "coverage data length: #{@@coverage_data.length}"
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
31
|
+
end
|
metadata
ADDED
@@ -0,0 +1,82 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: cucumber-blanket
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Keyvan Fatehi
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2014-01-01 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bundler
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ~>
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '1.3'
|
20
|
+
type: :development
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ~>
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '1.3'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - '>='
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - '>='
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
description: Extract Blanket.js code coverage data from within a Ruby Cucumber environment
|
42
|
+
email:
|
43
|
+
- keyvanfatehi@gmail.com
|
44
|
+
executables: []
|
45
|
+
extensions: []
|
46
|
+
extra_rdoc_files: []
|
47
|
+
files:
|
48
|
+
- .gitignore
|
49
|
+
- Gemfile
|
50
|
+
- LICENSE.txt
|
51
|
+
- README.md
|
52
|
+
- Rakefile
|
53
|
+
- cucumber-blanket.gemspec
|
54
|
+
- javascript/blanket.js
|
55
|
+
- javascript/cucumber-blanket.js
|
56
|
+
- lib/cucumber/blanket.rb
|
57
|
+
- lib/cucumber/blanket/version.rb
|
58
|
+
homepage: https://github.com/keyvanfatehi/cucumber-blanket
|
59
|
+
licenses:
|
60
|
+
- MIT
|
61
|
+
metadata: {}
|
62
|
+
post_install_message:
|
63
|
+
rdoc_options: []
|
64
|
+
require_paths:
|
65
|
+
- lib
|
66
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
67
|
+
requirements:
|
68
|
+
- - '>='
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
version: '0'
|
71
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - '>='
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
requirements: []
|
77
|
+
rubyforge_project:
|
78
|
+
rubygems_version: 2.0.3
|
79
|
+
signing_key:
|
80
|
+
specification_version: 4
|
81
|
+
summary: Extract Blanket.js code coverage data from within a Ruby Cucumber environment
|
82
|
+
test_files: []
|