Home

Awesome

ReportBuilder

Gem Version Build status Join the chat at https://gitter.im/rajatthareja/ReportBuilder

Ruby gem to merge Cucumber JSON reports and build mobile-friendly HTML Test Report, JSON report and retry file.

Sample Reports

Features Report

Grouped Features Report

Installation


gem install report_builder

Information

Usage

Note: Works with cucumber(>= 2.1.0) test results in JSON format.

Config Options:

OptionTypeDefaultValues
json_path/input_path[String]/[Array]/[Hash](current directory)input json files path / array of json files or path / hash of json files or path
report_path[String]'test_report'reports output file path with file name without extension
json_report_path[String](report_path)json report output file path with file name without extension
html_report_path[String](report_path)html report output file path with file name without extension
retry_report_path[String](report_path)retry report output file path with file name without extension
report_types[Array][:html]:json, :html, :retry (output file types)
report_title[String]'Test Results'report and html title
include_images[Boolean]truetrue / false (If false, the size of HTML report is reduced by excluding embedded images)
voice_commands[Boolean]falsetrue / false (Enable voice commands for easy navigation and search)
additional_info[Hash]{}additional info for report summary
additional_css[String]niladditional CSS string or CSS file path or CSS file url for customizing html report
additional_js[String]niladditional JS string or JS file path or JS file url for customizing html report
color[String]brownreport color, Ex: indigo, cyan, purple, grey, lime etc.

Code Examples:


     require 'report_builder'
    
    # Ex 1:
    ReportBuilder.configure do |config|
      config.input_path = 'results/cucumber_json'
      config.report_path = 'my_test_report'
      config.report_types = [:retry, :html]
      config.report_title = 'My Test Results'
      config.additional_info = {browser: 'Chrome', environment: 'Stage 5'}
    end
    
    ReportBuilder.build_report
    
    # Ex 2:
    ReportBuilder.input_path = 'results/cucumber_json'
    ReportBuilder.report_path = 'my_test_report'
    ReportBuilder.report_types = [:retry, :html]
    ReportBuilder.report_title = 'My Test Results'
    ReportBuilder.additional_info = {Browser: 'Chrome', Environment: 'Stage 5'}
    
    ReportBuilder.build_report
    
    # Ex 3:
    options = {
       input_path: 'results/cucumber_json',
       report_path: 'my_test_report',
       report_types: ['retry', 'html'],
       report_title: 'My Test Results',
       additional_info: {'Browser' => 'Chrome', 'Environment' => 'Stage 5'}
     }
    
    ReportBuilder.build_report options
    
    # Ex 4:
    ReportBuilder.input_path = 'results/cucumber_json'
    
    ReportBuilder.configure do |config|
      config.report_path = 'my_test_report'
      config.report_types = [:json, :html]
    end
    
   options = {
       report_title: 'My Test Results'
   }
   
   ReportBuilder.build_report options
        

Grouped Features Report Example:


ReportBuilder.configure do |config|
     config.input_path = {
      'Group A' => ['path/of/json/files/dir1', 'path/of/json/files/dir2'],
      'Group B' => ['path/of/json/file1', 'path/of/json/file2'],
      'Group C' => 'path/of/json/files/dir'}
  end

ReportBuilder.build_report

CLI Options:

OptionValuesExplanation
-s, --sourcex,y,zList of input json path or files
-o, --out[PATH]NAMEReports path with name without extension
--json_out[PATH]NAMEJSON report path with name without extension
--html_out[PATH]NAMEHTML report path with name without extension
--retry_out[PATH]NAMERetry report path with name without extension
-f, --formatx,y,zList of report format - html,json,retry
--[no-]imagesReduce HTML report size by excluding embedded images
-T, --titleTITLEReport title
-c, --colorCOLORReport color
-I, --infoa:x,b:y,c:zList of additional info about test - key:value
--cssCSS/PATH/URLAdditional CSS string or CSS file path or CSS file url for customizing html report
--jsJS/PATH/URLAdditional JS string or JS file path or JS file url for customizing html report
-vc, --voice_commandsEnable voice commands for easy navigation and search
-h, --helpShow available command line switches
-v, --versionShow gem version

CLI Example:


     report_builder
     report_builder -s 'path/of/json/files/dir'
     report_builder -s 'path/of/json/files/dir' -o my_report_file

Hook Example:


require 'report_builder'
    
at_exit do
  ReportBuilder.configure do |config|
    config.input_path = 'results/cucumber_json'
    config.report_path = 'results/report'
  end
  ReportBuilder.build_report
end

Voice Commands:

Use voice commands for easy navigation and search

Report Builder Java API

Report Builder Java

Contributing

We're open to any contribution. It has to be tested properly though.

License

Copyright (c) 2017 MIT LICENSE