fix(tstest): Improve file range filtering and summary logging by skipping test files outside the specified range and reporting them in the final summary.

This commit is contained in:
2025-05-23 23:18:35 +00:00
parent e0d8ede450
commit 763dc89f59
5 changed files with 61 additions and 27 deletions

View File

@@ -30,8 +30,10 @@ export interface TestSummary {
totalTests: number;
totalPassed: number;
totalFailed: number;
totalSkipped: number;
totalDuration: number;
fileResults: TestFileResult[];
skippedFiles: string[];
}
export class TsTestLogger {
@@ -282,6 +284,19 @@ export class TsTestLogger {
}
}
// Skipped test file
testFileSkipped(filename: string, index: number, total: number, reason: string) {
if (this.options.json) {
this.logJson({ event: 'fileSkipped', filename, index, total, reason });
return;
}
if (this.options.quiet) return;
this.log(this.format(`\n⏭ ${filename} (${index}/${total})`, 'yellow'));
this.log(this.format(` Skipped: ${reason}`, 'dim'));
}
// Browser console
browserConsole(message: string, level: string = 'log') {
if (this.options.json) {
@@ -317,15 +332,17 @@ export class TsTestLogger {
}
// Final summary
summary() {
summary(skippedFiles: string[] = []) {
const totalDuration = Date.now() - this.startTime;
const summary: TestSummary = {
totalFiles: this.fileResults.length,
totalFiles: this.fileResults.length + skippedFiles.length,
totalTests: this.fileResults.reduce((sum, r) => sum + r.total, 0),
totalPassed: this.fileResults.reduce((sum, r) => sum + r.passed, 0),
totalFailed: this.fileResults.reduce((sum, r) => sum + r.failed, 0),
totalSkipped: skippedFiles.length,
totalDuration,
fileResults: this.fileResults
fileResults: this.fileResults,
skippedFiles
};
if (this.options.json) {
@@ -346,6 +363,9 @@ export class TsTestLogger {
this.log(this.format(`│ Total Tests: ${summary.totalTests.toString().padStart(14)}`, 'white'));
this.log(this.format(`│ Passed: ${summary.totalPassed.toString().padStart(14)}`, 'green'));
this.log(this.format(`│ Failed: ${summary.totalFailed.toString().padStart(14)}`, summary.totalFailed > 0 ? 'red' : 'green'));
if (summary.totalSkipped > 0) {
this.log(this.format(`│ Skipped: ${summary.totalSkipped.toString().padStart(14)}`, 'yellow'));
}
this.log(this.format(`│ Duration: ${totalDuration.toString().padStart(14)}ms │`, 'white'));
this.log(this.format('└────────────────────────────────┘', 'dim'));