fix(logging): Improve performance metrics reporting and add local permissions configuration
This commit is contained in:
parent
f717078558
commit
d1f8652fc7
@ -1,5 +1,11 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## 2025-05-26 - 2.2.4 - fix(logging)
|
||||||
|
Improve performance metrics reporting and add local permissions configuration
|
||||||
|
|
||||||
|
- Add .claude/settings.local.json to configure allowed permissions for various commands
|
||||||
|
- Update tstest logging: compute average test duration from actual durations and adjust slowest test display formatting
|
||||||
|
|
||||||
## 2025-05-26 - 2.2.3 - fix(readme/ts/tstest.plugins)
|
## 2025-05-26 - 2.2.3 - fix(readme/ts/tstest.plugins)
|
||||||
Update npm package scope and documentation to use '@git.zone' instead of '@gitzone', and add local settings configuration.
|
Update npm package scope and documentation to use '@git.zone' instead of '@gitzone', and add local settings configuration.
|
||||||
|
|
||||||
|
@ -3,6 +3,6 @@
|
|||||||
*/
|
*/
|
||||||
export const commitinfo = {
|
export const commitinfo = {
|
||||||
name: '@git.zone/tstest',
|
name: '@git.zone/tstest',
|
||||||
version: '2.2.3',
|
version: '2.2.4',
|
||||||
description: 'a test utility to run tests that match test/**/*.ts'
|
description: 'a test utility to run tests that match test/**/*.ts'
|
||||||
}
|
}
|
||||||
|
@ -425,15 +425,23 @@ export class TsTestLogger {
|
|||||||
|
|
||||||
// Performance metrics
|
// Performance metrics
|
||||||
if (this.options.verbose) {
|
if (this.options.verbose) {
|
||||||
const avgDuration = Math.round(totalDuration / summary.totalTests);
|
// Calculate metrics based on actual test durations
|
||||||
const slowestTest = this.fileResults
|
const allTests = this.fileResults.flatMap(r => r.tests);
|
||||||
.flatMap(r => r.tests)
|
const testDurations = allTests.map(t => t.duration);
|
||||||
.sort((a, b) => b.duration - a.duration)[0];
|
const sumOfTestDurations = testDurations.reduce((sum, d) => sum + d, 0);
|
||||||
|
const avgTestDuration = allTests.length > 0 ? Math.round(sumOfTestDurations / allTests.length) : 0;
|
||||||
|
|
||||||
|
// Find slowest test (exclude 0ms durations unless all are 0)
|
||||||
|
const nonZeroDurations = allTests.filter(t => t.duration > 0);
|
||||||
|
const testsToSort = nonZeroDurations.length > 0 ? nonZeroDurations : allTests;
|
||||||
|
const slowestTest = testsToSort.sort((a, b) => b.duration - a.duration)[0];
|
||||||
|
|
||||||
this.log(this.format('\n⏱️ Performance Metrics:', 'cyan'));
|
this.log(this.format('\n⏱️ Performance Metrics:', 'cyan'));
|
||||||
this.log(this.format(` Average per test: ${avgDuration}ms`, 'white'));
|
this.log(this.format(` Average per test: ${avgTestDuration}ms`, 'white'));
|
||||||
if (slowestTest) {
|
if (slowestTest && slowestTest.duration > 0) {
|
||||||
this.log(this.format(` Slowest test: ${slowestTest.name} (${slowestTest.duration}ms)`, 'yellow'));
|
this.log(this.format(` Slowest test: ${slowestTest.name} (${slowestTest.duration}ms)`, 'orange'));
|
||||||
|
} else if (allTests.length > 0) {
|
||||||
|
this.log(this.format(` All tests completed in <1ms`, 'dim'));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user