cucumber-blanket 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
@@ -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,5 @@
1
+ module Cucumber
2
+ module Blanket
3
+ VERSION = "0.0.1"
4
+ end
5
+ end
@@ -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: []