diff options
| -rw-r--r-- | create_report.py | 14 | ||||
| -rw-r--r-- | template.html | 338 |
2 files changed, 93 insertions, 259 deletions
diff --git a/create_report.py b/create_report.py index 6a95a14..107f62c 100644 --- a/create_report.py +++ b/create_report.py @@ -1,22 +1,16 @@ +from parse_data import data, stats + from jinja2 import Environment, FileSystemLoader # Load the template from the current directory env = Environment(loader=FileSystemLoader('.')) template = env.get_template("template.html") -# Data to be passed into the template -data = { - "title": "My Report", - "items": ["Apple", "Banana", "Cherry"] -} - -data["items"].append("hello") - # Render the template with data -html_output = template.render(data) +html_output = template.render(data=data, stats=stats) # Save the generated HTML to a file with open("report.html", "w", encoding="utf-8") as f: f.write(html_output) -print("Report generated: report.html") +print("Report generated: report.html") \ No newline at end of file diff --git a/template.html b/template.html index bcd1aaa..0e2bfc8 100644 --- a/template.html +++ b/template.html @@ -268,9 +268,11 @@ .TableHeadingCell { background-color: rgb(179, 179, 179); + height: 30px; font-family: arial, verdana, trebuchet, officina, sans-serif; font-weight: bold; text-align: center; + padding: 5px; } .CellNoColor @@ -709,7 +711,11 @@ <center> <table class="OverallResultTable"> <tr> - <td class="PositiveResult">Test passed</td> + {% if stats.failed %} + <td class="NegativeResult">Test failed</td> + {% else %} + <td class="PositiveResult">Test passed</td> + {% endif %} </tr> </table> </center> @@ -722,73 +728,58 @@ </tr> </table> <div class="Indentation"> - <table class="DefaultTable"> - <tr> - <td style="padding-right: 0.5em;" class="CellNoColor">Test begin: </td> - <td style="padding-right: 0.5em;" class="CellNoColor">2024-12-12 13:51:35</td> - <td class="CellNoColor">(logging timestamp 121.519934)</td> - </tr> - <tr> - <td style="padding-right: 0.5em;" class="CellNoColor">Test end: </td> - <td style="padding-right: 0.5em;" class="CellNoColor">2024-12-12 23:30:01</td> - <td class="CellNoColor" nowrap>(logging timestamp 34826.705759)</td> - </tr> - </table> <div class="Heading4">Statistics</div> <div class="Indentation"> <table class="OverviewTable"> <tr> <td class="DefineCell">Overall number of test cases </td> - <td class="NumberCell" width="60">1</td> + <td class="NumberCell" width="60">{{stats.number_tests}}</td> <td class="DefaultCell"></td> </tr> <tr> - <td class="DefineCell">Executed test cases </td> - <td class="NumberCell">1</td> - <td class="DefaultCell">100% of all test cases</td> - </tr> - <tr> - <td class="DefineCell">Not executed test cases </td> - <td class="NumberCell">0</td> - <td class="DefaultCell">0% of all test cases</td> - </tr> - <tr> <td class="DefineCell">Test cases passed </td> - <td class="NumberCellPositiveResult">1</td> - <td class="NumberCellPositiveResult">100% of executed test cases</td> + {% if stats.failed %} + <td class="NumberCell">{{stats.number_passed}}</td> + <td class="NumberCell">{{stats.percentage_passed}}% of executed test cases</td> + {% else %} + <td class="NumberCellPositiveResult">{{stats.number_passed}}</td> + <td class="NumberCellPositiveResult">{{stats.percentage_passed|round(1)}}% of executed test cases</td> + {% endif %} </tr> <tr> <td class="DefineCell">Test cases failed </td> - <td class="NumberCell">0</td> - <td class="NumberCell">0% of executed test cases</td> + {% if stats.failed %} + <td class="NumberCellNegativeResult">{{stats.number_failed}}</td> + <td class="NumberCellNegativeResult">{{stats.percentage_failed|round(1)}}% of executed test cases</td> + {% else %} + <td class="NumberCell">{{stats.number_failed}}</td> + <td class="NumberCell">{{stats.percentage_failed}}% of executed test cases</td> + {% endif %} </tr> </table> </div> <div class="Heading4">Test Case Results</div> <div class="Indentation"> <table class="OverviewTable"> + {% for category in data %} <tr> - <td class="DefineCell">1</td> + <td class="DefineCell">{{loop.index}}</td> <td class="DefaultCell"></td> <td class="DefaultCell"> - <a href="#i__-962653104_8">iq_sys_integ_test_InterruptRX</a> + <a href="#i__{{loop.index}}">{{category.name}}</a> </td> - <td class="PositiveResultCell">pass</td> + + {% if category.failed %} + <td class="NegativeResultCell">fail</td> + {% else %} + <td class="PositiveResultCell">pass</td> + {% endif %} + </tr> + {% endfor %} </table> </div> </div> - <a name="TestModuleInfo"></a> - <table class="SubHeadingTable"> - <tr> - <td class="LinkCell"> - <a class="Undecorated" id="lnk_" href="javascript:switchAll('',document.all['lnk_'].text)">[−]</a> - </td> - <td> - <div class="Heading2">Test Module Information</div> - </td> - </tr> - </table> <table class="SubHeadingTable"> <tr> <td> @@ -796,232 +787,81 @@ </td> </tr> </table> + + {% for category in data %} + <table> <tr> <td class="LinkCell"> - <a class="Undecorated" id="lnk_1" href="javascript:switchAll('1',document.all['lnk_1'].text)">[−]</a> - </td> - <td class="TestcaseHeadingPositiveResult"> - <big class="Heading3">1 <a name="i__-962653104_8">iq_sys_integ_test_InterruptRX</a>: Passed</big> + <a class="Undecorated" id="lnk_{{loop.index}}" href="javascript:switchAll('{{loop.index}}',document.all['lnk_{{loop.index}}'].text)">[−]</a> </td> + {% if category.failed %} + <td class="TestcaseHeadingNegativeResult"> + <big class="Heading3">{{loop.index}} <a name="i__{{loop.index}}">{{category.name}}</a>: Failed</big> + </td> + {% else %} + <td class="TestcaseHeadingPositiveResult"> + <big class="Heading3">{{loop.index}} <a name="i__{{loop.index}}">{{category.name}}</a>: Passed</big> + </td> + {% endif %} </tr> </table> - <div class="Indentation" id="div_1"> - <div class="Indentation"> - <table class="DefaultTable"> - <tr> - <td style="padding-right: 0.5em;" class="CellNoColor">Test case begin: </td> - <td style="padding-right: 0.5em;" class="CellNoColor">2024-12-12 13:51:45</td> - <td class="CellNoColor">(logging timestamp 131.269934)</td> - </tr> - <tr> - <td style="padding-right: 0.5em;" class="CellNoColor">Test case end: </td> - <td style="padding-right: 0.5em;" class="CellNoColor">2024-12-12 23:30:01</td> - <td class="CellNoColor" nowrap>(logging timestamp 34826.705759)</td> - </tr> - </table> - </div> - <div class="Indentation"></div> - <table class="TestGroupHeadingBackground"> - <tr> - <td> - <big class="Heading3">Main Part of Test Case</big> - </td> - </tr> - </table> + <div class="Indentation" id="div_{{loop.index}}"> <div class="Indentation"> <table class="ResultTable"> <tr> <th class="TableHeadingCell" width="1px">Timestamp</th> - <th class="TableHeadingCell" width="1px">Test Step</th> - <th class="TableHeadingCell" width="auto">Description</th> <th class="TableHeadingCell" width="1px">Result</th> + <th class="TableHeadingCell" width="auto">Description</th> </tr> <tr> - <td class="PatternSeparator" colspan="4"></td> - </tr> - <tr class="PositiveResultBackground"> - <td style="text-indent: 20px;" class="ResultBlockHeading" colspan="4"> - <big class="Heading4">1. Software and setup - Informations about the flashed SW and the setup: Passed</big> - </td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 131.310581</td> - <td class="NumberCell"></td> - <td class="DefaultCell">INFO: System Supplier ECU Software Version Number: ---RELTX290</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 131.310581</td> - <td class="NumberCell"></td> - <td class="DefaultCell">INFO: System Bootloader Version: B901</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 131.310581</td> - <td class="NumberCell"></td> - <td class="DefaultCell">INFO: System Software Version: X290</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 131.310581</td> - <td class="NumberCell"></td> - <td class="DefaultCell">INFO: System Dataset Version: X290</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 131.310581</td> - <td class="NumberCell"></td> - <td class="DefaultCell">INFO: Dataset version: Evo 0402 - BMC_Dataset_XHX15EV0402M2.dcm</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td class="PatternSeparator" colspan="4"></td> - </tr> - <tr> - <td class="PatternSeparator" colspan="4"></td> - </tr> - <tr class="PositiveResultBackground"> - <td style="text-indent: 20px;" class="ResultBlockHeading" colspan="4"> - <big class="Heading4">2. Initializing - Initializing the testcase: Passed</big> - </td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 133.810581</td> - <td class="NumberCell"></td> - <td class="DefaultCell">CarManager: CarManager: Set KL15 ON</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 134.610581</td> - <td class="NumberCell"></td> - <td class="DefaultCell">CommunicationManager: UDS-Request 22 01 74</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 134.631223</td> - <td class="NumberCell"></td> - <td class="DefaultCell">SFDManager: GetUnlockStatusOfECUOfProtectionOfVehicleDiagnosis response: 62 01 74 00 00 00 00</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 134.631223</td> - <td class="NumberCell"></td> - <td class="DefaultCell">CarManager: CarManager: Set KL15 OFF</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 135.431223</td> - <td class="NumberCell"></td> - <td class="DefaultCell">CommunicationManager: UDS-Request 22 F1 86</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 135.521790</td> - <td class="NumberCell"></td> - <td class="DefaultCell">CommunicationManager: UDS-Request 22 F1 86</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 135.541488</td> - <td class="NumberCell"></td> - <td class="DefaultCell">CommunicationManager: UDS-Request 10 03</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 135.562473</td> - <td class="NumberCell"></td> - <td class="DefaultCell">Changed to session EXTENDED (03)</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 135.562473</td> - <td class="NumberCell"></td> - <td class="DefaultCell">CommunicationManager: UDS-Request 22 0A A3</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 135.581408</td> - <td class="NumberCell"></td> - <td class="DefaultCell">CommunicationManager: UDS-Request 22 F1 86</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 135.601411</td> - <td class="NumberCell"></td> - <td class="DefaultCell">CommunicationManager: UDS-Request 10 01</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 135.621405</td> - <td class="NumberCell"></td> - <td class="DefaultCell">Changed to session STANDARD (01)</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td class="PatternSeparator" colspan="4"></td> - </tr> - <tr> - <td class="PatternSeparator" colspan="4"></td> - </tr> - <tr class="PositiveResultBackground"> - <td style="text-indent: 20px;" class="ResultBlockHeading" colspan="4"> - <big class="Heading4">3. Test Routine - Actual testcase: Passed</big> - </td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell"> 135.621405</td> - <td class="NumberCell"></td> - <td class="DefaultCell">INFO: Ignoring DTC 0x10000A: BMC_F_ChineseSerialNumber_Unfilled : BMC_F_ChineseSerialNumber_Unfilled</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell">7794.021654</td> - <td class="NumberCell"></td> - <td class="DefaultCell">Reset Condition (shortloop vs. timeout) correctly specified.</td> - <td class="PositiveResultCell">pass</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell">7794.021654</td> - <td class="NumberCell"></td> - <td class="DefaultCell">Reset Condition (shortloop vs. timeout) correctly specified.</td> - <td class="NegativeResultCell">fail</td> - </tr> - <tr> - <td class="PatternSeparator" colspan="4"></td> - </tr> - <tr> - <td class="PatternSeparator" colspan="4"></td> - </tr> - <tr class="PositiveResultBackground"> - <td style="text-indent: 20px;" class="ResultBlockHeading" colspan="4"> - <big class="Heading4">4. Finalizing - Cleaning up: Passed</big> - </td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell">34825.405759</td> - <td class="NumberCell"></td> - <td class="DefaultCell">FaultManager: Successfully cleared DTCs</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell">34825.905759</td> - <td class="NumberCell"></td> - <td class="DefaultCell">INFO: CarManager: CarManager: KL15 is already ON</td> - <td class="DefaultCell">-</td> - </tr> - <tr> - <td style="text-indent: 20px;" class="DefineCell">34825.905759</td> - <td class="NumberCell"></td> - <td class="DefaultCell">CarManager: CarManager: Set KL15 OFF</td> - <td class="DefaultCell">-</td> + <td class="PatternSeparator" colspan="3"></td> </tr> + + {% for test in category.tests %} + + {% if test.failed %} + <tr class="NegativeResultBackground"> + <td style="text-indent: 20px;" class="ResultBlockHeading" colspan="3"> + <big class="Heading4">Test {{loop.index}} - {{test.description}}: Failed</big> + {% else %} + <tr class="PositiveResultBackground"> + <td style="text-indent: 20px;" class="ResultBlockHeading" colspan="3"> + <big class="Heading4">Test {{loop.index}} - {{test.description}}: Passed</big> + {% endif %} + </td> + </tr> + + {% for log in test.logs %} + <tr> + <td style="text-indent: 20px;" class="DefineCell"> {{log.timestamp}}</td> + {% if log.log_type == "FAIL" %} + <td class="NegativeResultCell">fail</td> + {% elif log.log_type == "SUCCESS" %} + <td class="PositiveResultCell">pass</td> + {% else %} + <td class="DefaultCell">info</td> + {% endif %} + <td class="DefaultCell">{{log.fail_message}}</td> + </tr> + {% endfor %} + + <tr> + <td class="PatternSeparator" colspan="3"></td> + </tr> + + {% endfor %} + + <tr> - <td class="PatternSeparator" colspan="4"></td> + <td class="PatternSeparator" colspan="3"></td> </tr> </table> </div> </div> + + {% endfor %} + <table class="SubHeadingTable"> <tr> <td> |