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.
@@ -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: []