feat: create MobileTestReporter base structure
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
import { FullConfig, FullResult, Suite, TestCase, TestResult } from '@playwright/test';
|
||||
|
||||
export interface TestOverview {
|
||||
total: number;
|
||||
passed: number;
|
||||
failed: number;
|
||||
skipped: number;
|
||||
duration: number;
|
||||
}
|
||||
|
||||
export interface DeviceTestResult {
|
||||
device: string;
|
||||
passed: number;
|
||||
failed: number;
|
||||
duration: number;
|
||||
}
|
||||
|
||||
export class MobileTestReporter {
|
||||
constructor(private config: FullConfig) {}
|
||||
|
||||
generateOverview(results: FullResult): TestOverview {
|
||||
const total = results.suites.reduce((sum, suite) => {
|
||||
return sum + suite.suites.reduce((suiteSum, subSuite) => {
|
||||
return suiteSum + subSuite.cases.length;
|
||||
}, 0);
|
||||
}, 0);
|
||||
|
||||
const passed = results.suites.reduce((sum, suite) => {
|
||||
return sum + suite.suites.reduce((suiteSum, subSuite) => {
|
||||
return suiteSum + subSuite.cases.filter(c => c.results[0]?.status === 'passed').length;
|
||||
}, 0);
|
||||
}, 0);
|
||||
|
||||
const failed = results.suites.reduce((sum, suite) => {
|
||||
return sum + suite.suites.reduce((suiteSum, subSuite) => {
|
||||
return suiteSum + subSuite.cases.filter(c => c.results[0]?.status === 'failed').length;
|
||||
}, 0);
|
||||
}, 0);
|
||||
|
||||
return {
|
||||
total,
|
||||
passed,
|
||||
failed,
|
||||
skipped: total - passed - failed,
|
||||
duration: results.duration,
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user