From 2dfb64f405ffb41af16b3579660874c41e437cce Mon Sep 17 00:00:00 2001 From: Alan West <3676547+alanwest@users.noreply.github.com> Date: Wed, 25 Oct 2023 09:27:05 -0700 Subject: [PATCH] Readme for each version --- .../{README.md => README.net6.0.md} | 38 +- .../RouteTests/README.net7.0.md | 552 ++++++++++++++++++ .../RouteTests/README.net8.0.md | 552 ++++++++++++++++++ .../RouteTests/RoutingTestFixture.cs | 7 +- 4 files changed, 1129 insertions(+), 20 deletions(-) rename test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/{README.md => README.net6.0.md} (99%) create mode 100644 test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.net7.0.md create mode 100644 test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.net8.0.md diff --git a/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.md b/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.net6.0.md similarity index 99% rename from test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.md rename to test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.net6.0.md index 60aedb7ae05..fb77cad1687 100644 --- a/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.md +++ b/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.net6.0.md @@ -1,3 +1,5 @@ +# Test results for ASP.NET Core 6 + | | | display name | expected name (w/o http.method) | routing type | request | | - | - | - | - | - | - | | :broken_heart: | [1](#1) | / | ConventionalRoute/Default/{id?} | ConventionalRouting | GET / | / | @@ -19,7 +21,7 @@ | :broken_heart: | [17](#17) | PageThatThrowsException | /PageThatThrowsException | RazorPages | GET /PageThatThrowsException | PageThatThrowsException | | :broken_heart: | [18](#18) | /js/site.js | | RazorPages | GET /js/site.js | /js/site.js | -#### 1 +## 1 ```json { @@ -45,7 +47,7 @@ } ``` -#### 2 +## 2 ```json { @@ -75,7 +77,7 @@ } ``` -#### 3 +## 3 ```json { @@ -104,7 +106,7 @@ } ``` -#### 4 +## 4 ```json { @@ -127,7 +129,7 @@ } ``` -#### 5 +## 5 ```json { @@ -158,7 +160,7 @@ } ``` -#### 6 +## 6 ```json { @@ -181,7 +183,7 @@ } ``` -#### 7 +## 7 ```json { @@ -208,7 +210,7 @@ } ``` -#### 8 +## 8 ```json { @@ -235,7 +237,7 @@ } ``` -#### 9 +## 9 ```json { @@ -262,7 +264,7 @@ } ``` -#### 10 +## 10 ```json { @@ -288,7 +290,7 @@ } ``` -#### 11 +## 11 ```json { @@ -314,7 +316,7 @@ } ``` -#### 12 +## 12 ```json { @@ -343,7 +345,7 @@ } ``` -#### 13 +## 13 ```json { @@ -372,7 +374,7 @@ } ``` -#### 14 +## 14 ```json { @@ -401,7 +403,7 @@ } ``` -#### 15 +## 15 ```json { @@ -426,7 +428,7 @@ } ``` -#### 16 +## 16 ```json { @@ -451,7 +453,7 @@ } ``` -#### 17 +## 17 ```json { @@ -476,7 +478,7 @@ } ``` -#### 18 +## 18 ```json { diff --git a/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.net7.0.md b/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.net7.0.md new file mode 100644 index 00000000000..d0a3113ebe3 --- /dev/null +++ b/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.net7.0.md @@ -0,0 +1,552 @@ +# Test results for ASP.NET Core 7 + +| | | display name | expected name (w/o http.method) | routing type | request | +| - | - | - | - | - | - | +| :broken_heart: | [1](#1) | / | ConventionalRoute/Default/{id?} | ConventionalRouting | GET / | / | +| :broken_heart: | [2](#2) | /ConventionalRoute/ActionWithStringParameter/2 | ConventionalRoute/ActionWithStringParameter/{id?} | ConventionalRouting | GET /ConventionalRoute/ActionWithStringParameter/2?num=3 | /ConventionalRoute/ActionWithStringParameter/2 | +| :broken_heart: | [3](#3) | /ConventionalRoute/ActionWithStringParameter | ConventionalRoute/ActionWithStringParameter/{id?} | ConventionalRouting | GET /ConventionalRoute/ActionWithStringParameter?num=3 | /ConventionalRoute/ActionWithStringParameter | +| :broken_heart: | [4](#4) | /ConventionalRoute/NotFound | | ConventionalRouting | GET /ConventionalRoute/NotFound | /ConventionalRoute/NotFound | +| :broken_heart: | [5](#5) | /SomePath/SomeString/2 | SomePath/{id}/{num:int} | ConventionalRouting | GET /SomePath/SomeString/2 | /SomePath/SomeString/2 | +| :broken_heart: | [6](#6) | /SomePath/SomeString/NotAnInt | | ConventionalRouting | GET /SomePath/SomeString/NotAnInt | /SomePath/SomeString/NotAnInt | +| :broken_heart: | [7](#7) | /MyArea | {area:exists}/ControllerForMyArea/Default/{id?} | ConventionalRouting | GET /MyArea | /MyArea | +| :broken_heart: | [8](#8) | /MyArea/ControllerForMyArea/NonDefault | {area:exists}/ControllerForMyArea/NonDefault/{id?} | ConventionalRouting | GET /MyArea/ControllerForMyArea/NonDefault | /MyArea/ControllerForMyArea/NonDefault | +| :broken_heart: | [9](#9) | /SomePrefix | SomePrefix/AnotherArea/Index/{id?} | ConventionalRouting | GET /SomePrefix | /SomePrefix | +| :green_heart: | [10](#10) | AttributeRoute | AttributeRoute | AttributeRouting | GET /AttributeRoute | AttributeRoute | +| :green_heart: | [11](#11) | AttributeRoute/Get | AttributeRoute/Get | AttributeRouting | GET /AttributeRoute/Get | AttributeRoute/Get | +| :green_heart: | [12](#12) | AttributeRoute/Get/{id} | AttributeRoute/Get/{id} | AttributeRouting | GET /AttributeRoute/Get/12 | AttributeRoute/Get/{id} | +| :green_heart: | [13](#13) | AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate | AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate | AttributeRouting | GET /AttributeRoute/12/GetWithActionNameInDifferentSpotInTemplate | AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate | +| :green_heart: | [14](#14) | AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate | AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate | AttributeRouting | GET /AttributeRoute/NotAnInt/GetWithActionNameInDifferentSpotInTemplate | AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate | +| :broken_heart: | [15](#15) | / | /Index | RazorPages | GET / | / | +| :broken_heart: | [16](#16) | Index | /Index | RazorPages | GET /Index | Index | +| :broken_heart: | [17](#17) | PageThatThrowsException | /PageThatThrowsException | RazorPages | GET /PageThatThrowsException | PageThatThrowsException | +| :broken_heart: | [18](#18) | /js/site.js | | RazorPages | GET /js/site.js | /js/site.js | +| :broken_heart: | [19](#19) | /MinimalApi | /MinimalApi/ | MinimalApi | GET /MinimalApi | /MinimalApi | +| :broken_heart: | [20](#20) | /MinimalApi/123 | /MinimalApi/{id} | MinimalApi | GET /MinimalApi/123 | /MinimalApi/123 | + +## 1 + +```json +{ + "HttpMethod": "GET", + "Path": "/", + "HttpRouteByRawText": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "HttpRouteByControllerActionAndParameters": "ConventionalRoute/Default", + "HttpRouteByActionDescriptor": "ConventionalRoute/Default/{id?}", + "DebugInfo": { + "RawText": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "RouteDiagnosticMetadata": null, + "RouteData": { + "controller": "ConventionalRoute", + "action": "Default" + }, + "AttributeRouteInfo": null, + "ActionParameters": [], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "ConventionalRoute", + "ControllerActionDescriptorActionName": "Default" + } +} +``` + +## 2 + +```json +{ + "HttpMethod": "GET", + "Path": "/ConventionalRoute/ActionWithStringParameter/2?num=3", + "HttpRouteByRawText": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "HttpRouteByControllerActionAndParameters": "ConventionalRoute/ActionWithStringParameter/{id}/{num}", + "HttpRouteByActionDescriptor": "ConventionalRoute/ActionWithStringParameter/{id?}", + "DebugInfo": { + "RawText": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "RouteDiagnosticMetadata": null, + "RouteData": { + "controller": "ConventionalRoute", + "action": "ActionWithStringParameter", + "id": "2" + }, + "AttributeRouteInfo": null, + "ActionParameters": [ + "id", + "num" + ], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "ConventionalRoute", + "ControllerActionDescriptorActionName": "ActionWithStringParameter" + } +} +``` + +## 3 + +```json +{ + "HttpMethod": "GET", + "Path": "/ConventionalRoute/ActionWithStringParameter?num=3", + "HttpRouteByRawText": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "HttpRouteByControllerActionAndParameters": "ConventionalRoute/ActionWithStringParameter/{id}/{num}", + "HttpRouteByActionDescriptor": "ConventionalRoute/ActionWithStringParameter/{id?}", + "DebugInfo": { + "RawText": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "RouteDiagnosticMetadata": null, + "RouteData": { + "controller": "ConventionalRoute", + "action": "ActionWithStringParameter" + }, + "AttributeRouteInfo": null, + "ActionParameters": [ + "id", + "num" + ], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "ConventionalRoute", + "ControllerActionDescriptorActionName": "ActionWithStringParameter" + } +} +``` + +## 4 + +```json +{ + "HttpMethod": "GET", + "Path": "/ConventionalRoute/NotFound", + "HttpRouteByRawText": null, + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "", + "DebugInfo": { + "RawText": null, + "RouteDiagnosticMetadata": null, + "RouteData": {}, + "AttributeRouteInfo": null, + "ActionParameters": null, + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 5 + +```json +{ + "HttpMethod": "GET", + "Path": "/SomePath/SomeString/2", + "HttpRouteByRawText": "SomePath/{id}/{num:int}", + "HttpRouteByControllerActionAndParameters": "ConventionalRoute/ActionWithStringParameter/{id}/{num}", + "HttpRouteByActionDescriptor": "SomePath/{id}/{num:int}", + "DebugInfo": { + "RawText": "SomePath/{id}/{num:int}", + "RouteDiagnosticMetadata": null, + "RouteData": { + "controller": "ConventionalRoute", + "action": "ActionWithStringParameter", + "id": "SomeString", + "num": "2" + }, + "AttributeRouteInfo": null, + "ActionParameters": [ + "id", + "num" + ], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "ConventionalRoute", + "ControllerActionDescriptorActionName": "ActionWithStringParameter" + } +} +``` + +## 6 + +```json +{ + "HttpMethod": "GET", + "Path": "/SomePath/SomeString/NotAnInt", + "HttpRouteByRawText": null, + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "", + "DebugInfo": { + "RawText": null, + "RouteDiagnosticMetadata": null, + "RouteData": {}, + "AttributeRouteInfo": null, + "ActionParameters": null, + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 7 + +```json +{ + "HttpMethod": "GET", + "Path": "/MyArea", + "HttpRouteByRawText": "{area:exists}/{controller=ControllerForMyArea}/{action=Default}/{id?}", + "HttpRouteByControllerActionAndParameters": "ControllerForMyArea/Default", + "HttpRouteByActionDescriptor": "{area:exists}/ControllerForMyArea/Default/{id?}", + "DebugInfo": { + "RawText": "{area:exists}/{controller=ControllerForMyArea}/{action=Default}/{id?}", + "RouteDiagnosticMetadata": null, + "RouteData": { + "controller": "ControllerForMyArea", + "action": "Default", + "area": "MyArea" + }, + "AttributeRouteInfo": null, + "ActionParameters": [], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "ControllerForMyArea", + "ControllerActionDescriptorActionName": "Default" + } +} +``` + +## 8 + +```json +{ + "HttpMethod": "GET", + "Path": "/MyArea/ControllerForMyArea/NonDefault", + "HttpRouteByRawText": "{area:exists}/{controller=ControllerForMyArea}/{action=Default}/{id?}", + "HttpRouteByControllerActionAndParameters": "ControllerForMyArea/NonDefault", + "HttpRouteByActionDescriptor": "{area:exists}/ControllerForMyArea/NonDefault/{id?}", + "DebugInfo": { + "RawText": "{area:exists}/{controller=ControllerForMyArea}/{action=Default}/{id?}", + "RouteDiagnosticMetadata": null, + "RouteData": { + "controller": "ControllerForMyArea", + "area": "MyArea", + "action": "NonDefault" + }, + "AttributeRouteInfo": null, + "ActionParameters": [], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "ControllerForMyArea", + "ControllerActionDescriptorActionName": "NonDefault" + } +} +``` + +## 9 + +```json +{ + "HttpMethod": "GET", + "Path": "/SomePrefix", + "HttpRouteByRawText": "SomePrefix/{controller=AnotherArea}/{action=Index}/{id?}", + "HttpRouteByControllerActionAndParameters": "AnotherArea/Index", + "HttpRouteByActionDescriptor": "SomePrefix/AnotherArea/Index/{id?}", + "DebugInfo": { + "RawText": "SomePrefix/{controller=AnotherArea}/{action=Index}/{id?}", + "RouteDiagnosticMetadata": null, + "RouteData": { + "area": "AnotherArea", + "controller": "AnotherArea", + "action": "Index" + }, + "AttributeRouteInfo": null, + "ActionParameters": [], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "AnotherArea", + "ControllerActionDescriptorActionName": "Index" + } +} +``` + +## 10 + +```json +{ + "HttpMethod": "GET", + "Path": "/AttributeRoute", + "HttpRouteByRawText": "AttributeRoute", + "HttpRouteByControllerActionAndParameters": "AttributeRoute/Get", + "HttpRouteByActionDescriptor": "AttributeRoute", + "DebugInfo": { + "RawText": "AttributeRoute", + "RouteDiagnosticMetadata": null, + "RouteData": { + "action": "Get", + "controller": "AttributeRoute" + }, + "AttributeRouteInfo": "AttributeRoute", + "ActionParameters": [], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "AttributeRoute", + "ControllerActionDescriptorActionName": "Get" + } +} +``` + +## 11 + +```json +{ + "HttpMethod": "GET", + "Path": "/AttributeRoute/Get", + "HttpRouteByRawText": "AttributeRoute/Get", + "HttpRouteByControllerActionAndParameters": "AttributeRoute/Get", + "HttpRouteByActionDescriptor": "AttributeRoute/Get", + "DebugInfo": { + "RawText": "AttributeRoute/Get", + "RouteDiagnosticMetadata": null, + "RouteData": { + "action": "Get", + "controller": "AttributeRoute" + }, + "AttributeRouteInfo": "AttributeRoute/Get", + "ActionParameters": [], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "AttributeRoute", + "ControllerActionDescriptorActionName": "Get" + } +} +``` + +## 12 + +```json +{ + "HttpMethod": "GET", + "Path": "/AttributeRoute/Get/12", + "HttpRouteByRawText": "AttributeRoute/Get/{id}", + "HttpRouteByControllerActionAndParameters": "AttributeRoute/Get/{id}", + "HttpRouteByActionDescriptor": "AttributeRoute/Get/{id}", + "DebugInfo": { + "RawText": "AttributeRoute/Get/{id}", + "RouteDiagnosticMetadata": null, + "RouteData": { + "action": "Get", + "controller": "AttributeRoute", + "id": "12" + }, + "AttributeRouteInfo": "AttributeRoute/Get/{id}", + "ActionParameters": [ + "id" + ], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "AttributeRoute", + "ControllerActionDescriptorActionName": "Get" + } +} +``` + +## 13 + +```json +{ + "HttpMethod": "GET", + "Path": "/AttributeRoute/12/GetWithActionNameInDifferentSpotInTemplate", + "HttpRouteByRawText": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "HttpRouteByControllerActionAndParameters": "AttributeRoute/GetWithActionNameInDifferentSpotInTemplate/{id}", + "HttpRouteByActionDescriptor": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "DebugInfo": { + "RawText": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "RouteDiagnosticMetadata": null, + "RouteData": { + "action": "GetWithActionNameInDifferentSpotInTemplate", + "controller": "AttributeRoute", + "id": "12" + }, + "AttributeRouteInfo": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "ActionParameters": [ + "id" + ], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "AttributeRoute", + "ControllerActionDescriptorActionName": "GetWithActionNameInDifferentSpotInTemplate" + } +} +``` + +## 14 + +```json +{ + "HttpMethod": "GET", + "Path": "/AttributeRoute/NotAnInt/GetWithActionNameInDifferentSpotInTemplate", + "HttpRouteByRawText": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "HttpRouteByControllerActionAndParameters": "AttributeRoute/GetWithActionNameInDifferentSpotInTemplate/{id}", + "HttpRouteByActionDescriptor": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "DebugInfo": { + "RawText": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "RouteDiagnosticMetadata": null, + "RouteData": { + "action": "GetWithActionNameInDifferentSpotInTemplate", + "controller": "AttributeRoute", + "id": "NotAnInt" + }, + "AttributeRouteInfo": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "ActionParameters": [ + "id" + ], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "AttributeRoute", + "ControllerActionDescriptorActionName": "GetWithActionNameInDifferentSpotInTemplate" + } +} +``` + +## 15 + +```json +{ + "HttpMethod": "GET", + "Path": "/", + "HttpRouteByRawText": "", + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "/Index", + "DebugInfo": { + "RawText": "", + "RouteDiagnosticMetadata": null, + "RouteData": { + "page": "/Index" + }, + "AttributeRouteInfo": "", + "ActionParameters": [], + "PageActionDescriptorRelativePath": "/Pages/Index.cshtml", + "PageActionDescriptorViewEnginePath": "/Index", + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 16 + +```json +{ + "HttpMethod": "GET", + "Path": "/Index", + "HttpRouteByRawText": "Index", + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "/Index", + "DebugInfo": { + "RawText": "Index", + "RouteDiagnosticMetadata": null, + "RouteData": { + "page": "/Index" + }, + "AttributeRouteInfo": "Index", + "ActionParameters": [], + "PageActionDescriptorRelativePath": "/Pages/Index.cshtml", + "PageActionDescriptorViewEnginePath": "/Index", + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 17 + +```json +{ + "HttpMethod": "GET", + "Path": "/PageThatThrowsException", + "HttpRouteByRawText": "PageThatThrowsException", + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "/PageThatThrowsException", + "DebugInfo": { + "RawText": "PageThatThrowsException", + "RouteDiagnosticMetadata": null, + "RouteData": { + "page": "/PageThatThrowsException" + }, + "AttributeRouteInfo": "PageThatThrowsException", + "ActionParameters": [], + "PageActionDescriptorRelativePath": "/Pages/PageThatThrowsException.cshtml", + "PageActionDescriptorViewEnginePath": "/PageThatThrowsException", + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 18 + +```json +{ + "HttpMethod": "GET", + "Path": "/js/site.js", + "HttpRouteByRawText": null, + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "", + "DebugInfo": { + "RawText": null, + "RouteDiagnosticMetadata": null, + "RouteData": {}, + "AttributeRouteInfo": null, + "ActionParameters": null, + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 19 + +```json +{ + "HttpMethod": "GET", + "Path": "/MinimalApi", + "HttpRouteByRawText": "/MinimalApi/", + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "", + "DebugInfo": { + "RawText": "/MinimalApi/", + "RouteDiagnosticMetadata": null, + "RouteData": {}, + "AttributeRouteInfo": null, + "ActionParameters": null, + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 20 + +```json +{ + "HttpMethod": "GET", + "Path": "/MinimalApi/123", + "HttpRouteByRawText": "/MinimalApi/{id}", + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "", + "DebugInfo": { + "RawText": "/MinimalApi/{id}", + "RouteDiagnosticMetadata": null, + "RouteData": { + "id": "123" + }, + "AttributeRouteInfo": null, + "ActionParameters": null, + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` diff --git a/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.net8.0.md b/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.net8.0.md new file mode 100644 index 00000000000..cea901fe02a --- /dev/null +++ b/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/README.net8.0.md @@ -0,0 +1,552 @@ +# Test results for ASP.NET Core 8 + +| | | display name | expected name (w/o http.method) | routing type | request | +| - | - | - | - | - | - | +| :broken_heart: | [1](#1) | / | ConventionalRoute/Default/{id?} | ConventionalRouting | GET / | / | +| :broken_heart: | [2](#2) | /ConventionalRoute/ActionWithStringParameter/2 | ConventionalRoute/ActionWithStringParameter/{id?} | ConventionalRouting | GET /ConventionalRoute/ActionWithStringParameter/2?num=3 | /ConventionalRoute/ActionWithStringParameter/2 | +| :broken_heart: | [3](#3) | /ConventionalRoute/ActionWithStringParameter | ConventionalRoute/ActionWithStringParameter/{id?} | ConventionalRouting | GET /ConventionalRoute/ActionWithStringParameter?num=3 | /ConventionalRoute/ActionWithStringParameter | +| :broken_heart: | [4](#4) | /ConventionalRoute/NotFound | | ConventionalRouting | GET /ConventionalRoute/NotFound | /ConventionalRoute/NotFound | +| :broken_heart: | [5](#5) | /SomePath/SomeString/2 | SomePath/{id}/{num:int} | ConventionalRouting | GET /SomePath/SomeString/2 | /SomePath/SomeString/2 | +| :broken_heart: | [6](#6) | /SomePath/SomeString/NotAnInt | | ConventionalRouting | GET /SomePath/SomeString/NotAnInt | /SomePath/SomeString/NotAnInt | +| :broken_heart: | [7](#7) | /MyArea | {area:exists}/ControllerForMyArea/Default/{id?} | ConventionalRouting | GET /MyArea | /MyArea | +| :broken_heart: | [8](#8) | /MyArea/ControllerForMyArea/NonDefault | {area:exists}/ControllerForMyArea/NonDefault/{id?} | ConventionalRouting | GET /MyArea/ControllerForMyArea/NonDefault | /MyArea/ControllerForMyArea/NonDefault | +| :broken_heart: | [9](#9) | /SomePrefix | SomePrefix/AnotherArea/Index/{id?} | ConventionalRouting | GET /SomePrefix | /SomePrefix | +| :green_heart: | [10](#10) | AttributeRoute | AttributeRoute | AttributeRouting | GET /AttributeRoute | AttributeRoute | +| :green_heart: | [11](#11) | AttributeRoute/Get | AttributeRoute/Get | AttributeRouting | GET /AttributeRoute/Get | AttributeRoute/Get | +| :green_heart: | [12](#12) | AttributeRoute/Get/{id} | AttributeRoute/Get/{id} | AttributeRouting | GET /AttributeRoute/Get/12 | AttributeRoute/Get/{id} | +| :green_heart: | [13](#13) | AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate | AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate | AttributeRouting | GET /AttributeRoute/12/GetWithActionNameInDifferentSpotInTemplate | AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate | +| :green_heart: | [14](#14) | AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate | AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate | AttributeRouting | GET /AttributeRoute/NotAnInt/GetWithActionNameInDifferentSpotInTemplate | AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate | +| :broken_heart: | [15](#15) | / | /Index | RazorPages | GET / | / | +| :broken_heart: | [16](#16) | Index | /Index | RazorPages | GET /Index | Index | +| :broken_heart: | [17](#17) | PageThatThrowsException | /PageThatThrowsException | RazorPages | GET /PageThatThrowsException | PageThatThrowsException | +| :broken_heart: | [18](#18) | /js/site.js | | RazorPages | GET /js/site.js | /js/site.js | +| :broken_heart: | [19](#19) | /MinimalApi | /MinimalApi/ | MinimalApi | GET /MinimalApi | /MinimalApi | +| :broken_heart: | [20](#20) | /MinimalApi/123 | /MinimalApi/{id} | MinimalApi | GET /MinimalApi/123 | /MinimalApi/123 | + +## 1 + +```json +{ + "HttpMethod": "GET", + "Path": "/", + "HttpRouteByRawText": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "HttpRouteByControllerActionAndParameters": "ConventionalRoute/Default", + "HttpRouteByActionDescriptor": "ConventionalRoute/Default/{id?}", + "DebugInfo": { + "RawText": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "RouteDiagnosticMetadata": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "RouteData": { + "controller": "ConventionalRoute", + "action": "Default" + }, + "AttributeRouteInfo": null, + "ActionParameters": [], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "ConventionalRoute", + "ControllerActionDescriptorActionName": "Default" + } +} +``` + +## 2 + +```json +{ + "HttpMethod": "GET", + "Path": "/ConventionalRoute/ActionWithStringParameter/2?num=3", + "HttpRouteByRawText": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "HttpRouteByControllerActionAndParameters": "ConventionalRoute/ActionWithStringParameter/{id}/{num}", + "HttpRouteByActionDescriptor": "ConventionalRoute/ActionWithStringParameter/{id?}", + "DebugInfo": { + "RawText": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "RouteDiagnosticMetadata": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "RouteData": { + "controller": "ConventionalRoute", + "action": "ActionWithStringParameter", + "id": "2" + }, + "AttributeRouteInfo": null, + "ActionParameters": [ + "id", + "num" + ], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "ConventionalRoute", + "ControllerActionDescriptorActionName": "ActionWithStringParameter" + } +} +``` + +## 3 + +```json +{ + "HttpMethod": "GET", + "Path": "/ConventionalRoute/ActionWithStringParameter?num=3", + "HttpRouteByRawText": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "HttpRouteByControllerActionAndParameters": "ConventionalRoute/ActionWithStringParameter/{id}/{num}", + "HttpRouteByActionDescriptor": "ConventionalRoute/ActionWithStringParameter/{id?}", + "DebugInfo": { + "RawText": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "RouteDiagnosticMetadata": "{controller=ConventionalRoute}/{action=Default}/{id?}", + "RouteData": { + "controller": "ConventionalRoute", + "action": "ActionWithStringParameter" + }, + "AttributeRouteInfo": null, + "ActionParameters": [ + "id", + "num" + ], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "ConventionalRoute", + "ControllerActionDescriptorActionName": "ActionWithStringParameter" + } +} +``` + +## 4 + +```json +{ + "HttpMethod": "GET", + "Path": "/ConventionalRoute/NotFound", + "HttpRouteByRawText": null, + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "", + "DebugInfo": { + "RawText": null, + "RouteDiagnosticMetadata": null, + "RouteData": {}, + "AttributeRouteInfo": null, + "ActionParameters": null, + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 5 + +```json +{ + "HttpMethod": "GET", + "Path": "/SomePath/SomeString/2", + "HttpRouteByRawText": "SomePath/{id}/{num:int}", + "HttpRouteByControllerActionAndParameters": "ConventionalRoute/ActionWithStringParameter/{id}/{num}", + "HttpRouteByActionDescriptor": "SomePath/{id}/{num:int}", + "DebugInfo": { + "RawText": "SomePath/{id}/{num:int}", + "RouteDiagnosticMetadata": "SomePath/{id}/{num:int}", + "RouteData": { + "controller": "ConventionalRoute", + "action": "ActionWithStringParameter", + "id": "SomeString", + "num": "2" + }, + "AttributeRouteInfo": null, + "ActionParameters": [ + "id", + "num" + ], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "ConventionalRoute", + "ControllerActionDescriptorActionName": "ActionWithStringParameter" + } +} +``` + +## 6 + +```json +{ + "HttpMethod": "GET", + "Path": "/SomePath/SomeString/NotAnInt", + "HttpRouteByRawText": null, + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "", + "DebugInfo": { + "RawText": null, + "RouteDiagnosticMetadata": null, + "RouteData": {}, + "AttributeRouteInfo": null, + "ActionParameters": null, + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 7 + +```json +{ + "HttpMethod": "GET", + "Path": "/MyArea", + "HttpRouteByRawText": "{area:exists}/{controller=ControllerForMyArea}/{action=Default}/{id?}", + "HttpRouteByControllerActionAndParameters": "ControllerForMyArea/Default", + "HttpRouteByActionDescriptor": "{area:exists}/ControllerForMyArea/Default/{id?}", + "DebugInfo": { + "RawText": "{area:exists}/{controller=ControllerForMyArea}/{action=Default}/{id?}", + "RouteDiagnosticMetadata": "{area:exists}/{controller=ControllerForMyArea}/{action=Default}/{id?}", + "RouteData": { + "controller": "ControllerForMyArea", + "action": "Default", + "area": "MyArea" + }, + "AttributeRouteInfo": null, + "ActionParameters": [], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "ControllerForMyArea", + "ControllerActionDescriptorActionName": "Default" + } +} +``` + +## 8 + +```json +{ + "HttpMethod": "GET", + "Path": "/MyArea/ControllerForMyArea/NonDefault", + "HttpRouteByRawText": "{area:exists}/{controller=ControllerForMyArea}/{action=Default}/{id?}", + "HttpRouteByControllerActionAndParameters": "ControllerForMyArea/NonDefault", + "HttpRouteByActionDescriptor": "{area:exists}/ControllerForMyArea/NonDefault/{id?}", + "DebugInfo": { + "RawText": "{area:exists}/{controller=ControllerForMyArea}/{action=Default}/{id?}", + "RouteDiagnosticMetadata": "{area:exists}/{controller=ControllerForMyArea}/{action=Default}/{id?}", + "RouteData": { + "controller": "ControllerForMyArea", + "area": "MyArea", + "action": "NonDefault" + }, + "AttributeRouteInfo": null, + "ActionParameters": [], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "ControllerForMyArea", + "ControllerActionDescriptorActionName": "NonDefault" + } +} +``` + +## 9 + +```json +{ + "HttpMethod": "GET", + "Path": "/SomePrefix", + "HttpRouteByRawText": "SomePrefix/{controller=AnotherArea}/{action=Index}/{id?}", + "HttpRouteByControllerActionAndParameters": "AnotherArea/Index", + "HttpRouteByActionDescriptor": "SomePrefix/AnotherArea/Index/{id?}", + "DebugInfo": { + "RawText": "SomePrefix/{controller=AnotherArea}/{action=Index}/{id?}", + "RouteDiagnosticMetadata": "SomePrefix/{controller=AnotherArea}/{action=Index}/{id?}", + "RouteData": { + "area": "AnotherArea", + "controller": "AnotherArea", + "action": "Index" + }, + "AttributeRouteInfo": null, + "ActionParameters": [], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "AnotherArea", + "ControllerActionDescriptorActionName": "Index" + } +} +``` + +## 10 + +```json +{ + "HttpMethod": "GET", + "Path": "/AttributeRoute", + "HttpRouteByRawText": "AttributeRoute", + "HttpRouteByControllerActionAndParameters": "AttributeRoute/Get", + "HttpRouteByActionDescriptor": "AttributeRoute", + "DebugInfo": { + "RawText": "AttributeRoute", + "RouteDiagnosticMetadata": "AttributeRoute", + "RouteData": { + "action": "Get", + "controller": "AttributeRoute" + }, + "AttributeRouteInfo": "AttributeRoute", + "ActionParameters": [], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "AttributeRoute", + "ControllerActionDescriptorActionName": "Get" + } +} +``` + +## 11 + +```json +{ + "HttpMethod": "GET", + "Path": "/AttributeRoute/Get", + "HttpRouteByRawText": "AttributeRoute/Get", + "HttpRouteByControllerActionAndParameters": "AttributeRoute/Get", + "HttpRouteByActionDescriptor": "AttributeRoute/Get", + "DebugInfo": { + "RawText": "AttributeRoute/Get", + "RouteDiagnosticMetadata": "AttributeRoute/Get", + "RouteData": { + "action": "Get", + "controller": "AttributeRoute" + }, + "AttributeRouteInfo": "AttributeRoute/Get", + "ActionParameters": [], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "AttributeRoute", + "ControllerActionDescriptorActionName": "Get" + } +} +``` + +## 12 + +```json +{ + "HttpMethod": "GET", + "Path": "/AttributeRoute/Get/12", + "HttpRouteByRawText": "AttributeRoute/Get/{id}", + "HttpRouteByControllerActionAndParameters": "AttributeRoute/Get/{id}", + "HttpRouteByActionDescriptor": "AttributeRoute/Get/{id}", + "DebugInfo": { + "RawText": "AttributeRoute/Get/{id}", + "RouteDiagnosticMetadata": "AttributeRoute/Get/{id}", + "RouteData": { + "action": "Get", + "controller": "AttributeRoute", + "id": "12" + }, + "AttributeRouteInfo": "AttributeRoute/Get/{id}", + "ActionParameters": [ + "id" + ], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "AttributeRoute", + "ControllerActionDescriptorActionName": "Get" + } +} +``` + +## 13 + +```json +{ + "HttpMethod": "GET", + "Path": "/AttributeRoute/12/GetWithActionNameInDifferentSpotInTemplate", + "HttpRouteByRawText": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "HttpRouteByControllerActionAndParameters": "AttributeRoute/GetWithActionNameInDifferentSpotInTemplate/{id}", + "HttpRouteByActionDescriptor": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "DebugInfo": { + "RawText": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "RouteDiagnosticMetadata": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "RouteData": { + "action": "GetWithActionNameInDifferentSpotInTemplate", + "controller": "AttributeRoute", + "id": "12" + }, + "AttributeRouteInfo": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "ActionParameters": [ + "id" + ], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "AttributeRoute", + "ControllerActionDescriptorActionName": "GetWithActionNameInDifferentSpotInTemplate" + } +} +``` + +## 14 + +```json +{ + "HttpMethod": "GET", + "Path": "/AttributeRoute/NotAnInt/GetWithActionNameInDifferentSpotInTemplate", + "HttpRouteByRawText": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "HttpRouteByControllerActionAndParameters": "AttributeRoute/GetWithActionNameInDifferentSpotInTemplate/{id}", + "HttpRouteByActionDescriptor": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "DebugInfo": { + "RawText": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "RouteDiagnosticMetadata": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "RouteData": { + "action": "GetWithActionNameInDifferentSpotInTemplate", + "controller": "AttributeRoute", + "id": "NotAnInt" + }, + "AttributeRouteInfo": "AttributeRoute/{id}/GetWithActionNameInDifferentSpotInTemplate", + "ActionParameters": [ + "id" + ], + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": "AttributeRoute", + "ControllerActionDescriptorActionName": "GetWithActionNameInDifferentSpotInTemplate" + } +} +``` + +## 15 + +```json +{ + "HttpMethod": "GET", + "Path": "/", + "HttpRouteByRawText": "", + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "/Index", + "DebugInfo": { + "RawText": "", + "RouteDiagnosticMetadata": "", + "RouteData": { + "page": "/Index" + }, + "AttributeRouteInfo": "", + "ActionParameters": [], + "PageActionDescriptorRelativePath": "/Pages/Index.cshtml", + "PageActionDescriptorViewEnginePath": "/Index", + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 16 + +```json +{ + "HttpMethod": "GET", + "Path": "/Index", + "HttpRouteByRawText": "Index", + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "/Index", + "DebugInfo": { + "RawText": "Index", + "RouteDiagnosticMetadata": "Index", + "RouteData": { + "page": "/Index" + }, + "AttributeRouteInfo": "Index", + "ActionParameters": [], + "PageActionDescriptorRelativePath": "/Pages/Index.cshtml", + "PageActionDescriptorViewEnginePath": "/Index", + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 17 + +```json +{ + "HttpMethod": "GET", + "Path": "/PageThatThrowsException", + "HttpRouteByRawText": "PageThatThrowsException", + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "/PageThatThrowsException", + "DebugInfo": { + "RawText": "PageThatThrowsException", + "RouteDiagnosticMetadata": "PageThatThrowsException", + "RouteData": { + "page": "/PageThatThrowsException" + }, + "AttributeRouteInfo": "PageThatThrowsException", + "ActionParameters": [], + "PageActionDescriptorRelativePath": "/Pages/PageThatThrowsException.cshtml", + "PageActionDescriptorViewEnginePath": "/PageThatThrowsException", + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 18 + +```json +{ + "HttpMethod": "GET", + "Path": "/js/site.js", + "HttpRouteByRawText": null, + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "", + "DebugInfo": { + "RawText": null, + "RouteDiagnosticMetadata": null, + "RouteData": {}, + "AttributeRouteInfo": null, + "ActionParameters": null, + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 19 + +```json +{ + "HttpMethod": "GET", + "Path": "/MinimalApi", + "HttpRouteByRawText": "/MinimalApi/", + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "", + "DebugInfo": { + "RawText": "/MinimalApi/", + "RouteDiagnosticMetadata": "/MinimalApi/", + "RouteData": {}, + "AttributeRouteInfo": null, + "ActionParameters": null, + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` + +## 20 + +```json +{ + "HttpMethod": "GET", + "Path": "/MinimalApi/123", + "HttpRouteByRawText": "/MinimalApi/{id}", + "HttpRouteByControllerActionAndParameters": "", + "HttpRouteByActionDescriptor": "", + "DebugInfo": { + "RawText": "/MinimalApi/{id}", + "RouteDiagnosticMetadata": "/MinimalApi/{id}", + "RouteData": { + "id": "123" + }, + "AttributeRouteInfo": null, + "ActionParameters": null, + "PageActionDescriptorRelativePath": null, + "PageActionDescriptorViewEnginePath": null, + "ControllerActionDescriptorControllerName": null, + "ControllerActionDescriptorActionName": null + } +} +``` diff --git a/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/RoutingTestFixture.cs b/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/RoutingTestFixture.cs index 3e4e28fb21a..6d4d587fd37 100644 --- a/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/RoutingTestFixture.cs +++ b/test/OpenTelemetry.Instrumentation.AspNetCore.Tests/RouteTests/RoutingTestFixture.cs @@ -82,6 +82,8 @@ public void Dispose() private void GenerateReadme() { var sb = new StringBuilder(); + sb.AppendLine($"# Test results for ASP.NET Core {Environment.Version.Major}"); + sb.AppendLine(); sb.AppendLine("| | | display name | expected name (w/o http.method) | routing type | request |"); sb.AppendLine("| - | - | - | - | - | - |"); @@ -99,14 +101,15 @@ private void GenerateReadme() { var result = this.testResults[i]; sb.AppendLine(); - sb.AppendLine($"#### {i + 1}"); + sb.AppendLine($"## {i + 1}"); sb.AppendLine(); sb.AppendLine("```json"); sb.AppendLine(result.RouteInfo.ToString()); sb.AppendLine("```"); } - File.WriteAllText(Path.Combine("..", "..", "..", "RouteTests", "README.md"), sb.ToString()); + var readmeFileName = $"README.net{Environment.Version.Major}.0.md"; + File.WriteAllText(Path.Combine("..", "..", "..", "RouteTests", readmeFileName), sb.ToString()); string FormatTestResult(TestResult result) {