= (props) => {
+ console.log(props)
+ let totalValue = 0;
+
+ return
+
+
+ {props.results?.fileTestResults?.map((fr, index) =>
+ Assembly: {fr.name} | {fr.testDuration} ms}
+ icon={fr.isIgnored ? : fr.isPassed ? : } >
+ {fr.classTestResults!.map((cr, crIndex) =>
+ Class: {cr.name} | Error Reason: {cr.validationErrors!.join(' | ')}
+ : Class: {cr.name} | {cr.testDuration} ms}
+ icon={cr.validationErrors != undefined
+ ?
+ : cr.isIgnored
+ ?
+ : cr.isPassed
+ ?
+ : } >
+ {cr.methodTestResults!.map((mr, mrIndex) =>
+ Test: {mr.name} | {mr.testDuration} ms
+ : Test: {mr.name} | {mr.testDuration} ms | Reason: {mr.isFailed ? mr.failReasons : mr.ignoredReason}}
+ icon={mr.isIgnored ? : mr.isPassed ? : } />
+ )}
+
+ )}
+
+ )}
+
+
+
+}
\ No newline at end of file
diff --git a/MyNUnitWeb/mynunitweb.front/src/index.css b/MyNUnitWeb/mynunitweb.front/src/index.css
new file mode 100644
index 0000000..ec2585e
--- /dev/null
+++ b/MyNUnitWeb/mynunitweb.front/src/index.css
@@ -0,0 +1,13 @@
+body {
+ margin: 0;
+ font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', 'Oxygen',
+ 'Ubuntu', 'Cantarell', 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
+ sans-serif;
+ -webkit-font-smoothing: antialiased;
+ -moz-osx-font-smoothing: grayscale;
+}
+
+code {
+ font-family: source-code-pro, Menlo, Monaco, Consolas, 'Courier New',
+ monospace;
+}
diff --git a/MyNUnitWeb/mynunitweb.front/src/index.tsx b/MyNUnitWeb/mynunitweb.front/src/index.tsx
new file mode 100644
index 0000000..501c41e
--- /dev/null
+++ b/MyNUnitWeb/mynunitweb.front/src/index.tsx
@@ -0,0 +1,20 @@
+import React from 'react';
+import ReactDOM from 'react-dom/client';
+import './index.css';
+import App from './App';
+import reportWebVitals from './reportWebVitals';
+import { BrowserRouter } from "react-router-dom";
+
+const root = ReactDOM.createRoot(
+ document.getElementById('root') as HTMLElement
+);
+root.render(
+
+
+
+);
+
+// If you want to start measuring performance in your app, pass a function
+// to log results (for example: reportWebVitals(console.log))
+// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
+reportWebVitals();
diff --git a/MyNUnitWeb/mynunitweb.front/src/logo.svg b/MyNUnitWeb/mynunitweb.front/src/logo.svg
new file mode 100644
index 0000000..9dfc1c0
--- /dev/null
+++ b/MyNUnitWeb/mynunitweb.front/src/logo.svg
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/MyNUnitWeb/mynunitweb.front/src/react-app-env.d.ts b/MyNUnitWeb/mynunitweb.front/src/react-app-env.d.ts
new file mode 100644
index 0000000..6431bc5
--- /dev/null
+++ b/MyNUnitWeb/mynunitweb.front/src/react-app-env.d.ts
@@ -0,0 +1 @@
+///
diff --git a/MyNUnitWeb/mynunitweb.front/src/reportWebVitals.ts b/MyNUnitWeb/mynunitweb.front/src/reportWebVitals.ts
new file mode 100644
index 0000000..49a2a16
--- /dev/null
+++ b/MyNUnitWeb/mynunitweb.front/src/reportWebVitals.ts
@@ -0,0 +1,15 @@
+import { ReportHandler } from 'web-vitals';
+
+const reportWebVitals = (onPerfEntry?: ReportHandler) => {
+ if (onPerfEntry && onPerfEntry instanceof Function) {
+ import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {
+ getCLS(onPerfEntry);
+ getFID(onPerfEntry);
+ getFCP(onPerfEntry);
+ getLCP(onPerfEntry);
+ getTTFB(onPerfEntry);
+ });
+ }
+};
+
+export default reportWebVitals;
diff --git a/MyNUnitWeb/mynunitweb.front/src/setupTests.ts b/MyNUnitWeb/mynunitweb.front/src/setupTests.ts
new file mode 100644
index 0000000..8f2609b
--- /dev/null
+++ b/MyNUnitWeb/mynunitweb.front/src/setupTests.ts
@@ -0,0 +1,5 @@
+// jest-dom adds custom jest matchers for asserting on DOM nodes.
+// allows you to do things like:
+// expect(element).toHaveTextContent(/react/i)
+// learn more: https://github.com/testing-library/jest-dom
+import '@testing-library/jest-dom';
diff --git a/MyNUnitWeb/mynunitweb.front/tsconfig.json b/MyNUnitWeb/mynunitweb.front/tsconfig.json
new file mode 100644
index 0000000..35042a4
--- /dev/null
+++ b/MyNUnitWeb/mynunitweb.front/tsconfig.json
@@ -0,0 +1,28 @@
+{
+ "compilerOptions": {
+ "target": "es5",
+ "lib": [
+ "dom",
+ "dom.iterable",
+ "esnext"
+ ],
+ "allowJs": true,
+ "skipLibCheck": true,
+ "esModuleInterop": true,
+ "allowSyntheticDefaultImports": true,
+ "baseUrl": "src",
+ "strict": true,
+ "forceConsistentCasingInFileNames": true,
+ "noFallthroughCasesInSwitch": true,
+ "module": "esnext",
+ "moduleResolution": "node",
+ "resolveJsonModule": true,
+ "isolatedModules": true,
+ "noEmit": true,
+ "strictPropertyInitialization": false,
+ "jsx": "react-jsx"
+ },
+ "include": [
+ "src"
+ ]
+}