module Awetestlib
# Report generator for Awetestlib.
class HtmlReport
# Initialize the report class
# @private
def initialize(report_name)
@reportname = report_name
@reportContent1 = ''
@reportContent2 = ''
end
# Create a report
# @private
def create_report(reportName)
# Get current time
t = Time.now
@col_1_p = '65%'
@col_2_p = '25%'
@col_3_p = '10%'
# Create the report name
rpt_time = "#{t.strftime("%Y%m%d_%H%M%S")}"
rpt_nice_time = "#{t.strftime("%m/%d/%Y @ %H:%M:%S")}"
rpt_file_name = "#{reportName}_#{rpt_time}.html"
# Create the HTML report
rpt_file = File.open(rpt_file_name, 'w')
# Format the header of the HTML report
@reportContent1 = '
Awetestlib Test Run
|
|
Test Report |
|
Script |
: |
' + @reportname.capitalize + ' |
|
Test Execution |
: |
' + rpt_nice_time + ' |
'
@reportContent2 = '
Test Step |
Location |
Result |
' + "\n"
# Close the report
rpt_file.close
return rpt_file_name
end
# Add a row to the report
# @private
def add_to_report(message, location, result, level = 1)
# Format the body of the HTML report
left_class = 'border_left'
right_class = 'border_right'
pgph_class = 'normal_text'
loc_class = 'center_text'
rslt_class = 'result_ok'
middle_class = 'border_middle'
rslt_class = 'result_nok' if result == "FAILED"
case result
when 'FAILED'
rslt_class = 'result_nok'
when 'PASSED'
rslt_class = 'result_ok'
else
if level
if level >= 1
pgph_class = 'bold_large_text'
left_class = 'mark_testlevel_left'
middle_class = 'mark_testlevel_middle'
right_class = 'mark_testlevel_right'
end
end
end
row = '
' + message + ' |
' + location + ' |
' + result + ' |
'
@reportContent2 += row + "\n"
#if (result == 'PASSED')
# @reportContent2 = @reportContent2 + 'C'
# @reportContent2 = @reportContent2 + '' + result + ' | '
#elsif (result == 'FAILED')
# @reportContent2 = @reportContent2 + ' ' + step + ' | '
# @reportContent2 = @reportContent2 + '' + result + ' | '
#elsif level < 1
# @reportContent2 = @reportContent2 + ' ' + step + ' | '
# @reportContent2 = @reportContent2 + '' + result + ' | '
#else
# @reportContent2 = @reportContent2 + ' ' + step + ' | '
# @reportContent2 = @reportContent2 + '' + result + ' | '
#end
end
# Close the report HTML
# @private
def finish_report(reportName)
# Open the HTML report
rpt_file = File.open(reportName, 'a')
@reportContent2 = @reportContent2 + '
|
|
|
'
rpt_file.puts(@reportContent1)
rpt_file.puts(@reportContent2)
# Close the report
rpt_file.close
end
end
end
|