agentic-qe
Version:
Agentic Quality Engineering Fleet System - AI-driven quality management platform
117 lines • 2.7 kB
TypeScript
/**
* CoverageCollector - Real Implementation
* @module coverage/coverage-collector
* @description Collects code coverage data during test execution using c8/nyc
*/
export interface CoverageData {
lines: {
total: number;
covered: number;
percentage: number;
};
branches: {
total: number;
covered: number;
percentage: number;
};
functions: {
total: number;
covered: number;
percentage: number;
};
statements: {
total: number;
covered: number;
percentage: number;
};
}
export interface FileCoverage {
path: string;
coverage: CoverageData;
uncoveredLines: number[];
uncoveredBranches: Array<{
line: number;
branch: number;
}>;
}
export interface CoverageCollectorConfig {
tool?: 'c8' | 'nyc' | 'auto';
tempDir?: string;
include?: string[];
exclude?: string[];
reporter?: string[];
}
/**
* Real implementation of CoverageCollector using c8/nyc
*/
export declare class CoverageCollector {
private coverage;
private config;
private isCollecting;
private coverageDir;
constructor(config?: CoverageCollectorConfig);
/**
* Starts coverage collection
*/
start(): Promise<void>;
/**
* Stops coverage collection
*/
stop(): Promise<void>;
/**
* Executes tests with coverage collection
*/
executeWithCoverage(testCommand: string, args?: string[]): Promise<{
exitCode: number;
coverage: FileCoverage[];
}>;
/**
* Detects which coverage tool to use
*/
private detectTool;
/**
* Runs tests with coverage tool
*/
private runWithCoverageTool;
/**
* Builds coverage tool arguments
*/
private buildCoverageArgs;
/**
* Loads coverage data from JSON file
*/
private loadCoverageData;
/**
* Parses Istanbul coverage map
*/
private parseCoverageMap;
/**
* Parses file coverage data
*/
private parseFileCoverage;
/**
* Collects coverage for a specific file
*/
collect(filePath: string): Promise<FileCoverage>;
/**
* Gets all collected coverage data
*/
getData(): FileCoverage[];
/**
* Gets total coverage summary
*/
getTotalCoverage(): CoverageData;
/**
* Merges coverage from multiple sources
*/
mergeCoverage(otherCoverages: FileCoverage[]): Promise<void>;
/**
* Resets coverage data
*/
reset(): void;
/**
* Cleans up temporary coverage files
*/
cleanup(): Promise<void>;
}
//# sourceMappingURL=coverage-collector.d.ts.map