{test &&
{test.path.join(' › ')}
}
{test &&
{test?.title}
}
- {test &&
{test.location.file}:{test.location.line}
}
+ {test &&
+
{test.location.file}:{test.location.line}
+
+
{msToString(test.duration)}
+
}
{test && (!!test.projectName || labels) &&
{test && !!test.projectName &&
}
{labels &&
}
diff --git a/packages/html-reporter/src/testFilesView.tsx b/packages/html-reporter/src/testFilesView.tsx
index 0dc1af4e93..447b9d7601 100644
--- a/packages/html-reporter/src/testFilesView.tsx
+++ b/packages/html-reporter/src/testFilesView.tsx
@@ -19,13 +19,16 @@ import * as React from 'react';
import type { Filter } from './filter';
import { TestFileView } from './testFileView';
import './testFileView.css';
+import { msToString } from './uiUtils';
export const TestFilesView: React.FC<{
report?: HTMLReport,
expandedFiles: Map
,
setExpandedFiles: (value: Map) => void,
filter: Filter,
-}> = ({ report, filter, expandedFiles, setExpandedFiles }) => {
+ stats: { duration: number },
+ projectNames: string[],
+}> = ({ report, filter, expandedFiles, setExpandedFiles, projectNames, stats }) => {
const filteredFiles = React.useMemo(() => {
const result: { file: TestFileSummary, defaultExpanded: boolean }[] = [];
let visibleTests = 0;
@@ -38,6 +41,11 @@ export const TestFilesView: React.FC<{
return result;
}, [report, filter]);
return <>
+
+ {projectNames.length === 1 && !!projectNames[0] &&
Project: {projectNames[0]}
}
+
+
Total time: {msToString(stats.duration)}
+
{report && filteredFiles.map(({ file, defaultExpanded }) => {
return