module Cucumber::Blanket
Constants
- VERSION
Public Class Methods
coverage_data()
click to toggle source
# File lib/cucumber/blanket.rb, line 10 def coverage_data @@coverage_data end
coverage_is_setup?()
click to toggle source
# File lib/cucumber/blanket.rb, line 38 def coverage_is_setup? @page.evaluate_script("window.CUCUMBER_BLANKET.is_setup") rescue false end
data_ready?()
click to toggle source
# File lib/cucumber/blanket.rb, line 42 def data_ready? @page.evaluate_script("window.CUCUMBER_BLANKET.done") rescue false end
extract_from(page)
click to toggle source
Grab code coverage from the frontend Currently this adds something like a few second or more to every scenario The waits are lame but here’s what it’s trying to avoid
unknown error: You must call blanket.setupCoverage() first. (Session info: chrome=31.0.1650.63) (Driver info: chromedriver=2.6.232908,platform=Mac OS X 10.9.1 x86_64) (Selenium::WebDriver::Error::UnknownError)
# File lib/cucumber/blanket.rb, line 28 def extract_from page @page = page sleep(0.2) until coverage_is_setup? page.evaluate_script("blanket.onTestsDone();") sleep(0.2) until data_ready? page_data = page.evaluate_script("window.CUCUMBER_BLANKET") @@coverage_data.accrue! page_data return page_data end
method_missing(*args)
click to toggle source
# File lib/cucumber/blanket.rb, line 18 def method_missing *args self.coverage_data.send(*args) end
percent()
click to toggle source
# File lib/cucumber/blanket.rb, line 46 def percent total_lines = 0 covered_lines = 0 self.files.each do |filename, linedata| linedata.compact.each do |cov_stat| if cov_stat > 0 covered_lines += 1 end total_lines += 1 end end if total_lines > 0 return ((covered_lines.to_f / total_lines)*100).round(2) else return 0.0 end end
reset!()
click to toggle source
# File lib/cucumber/blanket.rb, line 14 def reset! @@coverage_data = CoverageData.new end
write_html_report(path)
click to toggle source
# File lib/cucumber/blanket.rb, line 64 def write_html_report path generator = ReportGenerator.new(:html, self) File.open(path, 'w') do |file| file.write(generator.render) end end