+ +
+
+
+
+

+ + ๅ•ๅ…ƒๆต‹่ฏ•ๆŠฅๅ‘Š +

+

+ ็”Ÿๆˆๆ—ถ้—ด: {datetime.now().strftime("%Y-%m-%d %H:%M:%S")} +

+
+
+ + {overall_status} + +
+
+
+
+ + +
+
+
+
+
+ +
+

{test_info['passed_tests']}

+

้€š่ฟ‡ๆต‹่ฏ•

+
+
+
+
+
+
+
+ +
+

{test_info['failed_tests']}

+

ๅคฑ่ดฅๆต‹่ฏ•

+
+
+
+
+
+
+
+ +
+

{test_info['duration']}s

+

ๆต‹่ฏ•ๆ—ถ้•ฟ

+
+
+
+
+
+
+
+ +
+

{coverage_info['function_coverage']:.1f}%

+

่ฆ†็›–็އ

+
+
+
+
+ + +
+ +
+ +
+
+
+ + ๆต‹่ฏ•ๆ‰ง่กŒๆ€ป่งˆ +
+
+
+
+
+

ๆ€ปๆต‹่ฏ•ๆ•ฐ: {test_info['total_tests']}

+

้€š่ฟ‡็އ: {(test_info['passed_tests']/test_info['total_tests']*100) if test_info['total_tests'] > 0 else 0:.1f}%

+
+
+

ๆ‰ง่กŒๆ—ถ้—ด: {test_info['duration']} ็ง’

+

ๅนณๅ‡็”จๆ—ถ: {(test_info['duration']/test_info['total_tests']) if test_info['total_tests'] > 0 else 0:.3f} ็ง’/ๆต‹่ฏ•

+
+
+
+
+ + {failed_tests_html} + {test_details_html} +
+ + +
+ +
+
+
+ + ไปฃ็ ่ฆ†็›–็އ +
+
+
+
+
+ ่กŒ่ฆ†็›–็އ + {coverage_info['line_coverage']:.1f}% +
+
+
+
+
+ +
+
+ ๅ‡ฝๆ•ฐ่ฆ†็›–็އ + {coverage_info['function_coverage']:.1f}% +
+
+
+
+
+ +
+
+ ๅˆ†ๆ”ฏ่ฆ†็›–็އ + {coverage_info['branch_coverage']:.1f}% +
+
+
+
+
+ +
+

่ฆ†็›–ๆ–‡ไปถ: {coverage_info['files_covered']}/{coverage_info['total_files']}

+

็”Ÿๆˆๆ—ถ้—ด: {coverage_info['duration']} ็ง’

+
+
+ + +
+
+
+ + ๆž„ๅปบไฟกๆฏ +
+
+
+

CMake็‰ˆๆœฌ: {build_info['cmake_version']}

+

็ผ–่ฏ‘ๅ™จ: {build_info['compiler']}

+

ๆž„ๅปบ็ฑปๅž‹: {build_info['build_type']}

+

ๆž„ๅปบๆ—ถ้—ด: {build_info['build_time']}

+
+
+
+
+ + {coverage_details_html} + + +
+
+
+

+ + Generated by Qt Unit Test Suite +

+
+
+
+