mirror of
				https://github.com/kovidgoyal/calibre.git
				synced 2025-10-31 10:37:00 -04:00 
			
		
		
		
	Improve rapydscript test runner output
This commit is contained in:
		
							parent
							
								
									df69f96a92
								
							
						
					
					
						commit
						69b689c9d0
					
				| @ -430,6 +430,8 @@ def run_rapydscript_tests(): | |||||||
| 
 | 
 | ||||||
|     tester = Tester() |     tester = Tester() | ||||||
|     result = tester.spin_loop() |     result = tester.spin_loop() | ||||||
|  |     if result is None: | ||||||
|  |         result = 1 | ||||||
|     raise SystemExit(int(result)) |     raise SystemExit(int(result)) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -22,7 +22,7 @@ def get_matching_tests_for_name(name): | |||||||
|     return ans |     return ans | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def get_traceback(): | def get_traceback(e): | ||||||
|     lines = traceback.format_exception() |     lines = traceback.format_exception() | ||||||
|     last_line = lines[-1] |     last_line = lines[-1] | ||||||
|     final_lines = v'[]' |     final_lines = v'[]' | ||||||
| @ -32,34 +32,39 @@ def get_traceback(): | |||||||
|             break |             break | ||||||
|         final_lines.push(line) |         final_lines.push(line) | ||||||
|     final_lines.push(last_line) |     final_lines.push(last_line) | ||||||
|  |     final_lines.push(e.toString()) | ||||||
|     return final_lines.join('') |     return final_lines.join('') | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def run_tests(tests): | def run_tests(tests): | ||||||
|     failed_tests = [] |     failed_tests = [] | ||||||
|     count = 0 |  | ||||||
|     for f in tests: |     for f in tests: | ||||||
|         print(f.test_name, '...') |  | ||||||
|         reset_dom() |         reset_dom() | ||||||
|  |         st = window.performance.now() | ||||||
|         try: |         try: | ||||||
|             f() |             f() | ||||||
|             count += 1 |             time = (window.performance.now() - st) / 1000 | ||||||
|         except: |         except Exception as e: | ||||||
|             tb = get_traceback() |             tb = get_traceback(e) | ||||||
|             console.error(tb) |  | ||||||
|             failed_tests.append((f.test_name, tb)) |             failed_tests.append((f.test_name, tb)) | ||||||
|     return failed_tests, count |             print(f'{f.test_name} ... FAIL') | ||||||
|  |         else: | ||||||
|  |             print(f'{f.test_name} ... ok [{time*1000:.1f} ms]') | ||||||
|  |     return failed_tests | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| def main(): | def main(): | ||||||
|     tests = get_matching_tests_for_name() |     tests = get_matching_tests_for_name() | ||||||
|     st = window.performance.now() |     st = window.performance.now() | ||||||
|     failed_tests, total = run_tests(tests) |     failed_tests = run_tests(tests) | ||||||
|     time = (window.performance.now() - st) / 1000 |     time = (window.performance.now() - st) / 1000 | ||||||
|     if failed_tests.length: |     if failed_tests.length: | ||||||
|         console.error(f'{failed_tests.length} out of {total} failed in {time:.1f} seconds') |         for ft in failed_tests: | ||||||
|  |             console.error(f'Failed {ft[0]} with traceback:') | ||||||
|  |             console.error(ft[1]) | ||||||
|  |         console.error(f'{failed_tests.length} out of {tests.length} failed in {time:.1f} seconds') | ||||||
|     else: |     else: | ||||||
|         print(f'Ran {total} tests in {time:.1f} seconds') |         print(f'Ran {tests.length} tests in {time * 1000:.1f} ms') | ||||||
|     return 1 if failed_tests.length else 0 |     return 1 if failed_tests.length else 0 | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user