@@ -2,18 +2,37 @@ namespace YoloDev.Expecto.TestSdk
22
33open System.Reflection
44
5- open Microsoft.Testing .Extensions .VSTestBridge . Capabilities
5+ open Microsoft.Testing .Extensions .TrxReport . Abstractions
66open Microsoft.Testing .Extensions .VSTestBridge .Helpers
77open Microsoft.Testing .Platform .Builder
88open Microsoft.Testing .Platform .Capabilities .TestFramework
99
10+ // We intentionally do NOT use VSTestBridgeExtensionBaseCapabilities because that type also implements
11+ // INamedFeatureCapability and advertises the "vstestProvider" capability. When a server advertises
12+ // vstestProvider, Visual Studio Test Explorer consumes the legacy "vstest.TestCase.*" properties
13+ // (serialized through Microsoft.Testing.Platform's internal SerializableKeyValuePairStringProperty
14+ // key/value bag) instead of the public, structured location.* properties.
15+ //
16+ // ExpectoTestFramework.AddAdditionalProperties now emits the public TestMethodIdentifierProperty
17+ // (serialized as location.type / location.method), so by not advertising vstestProvider we let the IDE
18+ // consume the public properties and stop depending on the internal key/value-pair shape.
19+ //
20+ // This mirrors MSTest's MSTestCapabilities:
21+ // https://github.com/microsoft/testfx/blob/5c6ea3bf01f1247736fbbbba0ffdd8a8b38840dc/src/Adapter/MSTest.TestAdapter/TestingPlatformAdapter/TestApplicationBuilderExtensions.cs
22+ // MSTest can implement the internal IInternalVSTestBridgeTrxReportCapability (it is on the bridge's
23+ // InternalsVisibleTo list); external adapters cannot, so we implement the public ITrxReportCapability.
24+ type internal ExpectoTestFrameworkCapabilities () =
25+ interface ITrxReportCapability with
26+ member _.IsSupported = true
27+ member _.Enable () = ()
28+
1029module TestApplicationBuilderExtensions =
1130 let addExpectoFramework ( getTestAssemblies : unit -> Assembly seq ) ( builder : ITestApplicationBuilder ) =
1231 let expectoExtension = ExpectoExtension()
1332 builder.AddRunSettingsService expectoExtension
1433 builder.AddTestCaseFilterService expectoExtension
1534 builder.RegisterTestFramework (
16- ( fun _ -> TestFrameworkCapabilities( VSTestBridgeExtensionBaseCapabilities ())),
35+ ( fun _ -> TestFrameworkCapabilities( ExpectoTestFrameworkCapabilities ())),
1736 ( fun capabilities serviceProvider -> new ExpectoTestFramework( expectoExtension, getTestAssemblies, serviceProvider, capabilities))
1837 ) |> ignore
1938
0 commit comments