From 609775c2ec69284af3755604158f7d7a4ad24ddf Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Wed, 2 Sep 2026 21:29:43 +0200 Subject: [PATCH 01/33] Update shipped APIs by @Evangelink in #10949 (backport to rel/4.4) (#10950) Co-authored-by: Copilot Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../InternalAPI/InternalAPI.Shipped.txt | 77 ++ .../InternalAPI/InternalAPI.Unshipped.txt | 77 -- .../InternalAPI/uwp/InternalAPI.Shipped.txt | 8 + .../InternalAPI/uwp/InternalAPI.Unshipped.txt | 8 - .../InternalAPI/InternalAPI.Shipped.txt | 149 +++- .../InternalAPI/InternalAPI.Unshipped.txt | 149 ---- .../PublicAPI/PublicAPI.Shipped.txt | 2 + .../PublicAPI/PublicAPI.Unshipped.txt | 2 - .../InternalAPI/InternalAPI.Shipped.txt | 227 +++++- .../InternalAPI/InternalAPI.Unshipped.txt | 227 ------ .../InternalAPI/InternalAPI.Shipped.txt | 4 + .../InternalAPI/InternalAPI.Unshipped.txt | 4 - .../PublicAPI/PublicAPI.Shipped.txt | 1 + .../PublicAPI/PublicAPI.Unshipped.txt | 1 - .../InternalAPI/InternalAPI.Shipped.txt | 5 +- .../InternalAPI/InternalAPI.Unshipped.txt | 5 - .../InternalAPI/InternalAPI.Shipped.txt | 56 ++ .../InternalAPI/InternalAPI.Unshipped.txt | 56 -- .../InternalAPI/InternalAPI.Shipped.txt | 267 ++++++- .../InternalAPI/InternalAPI.Unshipped.txt | 271 ------- .../PublicAPI/PublicAPI.Shipped.txt | 4 +- .../PublicAPI/PublicAPI.Unshipped.txt | 4 - .../InternalAPI/InternalAPI.Shipped.txt | 54 +- .../InternalAPI/InternalAPI.Unshipped.txt | 54 -- .../InternalAPI/InternalAPI.Shipped.txt | 6 + .../InternalAPI/InternalAPI.Unshipped.txt | 6 - .../InternalAPI/InternalAPI.Shipped.txt | 40 + .../InternalAPI/InternalAPI.Unshipped.txt | 40 - .../InternalAPI/InternalAPI.Shipped.txt | 36 + .../InternalAPI/InternalAPI.Unshipped.txt | 36 - .../InternalAPI.Shipped.txt | 31 +- .../InternalAPI.Unshipped.txt | 31 - .../InternalAPI/InternalAPI.Shipped.txt | 48 ++ .../InternalAPI/InternalAPI.Unshipped.txt | 48 -- .../PublicAPI/PublicAPI.Shipped.txt | 10 +- .../PublicAPI/PublicAPI.Unshipped.txt | 10 - .../InternalAPI/InternalAPI.Shipped.txt | 56 ++ .../InternalAPI/InternalAPI.Unshipped.txt | 56 -- .../PublicAPI/PublicAPI.Shipped.txt | 5 +- .../PublicAPI/PublicAPI.Unshipped.txt | 5 - .../InternalAPI/InternalAPI.Shipped.txt | 98 ++- .../InternalAPI/InternalAPI.Unshipped.txt | 98 --- .../InternalAPI/InternalAPI.Shipped.txt | 6 + .../InternalAPI/InternalAPI.Unshipped.txt | 6 - .../PublicAPI/PublicAPI.Shipped.txt | 4 + .../PublicAPI/PublicAPI.Unshipped.txt | 4 - .../InternalAPI/InternalAPI.Shipped.txt | 107 ++- .../InternalAPI/InternalAPI.Unshipped.txt | 107 --- .../InternalAPI.Shipped.txt | 52 ++ .../InternalAPI.Unshipped.txt | 52 -- .../InternalAPI/InternalAPI.Shipped.txt | 15 + .../InternalAPI/InternalAPI.Unshipped.txt | 15 - .../InternalAPI/InternalAPI.Shipped.txt | 722 ++++++++++++++++-- .../InternalAPI/InternalAPI.Unshipped.txt | 722 ------------------ .../InternalAPI/net/InternalAPI.Shipped.txt | 15 +- .../InternalAPI/net/InternalAPI.Unshipped.txt | 15 - .../PublicAPI/PublicAPI.Shipped.txt | 251 ++++++ .../PublicAPI/PublicAPI.Unshipped.txt | 251 ------ .../PublicAPI/net462/PublicAPI.Shipped.txt | 1 + .../PublicAPI/net462/PublicAPI.Unshipped.txt | 1 - .../PublicAPI/net8.0/PublicAPI.Shipped.txt | 1 + .../PublicAPI/net8.0/PublicAPI.Unshipped.txt | 1 - .../PublicAPI/net9.0/PublicAPI.Shipped.txt | 1 + .../PublicAPI/net9.0/PublicAPI.Unshipped.txt | 1 - .../netstandard2.0/PublicAPI.Shipped.txt | 1 + .../netstandard2.0/PublicAPI.Unshipped.txt | 1 - .../InternalAPI/InternalAPI.Shipped.txt | 17 + .../InternalAPI/InternalAPI.Unshipped.txt | 17 - .../PublicAPI/PublicAPI.Shipped.txt | 52 ++ .../PublicAPI/PublicAPI.Unshipped.txt | 52 -- .../PublicAPI/net/PublicAPI.Shipped.txt | 150 ++++ .../PublicAPI/net/PublicAPI.Unshipped.txt | 150 ---- 72 files changed, 2453 insertions(+), 2709 deletions(-) diff --git a/src/Adapter/MSTest.TestAdapter/InternalAPI/InternalAPI.Shipped.txt b/src/Adapter/MSTest.TestAdapter/InternalAPI/InternalAPI.Shipped.txt index f953774e18..c15236143b 100644 --- a/src/Adapter/MSTest.TestAdapter/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Adapter/MSTest.TestAdapter/InternalAPI/InternalAPI.Shipped.txt @@ -6,9 +6,17 @@ (T1, T2).Item2 -> T2 (T1, T2).ValueTuple() -> void (T1, T2).ValueTuple(T1 item1, T2 item2) -> void +abstract Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.EnvironmentVariablesNotSupportedOnBrowserError.get -> string! +abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.DisplayName.get -> string! +abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.ReadRunSettings(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> string? +abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Uid.get -> string! +abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Version.get -> string! abstract Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Data.TestDataConnection.GetColumns(string! tableName) -> System.Collections.Generic.List? abstract Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Data.TestDataConnection.GetDataTablesAndViews() -> System.Collections.Generic.List? abstract Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Data.TestDataConnection.ReadTable(string! tableName, System.Collections.IEnumerable? columns) -> System.Data.DataTable? +const Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.RunSettingsOptionName = "settings" -> string! +const Microsoft.Testing.Extensions.TestCaseFilterCommandLineOptionsProviderBase.TestCaseFilterOptionName = "filter" -> string! +const Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase.TestRunParameterOptionName = "test-parameter" -> string! const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestRunSettingsCommandLineOptionsProvider.RunSettingsOptionName = "settings" -> string! const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestTestCaseFilterCommandLineOptionsProvider.TestCaseFilterOptionName = "filter" -> string! const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestTestRunParametersCommandLineOptionsProvider.TestRunParameterOptionName = "test-parameter" -> string! @@ -25,6 +33,32 @@ const Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.EngineC extern Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Utilities.VSInstallationUtilities.SetupConfiguration.SetupConfiguration() -> void Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void +Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase +Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.RunSettingsCommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, string! optionDescription, string! fileDoesNotExistErrorFormat, string! fileCannotBeReadErrorFormat) -> void +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.BuildAsync(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Description.get -> string! +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.GetChildKeys(string? parentPath) -> System.Collections.Generic.IEnumerable! +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.LoadAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Order.get -> int +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.RunSettingsConfigurationProviderBase() -> void +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.TryGet(string! key, out string? value) -> bool +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.TryGetScalar(string! key, out string? value) -> bool +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.Description.get -> string! +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.DisplayName.get -> string! +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.RunSettingsEnvironmentVariableProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> void +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.Uid.get -> string! +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.UpdateAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.ValidateTestHostEnvironmentVariablesAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.Version.get -> string! +Microsoft.Testing.Extensions.RunSettingsProviderHelper +Microsoft.Testing.Extensions.TestCaseFilterCommandLineOptionsProviderBase +Microsoft.Testing.Extensions.TestCaseFilterCommandLineOptionsProviderBase.TestCaseFilterCommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, string! optionDescription) -> void +Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase +Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase.TestRunParametersCommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, string! optionDescription, string! argumentIsNotParameterErrorFormat) -> void Microsoft.Testing.Shared.BannerMessageHelper Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TcmTestPropertiesProvider @@ -38,6 +72,12 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscoverer.Discover Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscoverer.DiscoverTestsAsync(System.Collections.Generic.IEnumerable! sources, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IDiscoveryContext! discoveryContext, Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging.IMessageLogger! logger, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.ITestCaseDiscoverySink! discoverySink, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, bool isMTP) -> System.Threading.Tasks.Task! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscoverer.MSTestDiscoverer() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscoverer.MSTestDiscoverer(Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler, System.Func!, System.Threading.Tasks.Task!>? telemetrySender = null) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.Cancel() -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.DiscoverAsync(System.Collections.Generic.IEnumerable! sources, string? settingsXml, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IUnitTestElementSink! elementSink, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler, bool isMTP) -> System.Threading.Tasks.Task! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.MSTestEngine(System.Threading.CancellationToken cancellationToken, System.Func!, System.Threading.Tasks.Task!>? telemetrySender = null, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestExecutionManager? testExecutionManager = null) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.RunFromSourcesAsync(System.Collections.Generic.IEnumerable! sources, string? settingsXml, string? testRunDirectory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, System.Func! recorderFactory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler, bool isMTP) -> System.Threading.Tasks.Task! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.RunFromTestElementsAsync(System.Func!>! testElementsFactory, System.Collections.Generic.IEnumerable! sourcesForInitialization, string? settingsXml, string? testRunDirectory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, System.Func! recorderFactory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler) -> System.Threading.Tasks.Task! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestExecutor Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestExecutor.Cancel() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestExecutor.MSTestExecutor() -> void @@ -54,6 +94,8 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestElementFilterProvider Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestElementFilterProvider.TestElementFilterProvider(Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IDiscoveryContext? context) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.IMSTestTrxReportCapability Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.IMSTestTrxReportCapability.IsTrxEnabled.get -> bool +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.IUnitTestElementFilterExpression +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.IUnitTestElementFilterExpression.MatchTestElement(System.Func! propertyValueProvider) -> bool Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestDiscoveryContext Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestDiscoveryContext.MSTestDiscoveryContext(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IRunSettings! runSettings, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestFilterContextBase @@ -109,6 +151,9 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MS Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestTestCaseFilterCommandLineOptionsProvider.MSTestTestCaseFilterCommandLineOptionsProvider(Microsoft.Testing.Platform.Extensions.IExtension! extension) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestTestRunParametersCommandLineOptionsProvider Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestTestRunParametersCommandLineOptionsProvider.MSTestTestRunParametersCommandLineOptionsProvider(Microsoft.Testing.Platform.Extensions.IExtension! extension) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MtpTestElementFilterProvider +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MtpTestElementFilterProvider.GetTestElementFilter(Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, out bool filterHasError) -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilter? +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MtpTestElementFilterProvider.MtpTestElementFilterProvider(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestFilterContextBase! filterContext) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestMethodFilter Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestMethodFilter.GetFilterExpression(Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IDiscoveryContext? context, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, out bool filterHasError) -> Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.ITestCaseFilterExpression? Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestMethodFilter.GetTestElementFilter(Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IDiscoveryContext? context, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, out bool filterHasError) -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilter? @@ -255,7 +300,17 @@ Microsoft.VisualStudio.TestTools.UnitTesting.MSTestExtension.MSTestExtension() - Microsoft.VisualStudio.TestTools.UnitTesting.MSTestExtension.Uid.get -> string! Microsoft.VisualStudio.TestTools.UnitTesting.MSTestExtension.Version.get -> string! Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability +Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability.NotifyTestExecutionCompleted() -> void +Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability.NotifyTestExecutionPending() -> void +Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability.NotifyTestExecutionStarting() -> void Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability.StopTestExecutionAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability.TryStopTestExecutionAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity +Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity.Dispose() -> void +Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity.MSTestPlatformActivity(Microsoft.Testing.Platform.Telemetry.IPlatformActivity! activity) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity.RecordException(System.Exception! exception) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity.SetFailed(string? description) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity.SetTag(string! key, object? value) -> void Microsoft.VisualStudio.TestTools.UnitTesting.MSTestTestFramework Microsoft.VisualStudio.TestTools.UnitTesting.MSTestTestFramework.CloseTestSessionAsync(Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionContext! context) -> System.Threading.Tasks.Task! Microsoft.VisualStudio.TestTools.UnitTesting.MSTestTestFramework.CreateTestSessionAsync(Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionContext! context) -> System.Threading.Tasks.Task! @@ -295,6 +350,9 @@ Microsoft.VisualStudio.TestTools.UnitTesting.MTPTraceLogger.Warning(string! mess Microsoft.VisualStudio.TestTools.UnitTesting.MtpUnitTestElementSink Microsoft.VisualStudio.TestTools.UnitTesting.MtpUnitTestElementSink.MtpUnitTestElementSink(Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, bool isTrxEnabled) -> void Microsoft.VisualStudio.TestTools.UnitTesting.MtpUnitTestElementSink.SendTestElementAsync(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! testElement) -> System.Threading.Tasks.Task! +Microsoft.VisualStudio.TestTools.UnitTesting.PlatformServicesConfigurationAdapter +Microsoft.VisualStudio.TestTools.UnitTesting.PlatformServicesConfigurationAdapter.PlatformServicesConfigurationAdapter(Microsoft.Testing.Platform.Configurations.IConfiguration! configuration) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.PlatformServicesConfigurationAdapter.this[string! key].get -> string? override (T1, T2).Equals(object? obj) -> bool override (T1, T2).GetHashCode() -> int override (T1, T2).ToString() -> string! @@ -303,8 +361,13 @@ override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestAs override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache.InitializeLifetimeService() -> object? override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.InitializeLifetimeService() -> object? override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.ReflectHelper.InitializeLifetimeService() -> object? +override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestRunSettingsCommandLineOptionsProvider.EnvironmentVariablesNotSupportedOnBrowserError.get -> string! override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestRunSettingsCommandLineOptionsProvider.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! +override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestRunSettingsConfigurationProvider.DisplayName.get -> string! +override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestRunSettingsConfigurationProvider.Uid.get -> string! +override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestRunSettingsConfigurationProvider.Version.get -> string! override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestTestRunParametersCommandLineOptionsProvider.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! +override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.VSTestAdapter.EqtTraceLogger.InitializeLifetimeService() -> object? override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.AssemblyResolver.InitializeLifetimeService() -> object? override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Data.CsvDataConnection.GetColumns(string! tableName) -> System.Collections.Generic.List? override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Data.CsvDataConnection.GetDataTablesAndViews() -> System.Collections.Generic.List! @@ -326,11 +389,20 @@ override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Test override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.DataRow.get -> System.Data.DataRow? override Microsoft.VisualStudio.TestTools.UnitTesting.MSTestBridgedTestFramework.AddAdditionalProperties(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode, Microsoft.VisualStudio.TestPlatform.ObjectModel.TestCase! testCase) -> void override Microsoft.VisualStudio.TestTools.UnitTesting.MSTestTestNodeException.StackTrace.get -> string? +override Microsoft.VisualStudio.TestTools.UnitTesting.MTPTraceLogger.InitializeLifetimeService() -> object? +override sealed Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! +override sealed Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! +override sealed Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! override System.Runtime.InteropServices.OSPlatform.Equals(object? obj) -> bool override System.Runtime.InteropServices.OSPlatform.GetHashCode() -> int override System.Runtime.InteropServices.OSPlatform.ToString() -> string! Polyfills.Polyfill Polyfills.Polyfill.extension(System.OperatingSystem) +static Microsoft.Testing.Extensions.RunSettingsProviderHelper.ApplyEnvironmentVariables(System.Xml.Linq.XDocument! runSettings, Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables! environmentVariables) -> void +static Microsoft.Testing.Extensions.RunSettingsProviderHelper.CanReadFile(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, string! filePath) -> bool +static Microsoft.Testing.Extensions.RunSettingsProviderHelper.FindInvalidTestParameter(string![]! arguments) -> string? +static Microsoft.Testing.Extensions.RunSettingsProviderHelper.HasEnvironmentVariables(System.Xml.Linq.XDocument! runSettings) -> bool +static Microsoft.Testing.Extensions.RunSettingsProviderHelper.TryLoadRunSettingsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, string! runSettingsOptionName) -> System.Threading.Tasks.Task! static Microsoft.Testing.Shared.BannerMessageHelper.BuildBannerMessage(Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, string! productName, string! version) -> string! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TcmTestPropertiesProvider.GetTcmProperties(Microsoft.VisualStudio.TestPlatform.ObjectModel.TestCase? testCase) -> System.Collections.Generic.IReadOnlyDictionary? static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Extensions.TestCaseExtensions.GetHierarchy(this Microsoft.VisualStudio.TestPlatform.ObjectModel.TestCase! testCase) -> string![]? @@ -373,8 +445,11 @@ static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Utilit static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Utilities.VSInstallationUtilities.PathToPrivateAssemblies.get -> string? static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Utilities.VSInstallationUtilities.PathToPublicAssemblies.get -> string? static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Utilities.VSInstallationUtilities.VSInstallPath.get -> string? +static Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability.Create() -> Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability! static Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability.Instance.get -> Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability! +static Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity.TryEnable(System.IServiceProvider! serviceProvider) -> void static Microsoft.VisualStudio.TestTools.UnitTesting.MSTestTestNodeConverter.ToDiscoveredTestNode(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! element, bool isTrxEnabled) -> Microsoft.Testing.Platform.Extensions.Messages.TestNode! +static Microsoft.VisualStudio.TestTools.UnitTesting.MSTestTestNodeConverter.ToEmptyResultTestNode(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! element, bool isTrxEnabled) -> Microsoft.Testing.Platform.Extensions.Messages.TestNode! static Microsoft.VisualStudio.TestTools.UnitTesting.MSTestTestNodeConverter.ToInProgressTestNode(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! element, bool isTrxEnabled) -> Microsoft.Testing.Platform.Extensions.Messages.TestNode! static Microsoft.VisualStudio.TestTools.UnitTesting.MSTestTestNodeConverter.ToResultTestNode(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! element, Microsoft.VisualStudio.TestTools.UnitTesting.TestResult! result, System.DateTimeOffset startTime, System.DateTimeOffset endTime, bool isTrxEnabled, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings! settings) -> Microsoft.Testing.Platform.Extensions.Messages.TestNode! static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool @@ -393,6 +468,7 @@ static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTe static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.BuildNumberProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.BuildPlatformProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.BuildUriProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! +static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.DependenciesProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.DeploymentItemsProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.DoNotParallelizeProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.ExecutionIdProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! @@ -400,6 +476,7 @@ static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTe static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.ParameterTypesProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.ParentExecIdProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.PriorityProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! +static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.ResourceLocksProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.TestCaseIdProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.TestCaseIndexProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.TestCategoryProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! diff --git a/src/Adapter/MSTest.TestAdapter/InternalAPI/InternalAPI.Unshipped.txt b/src/Adapter/MSTest.TestAdapter/InternalAPI/InternalAPI.Unshipped.txt index 1dcf65510a..7dc5c58110 100644 --- a/src/Adapter/MSTest.TestAdapter/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Adapter/MSTest.TestAdapter/InternalAPI/InternalAPI.Unshipped.txt @@ -1,78 +1 @@ #nullable enable -Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability.TryStopTestExecutionAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability.NotifyTestExecutionCompleted() -> void -Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability.NotifyTestExecutionPending() -> void -Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability.NotifyTestExecutionStarting() -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability.Create() -> Microsoft.VisualStudio.TestTools.UnitTesting.MSTestGracefulStopTestExecutionCapability! -abstract Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.EnvironmentVariablesNotSupportedOnBrowserError.get -> string! -abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.DisplayName.get -> string! -abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.ReadRunSettings(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> string? -abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Uid.get -> string! -abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Version.get -> string! -const Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.RunSettingsOptionName = "settings" -> string! -const Microsoft.Testing.Extensions.TestCaseFilterCommandLineOptionsProviderBase.TestCaseFilterOptionName = "filter" -> string! -const Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase.TestRunParameterOptionName = "test-parameter" -> string! -Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase -Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.RunSettingsCommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, string! optionDescription, string! fileDoesNotExistErrorFormat, string! fileCannotBeReadErrorFormat) -> void -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.BuildAsync(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Description.get -> string! -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.GetChildKeys(string? parentPath) -> System.Collections.Generic.IEnumerable! -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.LoadAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Order.get -> int -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.RunSettingsConfigurationProviderBase() -> void -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.TryGet(string! key, out string? value) -> bool -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.TryGetScalar(string! key, out string? value) -> bool -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.Description.get -> string! -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.DisplayName.get -> string! -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.RunSettingsEnvironmentVariableProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> void -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.Uid.get -> string! -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.UpdateAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.ValidateTestHostEnvironmentVariablesAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.Version.get -> string! -Microsoft.Testing.Extensions.RunSettingsProviderHelper -Microsoft.Testing.Extensions.TestCaseFilterCommandLineOptionsProviderBase -Microsoft.Testing.Extensions.TestCaseFilterCommandLineOptionsProviderBase.TestCaseFilterCommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, string! optionDescription) -> void -Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase -Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase.TestRunParametersCommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, string! optionDescription, string! argumentIsNotParameterErrorFormat) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.Cancel() -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.DiscoverAsync(System.Collections.Generic.IEnumerable! sources, string? settingsXml, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IUnitTestElementSink! elementSink, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler, bool isMTP) -> System.Threading.Tasks.Task! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.MSTestEngine(System.Threading.CancellationToken cancellationToken, System.Func!, System.Threading.Tasks.Task!>? telemetrySender = null, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestExecutionManager? testExecutionManager = null) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.RunFromSourcesAsync(System.Collections.Generic.IEnumerable! sources, string? settingsXml, string? testRunDirectory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, System.Func! recorderFactory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler, bool isMTP) -> System.Threading.Tasks.Task! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.RunFromTestElementsAsync(System.Func!>! testElementsFactory, System.Collections.Generic.IEnumerable! sourcesForInitialization, string? settingsXml, string? testRunDirectory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, System.Func! recorderFactory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler) -> System.Threading.Tasks.Task! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.IUnitTestElementFilterExpression -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.IUnitTestElementFilterExpression.MatchTestElement(System.Func! propertyValueProvider) -> bool -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MtpTestElementFilterProvider -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MtpTestElementFilterProvider.GetTestElementFilter(Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, out bool filterHasError) -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilter? -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MtpTestElementFilterProvider.MtpTestElementFilterProvider(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestFilterContextBase! filterContext) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.PlatformServicesConfigurationAdapter -Microsoft.VisualStudio.TestTools.UnitTesting.PlatformServicesConfigurationAdapter.PlatformServicesConfigurationAdapter(Microsoft.Testing.Platform.Configurations.IConfiguration! configuration) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.PlatformServicesConfigurationAdapter.this[string! key].get -> string? -override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.VSTestAdapter.EqtTraceLogger.InitializeLifetimeService() -> object? -override Microsoft.VisualStudio.TestTools.UnitTesting.MTPTraceLogger.InitializeLifetimeService() -> object? -override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestRunSettingsCommandLineOptionsProvider.EnvironmentVariablesNotSupportedOnBrowserError.get -> string! -override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestRunSettingsConfigurationProvider.DisplayName.get -> string! -override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestRunSettingsConfigurationProvider.Uid.get -> string! -override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestingPlatformAdapter.MSTestRunSettingsConfigurationProvider.Version.get -> string! -override sealed Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! -override sealed Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! -override sealed Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Extensions.RunSettingsProviderHelper.ApplyEnvironmentVariables(System.Xml.Linq.XDocument! runSettings, Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables! environmentVariables) -> void -static Microsoft.Testing.Extensions.RunSettingsProviderHelper.CanReadFile(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, string! filePath) -> bool -static Microsoft.Testing.Extensions.RunSettingsProviderHelper.FindInvalidTestParameter(string![]! arguments) -> string? -static Microsoft.Testing.Extensions.RunSettingsProviderHelper.HasEnvironmentVariables(System.Xml.Linq.XDocument! runSettings) -> bool -static Microsoft.Testing.Extensions.RunSettingsProviderHelper.TryLoadRunSettingsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, string! runSettingsOptionName) -> System.Threading.Tasks.Task! -static Microsoft.VisualStudio.TestTools.UnitTesting.MSTestTestNodeConverter.ToEmptyResultTestNode(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! element, bool isTrxEnabled) -> Microsoft.Testing.Platform.Extensions.Messages.TestNode! -static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.DependenciesProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! -static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.ResourceLocksProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! -Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity -Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity.Dispose() -> void -Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity.MSTestPlatformActivity(Microsoft.Testing.Platform.Telemetry.IPlatformActivity! activity) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity.RecordException(System.Exception! exception) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity.SetFailed(string? description) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity.SetTag(string! key, object? value) -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.MSTestPlatformActivity.TryEnable(System.IServiceProvider! serviceProvider) -> void diff --git a/src/Adapter/MSTest.TestAdapter/InternalAPI/uwp/InternalAPI.Shipped.txt b/src/Adapter/MSTest.TestAdapter/InternalAPI/uwp/InternalAPI.Shipped.txt index 2aedea2946..8458a4dada 100644 --- a/src/Adapter/MSTest.TestAdapter/InternalAPI/uwp/InternalAPI.Shipped.txt +++ b/src/Adapter/MSTest.TestAdapter/InternalAPI/uwp/InternalAPI.Shipped.txt @@ -13,6 +13,12 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscoverer.Discover Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscoverer.DiscoverTestsAsync(System.Collections.Generic.IEnumerable! sources, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IDiscoveryContext! discoveryContext, Microsoft.VisualStudio.TestPlatform.ObjectModel.Logging.IMessageLogger! logger, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.ITestCaseDiscoverySink! discoverySink, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, bool isMTP) -> System.Threading.Tasks.Task! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscoverer.MSTestDiscoverer() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscoverer.MSTestDiscoverer(Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler, System.Func!, System.Threading.Tasks.Task!>? telemetrySender = null) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.Cancel() -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.DiscoverAsync(System.Collections.Generic.IEnumerable! sources, string? settingsXml, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IUnitTestElementSink! elementSink, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler, bool isMTP) -> System.Threading.Tasks.Task! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.MSTestEngine(System.Threading.CancellationToken cancellationToken, System.Func!, System.Threading.Tasks.Task!>? telemetrySender = null, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestExecutionManager? testExecutionManager = null) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.RunFromSourcesAsync(System.Collections.Generic.IEnumerable! sources, string? settingsXml, string? testRunDirectory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, System.Func! recorderFactory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler, bool isMTP) -> System.Threading.Tasks.Task! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.RunFromTestElementsAsync(System.Func!>! testElementsFactory, System.Collections.Generic.IEnumerable! sourcesForInitialization, string? settingsXml, string? testRunDirectory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, System.Func! recorderFactory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler) -> System.Threading.Tasks.Task! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestExecutor Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestExecutor.Cancel() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestExecutor.MSTestExecutor() -> void @@ -90,12 +96,14 @@ static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTe static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.BuildNumberProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.BuildPlatformProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.BuildUriProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! +static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.DependenciesProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.DoNotParallelizeProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.ExecutionIdProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.IsInLabEnvironmentProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.ParameterTypesProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.ParentExecIdProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.PriorityProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! +static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.ResourceLocksProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.TestCaseIdProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.TestCaseIndexProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.TestCategoryProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! diff --git a/src/Adapter/MSTest.TestAdapter/InternalAPI/uwp/InternalAPI.Unshipped.txt b/src/Adapter/MSTest.TestAdapter/InternalAPI/uwp/InternalAPI.Unshipped.txt index 497815dbc8..7dc5c58110 100644 --- a/src/Adapter/MSTest.TestAdapter/InternalAPI/uwp/InternalAPI.Unshipped.txt +++ b/src/Adapter/MSTest.TestAdapter/InternalAPI/uwp/InternalAPI.Unshipped.txt @@ -1,9 +1 @@ #nullable enable -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.Cancel() -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.DiscoverAsync(System.Collections.Generic.IEnumerable! sources, string? settingsXml, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IUnitTestElementSink! elementSink, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler, bool isMTP) -> System.Threading.Tasks.Task! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.MSTestEngine(System.Threading.CancellationToken cancellationToken, System.Func!, System.Threading.Tasks.Task!>? telemetrySender = null, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestExecutionManager? testExecutionManager = null) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.RunFromSourcesAsync(System.Collections.Generic.IEnumerable! sources, string? settingsXml, string? testRunDirectory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, System.Func! recorderFactory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler, bool isMTP) -> System.Threading.Tasks.Task! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestEngine.RunFromTestElementsAsync(System.Func!>! testElementsFactory, System.Collections.Generic.IEnumerable! sourcesForInitialization, string? settingsXml, string? testRunDirectory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger, System.Func! recorderFactory, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler) -> System.Threading.Tasks.Task! -static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.DependenciesProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! -static readonly Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.AdapterTestProperties.ResourceLocksProperty -> Microsoft.VisualStudio.TestPlatform.ObjectModel.TestProperty! diff --git a/src/Adapter/MSTestAdapter.PlatformServices/InternalAPI/InternalAPI.Shipped.txt b/src/Adapter/MSTestAdapter.PlatformServices/InternalAPI/InternalAPI.Shipped.txt index 338e9acc97..7fff1ab66a 100644 --- a/src/Adapter/MSTestAdapter.PlatformServices/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Adapter/MSTestAdapter.PlatformServices/InternalAPI/InternalAPI.Shipped.txt @@ -18,6 +18,21 @@ abstract Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Util const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestMethodInfo.TimeoutWhenNotSet = 0 -> int const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.RunSettingsUtilities.RunConfigurationSettingsName = "RunConfiguration" -> string! const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.RunSettingsUtilities.TestRunParametersName = "TestRunParameters" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.AssemblyCleanup = "MSTest.AssemblyCleanup" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.AssemblyInitialize = "MSTest.AssemblyInitialize" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.ClassCleanup = "MSTest.ClassCleanup" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.ClassInitialize = "MSTest.ClassInitialize" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.Discovery = "MSTest.Discovery" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.TestCleanup = "MSTest.TestCleanup" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.TestInitialize = "MSTest.TestInitialize" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.TestMethod = "MSTest.TestMethod" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.DataRowIndex = "test.case.data_row.index" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.FixtureKind = "test.fixture.kind" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.RetryAttempt = "test.case.retry.attempt" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.TestAssembly = "test.assembly.name" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.TestClass = "test.suite.name" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.TestMethod = "test.case.name" -> string! +const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.TimeoutMilliseconds = "test.case.timeout" -> string! const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.SettingsName = "MSTest" -> string! const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.SettingsNameAlias = "MSTestV2" -> string! const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod.TotalHierarchyLevels = 4 -> int @@ -123,6 +138,7 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumera Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumerator Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumerator.AssemblyEnumerator() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumerator.AssemblyEnumerator(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings! settings) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumerator.EnumerateAssembly(string! assemblyFileName, bool mustSerialize, bool useGeneratedDescriptors) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumerationResult! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumerator.EnumerateAssembly(string! assemblyFileName, bool mustSerialize) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumerationResult! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumeratorWrapper Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumeratorWrapper.AssemblyEnumeratorWrapper() -> void @@ -134,24 +150,32 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.DiscoveryTestMe Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TestMethodValidator Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TestMethodValidator.TestMethodValidator(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.ReflectHelper! reflectHelper, bool discoverInternals) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeEnumerator +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeEnumerator.GetTestFromMethod(System.Reflection.MethodInfo! method, bool classDisablesParallelization, System.Collections.Generic.ICollection! warnings, bool isFromGeneratedDescriptor) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeEnumerator.GetTestFromMethod(System.Reflection.MethodInfo! method, bool classDisablesParallelization, System.Collections.Generic.ICollection! warnings) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeEnumerator.GetTests(System.Collections.Generic.List! warnings) -> System.Collections.Generic.List! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeEnumerator.TypeEnumerator(System.Type! type, string! assemblyFilePath, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.ReflectHelper! reflectHelper, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeValidator! typeValidator, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TestMethodValidator! testMethodValidator) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeValidator Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeValidator.TypeValidator(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.ReflectHelper! reflectHelper, bool discoverInternals) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeValidator.TypeValidator(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.ReflectHelper! reflectHelper) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.AsyncReaderWriterLock +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.AsyncReaderWriterLock.AcquireReaderAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.AsyncReaderWriterLock.AcquireWriterAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.AsyncReaderWriterLock.AsyncReaderWriterLock() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ClassCleanupManager Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ClassCleanupManager.ClassCleanupManager(System.Collections.Generic.IEnumerable! testsToRun) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ClassCleanupManager.MarkClassComplete(string! fullClassName) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ClassCleanupManager.MarkTestComplete(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod! testMethod, out bool isLastTestInClass) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ClassCleanupManager.ShouldRunEndOfAssemblyCleanup.get -> bool Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleErrorRouter -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleErrorRouter.ConsoleErrorRouter(System.IO.TextWriter! originalConsoleErr) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleErrorRouter.ConsoleErrorRouter(System.IO.TextWriter! originalConsoleErr, System.Func! modeProvider) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleOutRouter -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleOutRouter.ConsoleOutRouter(System.IO.TextWriter! originalConsoleOut) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleOutRouter.ConsoleOutRouter(System.IO.TextWriter! originalConsoleOut, System.Func! modeProvider) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleRouter -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleRouter.ConsoleRouter(System.IO.TextWriter! originalConsole) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleRouter.ConsoleRouter(System.IO.TextWriter! originalConsole, System.Func! modeProvider) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ExceptionHelper +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ResourceLockManager +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ResourceLockManager.ExecuteWithLocksAsync(System.Collections.Generic.IReadOnlyList! locks, System.Func! action, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ResourceLockManager.ResourceLockManager() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestAssemblyInfo Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestAssemblyInfo.Assembly.get -> System.Reflection.Assembly! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestAssemblyInfo.AssemblyCleanupException.get -> System.Exception? @@ -225,6 +249,30 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestClassInfo.T Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestClassInfo.TestInitializeMethod.set -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestClassInfo.TestInitializeMethodTimeoutMilliseconds.get -> System.Collections.Generic.Dictionary! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestClassInfo.TryGetClonedCachedClassInitializeResult() -> Microsoft.VisualStudio.TestTools.UnitTesting.TestResult? +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyCoordinator +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyCoordinator.RecordNotRun(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! test) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyCoordinator.RecordOutcome(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! test, bool passed) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyCoordinator.ShouldSkip(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! test, out string? reason) -> bool +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyCoordinator.TestDependencyCoordinator(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph! graph) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration.Dependent.get -> string! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration.Prerequisite.get -> string! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration.ProceedOnFailure.get -> bool +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration.TestDependencyDeclaration(string! dependent, string! prerequisite, bool proceedOnFailure) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.BrokenTest +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.BrokenTest.BrokenTest(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! element, string! cycleMessage) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.BrokenTest.CycleMessage.get -> string! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.BrokenTest.Element.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.BrokenTests.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.Errors.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.ParallelChunkPrerequisites.get -> int[]![]! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.ParallelChunks.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement![]![]! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.ProceedOnFailure.get -> bool[]! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.SequentialTests.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement![]! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.TestPrerequisites.get -> int[]![]! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.Tests.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement![]! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.Warnings.get -> System.Collections.Generic.IReadOnlyList! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestExecutionManager Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestExecutionManager.RunTestsAsync(System.Collections.Generic.IEnumerable! tests, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Deployment.DeploymentContext! deploymentContext, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestResultRecorder! testResultRecorder, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken! runCancellationToken) -> System.Threading.Tasks.Task! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestExecutionManager.RunTestsAsync(System.Collections.Generic.IEnumerable! sources, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Deployment.DeploymentContext! deploymentContext, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestResultRecorder! testResultRecorder, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler, bool isMTP, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken! cancellationToken) -> System.Threading.Tasks.Task! @@ -264,7 +312,7 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TimeoutInfo.Coo Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TimeoutInfo.Timeout.get -> int Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TimeoutInfo.TimeoutInfo() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TraceTextWriter -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TraceTextWriter.TraceTextWriter() -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TraceTextWriter.TraceTextWriter(System.IO.TextWriter! console, System.Func! modeProvider) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache.AssemblyInfoCache.get -> System.Collections.Generic.ICollection! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache.AssemblyInfoListWithExecutableCleanupMethods.get -> System.Collections.Generic.IEnumerable! @@ -278,8 +326,12 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache.TypeC Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.Cancel() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.ForceCleanup(System.Collections.Generic.IDictionary! sourceLevelParameters, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.NotifyTestNotRun(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! unitTestElement, System.Collections.Generic.IDictionary! testContextProperties, System.Collections.Generic.IDictionary! lifecycleContextProperties, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger) -> Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.NotifyTestNotRunAsync(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! unitTestElement, System.Collections.Generic.IDictionary! testContextProperties, System.Collections.Generic.IDictionary! lifecycleContextProperties, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger) -> System.Threading.Tasks.Task! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.RunSingleTest(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! unitTestElement, System.Collections.Generic.IDictionary! testContextProperties, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger) -> Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.RunSingleTest(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! unitTestElement, System.Collections.Generic.IDictionary! testContextProperties, System.Collections.Generic.IDictionary! lifecycleContextProperties, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger) -> Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.RunSingleTestAsync(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! unitTestElement, System.Collections.Generic.IDictionary! testContextProperties, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger) -> System.Threading.Tasks.Task! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.RunSingleTestAsync(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! unitTestElement, System.Collections.Generic.IDictionary! testContextProperties, System.Collections.Generic.IDictionary! lifecycleContextProperties, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger) -> System.Threading.Tasks.Task! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.UnitTestRunner(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings! settings, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement![]! testsToRun, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.ReflectHelper! reflectHelper) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.UnitTestRunner(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings! settings, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement![]! testsToRun) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Extensions.MethodInfoExtensions @@ -296,6 +348,8 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind.Assem Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind.AssemblyInitialize = 0 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind.ClassCleanup = 3 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind.ClassInitialize = 2 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind.GlobalTestCleanup = 7 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind.GlobalTestInitialize = 6 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind.TestCleanup = 5 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind.TestInitialize = 4 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureMethodRunner @@ -306,6 +360,10 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.RuntimeContext Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.TestDataSourceHelpers Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.TestRunParameters Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.XmlReaderUtilities +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity.RecordException(System.Exception! exception) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity.SetFailed(string? description) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity.SetTag(string! key, object? value) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IPlatformServiceProvider Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IPlatformServiceProvider.AdapterTraceLogger.get -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITraceLogger! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IPlatformServiceProvider.AdapterTraceLogger.set -> void @@ -322,6 +380,9 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IPlatformServiceProvider. Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IPlatformServiceProvider.TestRunCancellationToken.set -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IPlatformServiceProvider.ThreadOperations.get -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IThreadOperations! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscovererHelpers +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.AssemblyCleanupTimeout.get -> int Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.AssemblyInitializeTimeout.get -> int @@ -330,12 +391,16 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.ClassClean Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.ClassInitializeTimeout.get -> int Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.ConsiderEmptyDataSourceAsInconclusive.get -> bool Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.CooperativeCancellationTimeout.get -> bool +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.DeclaredDependencies.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration![]? Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.DisableParallelization.get -> bool +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.GlobalTestCleanupTimeout.get -> int +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.GlobalTestInitializeTimeout.get -> int Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.LaunchDebuggerOnAssertionFailure.get -> Microsoft.VisualStudio.TestTools.UnitTesting.DebuggerLaunchMode Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.MapInconclusiveToFailed.get -> bool Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.MapNotRunnableToFailed.get -> bool Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.MSTestSettings() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.OrderTestsByNameInClass.get -> bool +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.OutputCaptureMode.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.ParallelizationScope.get -> Microsoft.VisualStudio.TestTools.UnitTesting.ExecutionScope? Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.ParallelizationWorkers.get -> int? Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.RandomizeTestOrder.get -> bool @@ -368,12 +433,17 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.NopTraceLogger.Verbose(st Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.NopTraceLogger.Warning(string! format, params object?[]! args) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.NopTraceLogger.Warning(string! message) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.AdapterSettingsException +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.AdapterSettingsException.AdapterSettingsException(string? message, System.Exception? innerException) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.AdapterSettingsException.AdapterSettingsException(string? message) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.DynamicDataType Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.DynamicDataType.ITestDataSource = 1 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.DynamicDataType Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.DynamicDataType.None = 0 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.DynamicDataType Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.InvalidRunSettingsException Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.InvalidRunSettingsException.InvalidRunSettingsException(string? message) -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo.Mode.get -> Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo.Resource.get -> string! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo.ResourceLockInfo(string! resource, Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode mode) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.StackTraceInformation Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.StackTraceInformation.ErrorColumnNumber.get -> int Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.StackTraceInformation.ErrorFilePath.get -> string? @@ -389,6 +459,12 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestAssemblyS Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestAssemblySettings.TestAssemblySettings() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestAssemblySettings.Workers.get -> int Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestAssemblySettings.Workers.set -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.DescribeTarget() -> string! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.ProceedOnFailure.get -> bool +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.TargetClassFullName.get -> string? +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.TargetMethodName.get -> string? +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.TestDependencyInfo(string? targetClassFullName, string? targetMethodName, bool proceedOnFailure) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestFailedException Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestFailedException.Outcome.get -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestFailedException.StackTraceInformation.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.StackTraceInformation? @@ -408,6 +484,7 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod.Da Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod.DisplayName.get -> string! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod.DisplayName.set -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod.FullClassName.get -> string! +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod.FullyQualifiedName.get -> string! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod.HasManagedMethodAndTypeProperties.get -> bool Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod.Hierarchy.get -> System.Collections.Generic.IReadOnlyCollection? Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod.ManagedMethodName.get -> string? @@ -434,6 +511,8 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TypeInspectio Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TypeInspectionException.TypeInspectionException(string? message, System.Exception? innerException) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TypeInspectionException.TypeInspectionException(string? message) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.CachedTestNodeUid.get -> System.Guid? +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.CachedTestNodeUid.set -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.Clone() -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.CloneWithSource(string! source) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.CloneWithUpdatedSource(string! source) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! @@ -441,6 +520,8 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestEleme Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.DeclaringFilePath.set -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.DeclaringLineNumber.get -> int? Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.DeclaringLineNumber.set -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.Dependencies.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo![]? +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.Dependencies.set -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.DeploymentItems.get -> System.Collections.Generic.KeyValuePair[]? Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.DeploymentItems.set -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.DoNotParallelize.get -> bool @@ -449,8 +530,12 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestEleme Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.ExecutionContextProperties.set -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.HostRecordingHandle.get -> object? Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.HostRecordingHandle.set -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.IsFromGeneratedDescriptor.get -> bool +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.IsFromGeneratedDescriptor.set -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.Priority.get -> int? Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.Priority.set -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.ResourceLocks.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo![]? +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.ResourceLocks.set -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.TestCategory.get -> string![]? Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.TestCategory.set -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.TestMethod.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod! @@ -481,9 +566,14 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.PlatformServiceProvider.T Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.RunConfigurationSettings Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.RunConfigurationSettings.ExecutionApartmentState.get -> System.Threading.ApartmentState? Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.RunConfigurationSettings.RunConfigurationSettings() -> void +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode.Live = 2 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode.None = 0 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode.Result = 1 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken.Cancel() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken.Canceled.get -> bool +Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken.CancellationToken.get -> System.Threading.CancellationToken Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken.Register(System.Action! callback, object? state) -> System.Threading.CancellationTokenRegistration Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken.TestRunCancellationToken() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken.TestRunCancellationToken(System.Threading.CancellationToken originalCancellationToken) -> void @@ -611,6 +701,7 @@ Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.FileOperation Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.FileOperations.GetFullFilePath(string! assemblyFileName) -> string! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.FileOperations.LoadAssembly(string! assemblyName) -> System.Reflection.Assembly! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AssemblyFileLocator +Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AttributeQueryHelper Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.HierarchyConstants Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.HierarchyConstants.Levels Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.InvalidManagedNameException @@ -652,6 +743,7 @@ Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IRe Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IReflectionOperations.GetType(System.Reflection.Assembly! assembly, string! typeName) -> System.Type? Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IReflectionOperations.IsAttributeDefined(System.Reflection.ICustomAttributeProvider! attributeProvider) -> bool Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IReflectionOperations.IsMethodDeclaredInSameAssemblyAsType(System.Reflection.MethodInfo! method, System.Type! type) -> bool +Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IReflectionOperations.TryGetTestMethodDescriptors(System.Type! type, out System.Reflection.MethodInfo![]? methods, out bool areAllTestMethodsSupported) -> bool Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ISettingsProvider Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ISettingsProvider.GetProperties(string! source) -> System.Collections.Generic.IDictionary! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ISettingsProvider.Load(System.Xml.XmlReader! reader) -> void @@ -762,6 +854,7 @@ Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.ReflectionOpe Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.ReflectionOperations.IsMethodDeclaredInSameAssemblyAsType(System.Reflection.MethodInfo! method, System.Type! type) -> bool Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.ReflectionOperations.NotCachedReflectionAccessor Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.ReflectionOperations.ReflectionOperations() -> void +Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.ReflectionOperations.TryGetTestMethodDescriptors(System.Type! type, out System.Reflection.MethodInfo![]? methods, out bool areAllTestMethodsSupported) -> bool Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SequentialIntPermutation Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SequentialIntPermutation.GetEnumerator() -> System.Collections.Generic.IEnumerator! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SequentialIntPermutation.SequentialIntPermutation(int numberOfObjects) -> void @@ -775,7 +868,7 @@ Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGenerat Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedFileOperations.LoadAssembly(string! assemblyName) -> System.Reflection.Assembly! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedFileOperations.SourceGeneratedFileOperations(Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider! dataProvider) -> void Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.Assembly.get -> System.Reflection.Assembly! +Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.Assembly.get -> System.Reflection.Assembly? Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.Assembly.init -> void Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.AssemblyAttributes.get -> object![]! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.AssemblyAttributes.init -> void @@ -787,6 +880,10 @@ Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGenerat Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.ConstructorInvoker.Invoker.init -> void Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.ConstructorInvoker.Parameters.get -> System.Type![]! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.ConstructorInvoker.Parameters.init -> void +Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.DescriptorCompleteTypes.get -> System.Collections.Generic.IReadOnlyDictionary! +Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.DescriptorCompleteTypes.init -> void +Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.DescriptorTestMethods.get -> System.Collections.Generic.IReadOnlyDictionary! +Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.DescriptorTestMethods.init -> void Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.SourceGeneratedReflectionDataProvider() -> void Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.TypeAttributes.get -> System.Collections.Generic.IReadOnlyDictionary! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.TypeAttributes.init -> void @@ -843,6 +940,7 @@ Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGenerat Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionOperations.IsAttributeDefined(System.Reflection.ICustomAttributeProvider! attributeProvider) -> bool Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionOperations.IsMethodDeclaredInSameAssemblyAsType(System.Reflection.MethodInfo! method, System.Type! type) -> bool Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionOperations.SourceGeneratedReflectionOperations(Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider! dataProvider) -> void +Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionOperations.TryGetTestMethodDescriptors(System.Type! type, out System.Reflection.MethodInfo![]? methods, out bool areAllTestMethodsSupported) -> bool Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.AddProperty(string! propertyName, string! propertyValue) -> void Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.CaptureLifecycleProperties() -> System.Collections.Generic.IReadOnlyDictionary? @@ -866,6 +964,8 @@ Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextIm Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SetException(System.Exception? exception) -> void Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SetOutcome(Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome outcome) -> void Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SetTestData(object?[]? data) -> void +Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.StandardErrorBuilder.get -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SynchronizedStringBuilder! +Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.StandardOutputBuilder.get -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SynchronizedStringBuilder! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SynchronizedStringBuilder Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SynchronizedStringBuilder.Append(char value) -> void Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SynchronizedStringBuilder.Append(char[]! buffer, int index, int count) -> void @@ -875,15 +975,8 @@ Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextIm Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SynchronizedStringBuilder.GetAndClear() -> string! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SynchronizedStringBuilder.SynchronizedStringBuilder() -> void Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.TestContextImplementation(Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ObjectModel.ITestMethod? testMethod, string? testClassFullName, System.Collections.Generic.IDictionary! properties, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger? messageLogger, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken? testRunCancellationToken) -> void +Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.TraceBuilder.get -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SynchronizedStringBuilder! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.TryGetPropertyValue(string! propertyName, out object? propertyValue) -> bool -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteConsoleErr(char value) -> void -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteConsoleErr(char[]! buffer, int index, int count) -> void -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteConsoleErr(string? value) -> void -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteConsoleOut(char value) -> void -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteConsoleOut(char[]! buffer, int index, int count) -> void -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteConsoleOut(string? value) -> void -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteTrace(char value) -> void -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteTrace(string? value) -> void Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestDataSource Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestDataSource.GetData(Microsoft.VisualStudio.TestTools.UnitTesting.ITestMethod! testMethodInfo, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestContext! testContext) -> System.Collections.Generic.IEnumerable? Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestDataSource.TestDataSource() -> void @@ -992,6 +1085,7 @@ override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TraceT override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache.InitializeLifetimeService() -> object? override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.InitializeLifetimeService() -> object? override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.ReflectHelper.InitializeLifetimeService() -> object? +override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.NopTraceLogger.InitializeLifetimeService() -> object? override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestFailedException.StackTrace.get -> string? override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.AssemblyResolver.InitializeLifetimeService() -> object? override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Data.CsvDataConnection.GetColumns(string! tableName) -> System.Collections.Generic.List? @@ -1026,6 +1120,7 @@ override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Test override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.DisplayMessage(Microsoft.VisualStudio.TestTools.UnitTesting.MessageLevel messageLevel, string! message) -> void override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.Properties.get -> System.Collections.Generic.IDictionary! override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SynchronizedStringBuilder.ToString() -> string! +override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.TestTempDirectory.get -> string? override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.Write(string! format, params object?[]! args) -> void override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.Write(string? message) -> void override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteLine(string! format, params object?[]! args) -> void @@ -1044,6 +1139,13 @@ static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeVali static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ClassCleanupManager.ForceCleanup(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache! typeCache, System.Collections.Generic.IDictionary! sourceLevelParameters, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! logger) -> void static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ExceptionHelper.GetFormattedExceptionMessage(this System.Exception! ex) -> string! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ExceptionHelper.GetStackTraceInformation(this System.Exception! ex) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.StackTraceInformation? +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ResourceLockManager.GetChunkLocks(System.Collections.Generic.IEnumerable! testSet) -> System.Collections.Generic.IReadOnlyList! +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration.ApplyAll(System.Collections.Generic.IEnumerable! declarations, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement![]! tests, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger? adapterMessageLogger) -> bool +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration.ReportUnmatchedDeclarations(System.Collections.Generic.IEnumerable! declarations, System.Collections.Generic.IEnumerable! allTests, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger? logger) -> void +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.Build(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement![]! tests, Microsoft.VisualStudio.TestTools.UnitTesting.ExecutionScope scope, bool parallelizationEnabled) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph? +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestMethodInfo.ParameterMetadataScanCount.get -> int +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestMethodInfo.ResetParameterMetadataCacheForTesting() -> void +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestMethodInfo.SetParameterMetadataScanCallbackForTesting(System.Action? callback) -> void static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestRunInfo.CreateFrom(System.Collections.Generic.IReadOnlyList! testsToRun) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestRunInfo! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TimeoutInfo.FromFixtureSettings(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind fixtureKind) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TimeoutInfo static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TimeoutInfo.FromTestTimeoutSettings() -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TimeoutInfo @@ -1051,8 +1153,11 @@ static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TimeoutI static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TimeoutInfo.FromTimeoutAttribute(Microsoft.VisualStudio.TestTools.UnitTesting.TimeoutAttribute! timeoutAttribute) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TimeoutInfo static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache.CollectFixtureMethodsFromProviderType(System.Type! fixtureType, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestAssemblyInfo! assemblyInfo, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache! this, bool localProvidedInit, bool localProvidedCleanup) -> void static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache.InstantiateTestFilter(System.Type! filterType) -> Microsoft.VisualStudio.TestTools.UnitTesting.ITestFilter! +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache.IsTestFilterProviderMarkerType(System.Type? attributeType) -> bool static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache.LoadProviderMarkers(System.Reflection.Assembly! candidate) -> object![]! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache.ProcessProviderFixtureType(System.Type! fixtureType, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestAssemblyInfo! assemblyInfo, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache! this, bool localProvidedInit, bool localProvidedCleanup) -> void +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.CombineRetryAttempts(Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! firstAttempt, Microsoft.VisualStudio.TestTools.UnitTesting.RetryResult! retryResult) -> Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.CreateLiveOutputWriter(System.IO.Stream! standardOutput, System.Text.Encoding! encoding) -> System.IO.TextWriter! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Extensions.MethodInfoExtensions.GetAsyncTypeName(this System.Reflection.MethodInfo! method, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.ReflectHelper? reflectHelper = null) -> string? static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Extensions.MethodInfoExtensions.GetInvokeResultAsync(this System.Reflection.MethodInfo! methodInfo, object? classInstance, params object?[]? arguments) -> System.Threading.Tasks.Task? static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Extensions.MethodInfoExtensions.GetInvokeResultWithParametersAsync(this System.Reflection.MethodInfo! methodInfo, object? classInstance, System.Reflection.ParameterInfo![]! methodParameters, params object?[]? arguments) -> System.Threading.Tasks.Task? @@ -1091,6 +1196,7 @@ static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.RunSetting static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.RunSettingsUtilities.ReaderSettings.get -> System.Xml.XmlReaderSettings! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.RunSettingsUtilities.ThrowOnHasAttributes(System.Xml.XmlReader! reader) -> void static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.RuntimeContext.IsHotReloadEnabled.get -> bool +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.RuntimeContext.IsMultiThreaded.get -> bool static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.TestDataSourceHelpers.IsDataConsideredSingleArgumentValue(object?[]? data, System.Reflection.ParameterInfo![]! parameters) -> bool static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.TestDataSourceHelpers.TryHandleITestDataRow(object?[]! d, System.Reflection.ParameterInfo![]! testMethodParameters, out object?[]! data, out string? ignoreMessageFromTestDataRow, out string? displayNameFromTestDataRow, out System.Collections.Generic.IList? testCategoriesFromTestDataRow) -> bool static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.TestDataSourceHelpers.TryHandleITestDataRow(object?[]! d, System.Reflection.ParameterInfo![]! testMethodParameters, out object?[]! data, out string? ignoreMessageFromTestDataRow, out string? displayNameFromTestDataRow) -> bool @@ -1100,7 +1206,12 @@ static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.XmlReaderU static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.XmlReaderUtilities.ReadToRootNode(System.Xml.XmlReader! reader) -> void static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.XmlReaderUtilities.SkipToNextElement(this System.Xml.XmlReader! reader) -> void static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscovererHelpers.AreValidSources(System.Collections.Generic.IEnumerable! sources, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler) -> bool +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscovererHelpers.GetSettingsExceptionMessage(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.AdapterSettingsException! ex) -> string! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscovererHelpers.InitializeDiscovery(System.Collections.Generic.IEnumerable! sources, string? settingsXml, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IConfiguration? configuration, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestSourceHandler! testSourceHandler) -> bool +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.IsEnabled.get -> bool +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.SetActivityFactory(System.Func>?, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity?>? activityFactory) -> void +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.StartActivity(string! name, System.Collections.Generic.IEnumerable>? tags = null) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity? +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.StartFixtureActivity(string! name, string! fixtureKind, string? owningType, string? assemblyName = null) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity? static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.CurrentSettings.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.GetSettings(string? runSettingsXml, string! settingName, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger? logger) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings? static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.PopulateSettings(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings! settings) -> void @@ -1115,6 +1226,10 @@ static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestTelemetryDat static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestTelemetryDataCollector.SendDiscoveryTelemetryAndResetAsync(System.Func!, System.Threading.Tasks.Task!>? telemetrySender) -> System.Threading.Tasks.Task! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestTelemetryDataCollector.SendExecutionTelemetryAndResetAsync(System.Func!, System.Threading.Tasks.Task!>? telemetrySender) -> System.Threading.Tasks.Task! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.NopTraceLogger.Instance.get -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITraceLogger! +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo.Decode(string! encoded) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo! +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo.Encode(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo! info) -> string! +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.Decode(string! encoded) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo! +static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.Encode(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo! info) -> string! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.PlatformServiceProvider.Instance.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IPlatformServiceProvider! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.PlatformServiceProvider.Instance.set -> void static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.RunConfigurationSettings.GetSettings(string? runSettingsXml) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.RunConfigurationSettings! @@ -1142,6 +1257,11 @@ static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Extens static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AssemblyFileLocator.GetDirectoryOrAppContextBase(System.Reflection.Assembly! assembly) -> string! static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AssemblyFileLocator.GetFileNameOrSimpleName(System.Reflection.Assembly! assembly) -> string! static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AssemblyFileLocator.TryGetLocation(System.Reflection.Assembly! assembly) -> string? +static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AttributeQueryHelper.GetAttributes(System.Attribute![]! attributes) -> System.Collections.Generic.IEnumerable! +static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AttributeQueryHelper.GetFirstAttributeOrDefault(System.Attribute![]! attributes) -> TAttribute? +static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AttributeQueryHelper.GetSingleAttributeOrDefault(System.Attribute![]! attributes) -> TAttribute? +static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AttributeQueryHelper.IsAttributeDefined(System.Attribute![]! attributes) -> bool +static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AttributeQueryHelper.PerformActionOnAttribute(System.Attribute![]! attributes, System.Action! action, TState? state) -> void static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.ManagedNameHelper.GetManagedNameAndHierarchy(System.Reflection.MethodBase! method, out string! managedTypeName, out string! managedMethodName, out string?[]! hierarchyValues) -> void static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.ManagedNameHelper.GetMethod(System.Reflection.Assembly! assembly, string! managedTypeName, string! managedMethodName) -> System.Reflection.MethodInfo! static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.ManagedNameHelper.ParseEscapedString(string! escapedString) -> string! @@ -1159,7 +1279,9 @@ static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.MSTest static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.MSTestSettingsProvider.Reset() -> void static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.MSTestSettingsProvider.Settings.get -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.MSTestAdapterSettings! static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.ReflectionOperations.NotCachedReflectionAccessor.GetCustomAttributesNotCached(System.Reflection.ICustomAttributeProvider! attributeProvider) -> object![]? +static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.ConfigureLiveOutputWriter(System.IO.TextWriter! liveOutputWriter) -> void static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SetCurrentTestContext(Microsoft.VisualStudio.TestTools.UnitTesting.TestContext? testContext) -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.ScopedTestContextSetter +static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SetLiveOutputWriterForTesting(System.IO.TextWriter! liveOutputWriter) -> System.IDisposable! static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestDeployment.GetDeploymentInformation(string? source) -> System.Collections.Generic.IDictionary! static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestDeployment.Reset() -> void static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestDeployment.RunDirectories.get -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Deployment.TestRunDirectories? @@ -1261,6 +1383,7 @@ TestFx.Hashing.XxHash128.XxHash128() -> void TestFx.Hashing.XxHash128.XxHash128(long seed) -> void virtual Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumerator.GetTypeEnumerator(System.Type! type, string! assemblyFileName, bool discoverInternals) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeEnumerator! virtual Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TestMethodValidator.IsValidTestMethod(System.Reflection.MethodInfo! testMethodInfo, System.Type! type, System.Collections.Generic.ICollection! warnings) -> bool +virtual Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeEnumerator.Enumerate(System.Collections.Generic.List! warnings, bool useGeneratedDescriptors) -> System.Collections.Generic.List? virtual Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeEnumerator.Enumerate(System.Collections.Generic.List! warnings) -> System.Collections.Generic.List? virtual Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeValidator.IsValidTestClass(System.Type! type, System.Collections.Generic.List! warnings) -> bool virtual Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestExecutionManager.ExecuteTestsAsync(System.Collections.Generic.IEnumerable! tests, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Deployment.DeploymentContext! deploymentContext, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestResultRecorder! testResultRecorder, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.ITestElementFilterProvider? filterProvider, bool isDeploymentDone) -> System.Threading.Tasks.Task! diff --git a/src/Adapter/MSTestAdapter.PlatformServices/InternalAPI/InternalAPI.Unshipped.txt b/src/Adapter/MSTestAdapter.PlatformServices/InternalAPI/InternalAPI.Unshipped.txt index b31dea32e1..7dc5c58110 100644 --- a/src/Adapter/MSTestAdapter.PlatformServices/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Adapter/MSTestAdapter.PlatformServices/InternalAPI/InternalAPI.Unshipped.txt @@ -1,150 +1 @@ -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleErrorRouter.ConsoleErrorRouter(System.IO.TextWriter! originalConsoleErr) -> void -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleOutRouter.ConsoleOutRouter(System.IO.TextWriter! originalConsoleOut) -> void -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleRouter.ConsoleRouter(System.IO.TextWriter! originalConsole) -> void -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TraceTextWriter.TraceTextWriter() -> void -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.Assembly.get -> System.Reflection.Assembly! -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteConsoleErr(char value) -> void -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteConsoleErr(char[]! buffer, int index, int count) -> void -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteConsoleErr(string? value) -> void -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteConsoleOut(char value) -> void -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteConsoleOut(char[]! buffer, int index, int count) -> void -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteConsoleOut(string? value) -> void -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteTrace(char value) -> void -*REMOVED*Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.WriteTrace(string? value) -> void #nullable enable -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.AssemblyCleanup = "MSTest.AssemblyCleanup" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.AssemblyInitialize = "MSTest.AssemblyInitialize" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.ClassCleanup = "MSTest.ClassCleanup" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.ClassInitialize = "MSTest.ClassInitialize" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.Discovery = "MSTest.Discovery" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.TestCleanup = "MSTest.TestCleanup" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.TestInitialize = "MSTest.TestInitialize" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames.TestMethod = "MSTest.TestMethod" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.DataRowIndex = "test.case.data_row.index" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.FixtureKind = "test.fixture.kind" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.RetryAttempt = "test.case.retry.attempt" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.TestAssembly = "test.assembly.name" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.TestClass = "test.suite.name" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.TestMethod = "test.case.name" -> string! -const Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes.TimeoutMilliseconds = "test.case.timeout" -> string! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.AsyncReaderWriterLock -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.AsyncReaderWriterLock.AcquireReaderAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.AsyncReaderWriterLock.AcquireWriterAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.AsyncReaderWriterLock.AsyncReaderWriterLock() -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleErrorRouter.ConsoleErrorRouter(System.IO.TextWriter! originalConsoleErr, System.Func! modeProvider) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleOutRouter.ConsoleOutRouter(System.IO.TextWriter! originalConsoleOut, System.Func! modeProvider) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ConsoleRouter.ConsoleRouter(System.IO.TextWriter! originalConsole, System.Func! modeProvider) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ResourceLockManager -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ResourceLockManager.ExecuteWithLocksAsync(System.Collections.Generic.IReadOnlyList! locks, System.Func! action, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ResourceLockManager.ResourceLockManager() -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyCoordinator -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyCoordinator.RecordNotRun(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! test) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyCoordinator.RecordOutcome(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! test, bool passed) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyCoordinator.ShouldSkip(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! test, out string? reason) -> bool -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyCoordinator.TestDependencyCoordinator(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph! graph) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration.Dependent.get -> string! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration.Prerequisite.get -> string! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration.ProceedOnFailure.get -> bool -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration.TestDependencyDeclaration(string! dependent, string! prerequisite, bool proceedOnFailure) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.BrokenTest -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.BrokenTest.BrokenTest(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! element, string! cycleMessage) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.BrokenTest.CycleMessage.get -> string! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.BrokenTest.Element.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.BrokenTests.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.Errors.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.ParallelChunkPrerequisites.get -> int[]![]! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.ParallelChunks.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement![]![]! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.ProceedOnFailure.get -> bool[]! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.SequentialTests.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement![]! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.TestPrerequisites.get -> int[]![]! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.Tests.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement![]! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.Warnings.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TraceTextWriter.TraceTextWriter(System.IO.TextWriter! console, System.Func! modeProvider) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.NotifyTestNotRun(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! unitTestElement, System.Collections.Generic.IDictionary! testContextProperties, System.Collections.Generic.IDictionary! lifecycleContextProperties, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger) -> Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.NotifyTestNotRunAsync(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! unitTestElement, System.Collections.Generic.IDictionary! testContextProperties, System.Collections.Generic.IDictionary! lifecycleContextProperties, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger) -> System.Threading.Tasks.Task! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.RunSingleTest(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! unitTestElement, System.Collections.Generic.IDictionary! testContextProperties, System.Collections.Generic.IDictionary! lifecycleContextProperties, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger) -> Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.RunSingleTestAsync(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! unitTestElement, System.Collections.Generic.IDictionary! testContextProperties, System.Collections.Generic.IDictionary! lifecycleContextProperties, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger! messageLogger) -> System.Threading.Tasks.Task! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind.GlobalTestCleanup = 7 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind.GlobalTestInitialize = 6 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.FixtureKind -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity.RecordException(System.Exception! exception) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity.SetTag(string! key, object? value) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity.SetFailed(string? description) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.ActivityNames -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.Attributes -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.DeclaredDependencies.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration![]? -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.GlobalTestCleanupTimeout.get -> int -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.GlobalTestInitializeTimeout.get -> int -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.OutputCaptureMode.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.AdapterSettingsException.AdapterSettingsException(string? message, System.Exception? innerException) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo.Mode.get -> Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo.Resource.get -> string! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo.ResourceLockInfo(string! resource, Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode mode) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.DescribeTarget() -> string! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.ProceedOnFailure.get -> bool -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.TargetClassFullName.get -> string? -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.TargetMethodName.get -> string? -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.TestDependencyInfo(string? targetClassFullName, string? targetMethodName, bool proceedOnFailure) -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestMethod.FullyQualifiedName.get -> string! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.CachedTestNodeUid.get -> System.Guid? -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.CachedTestNodeUid.set -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.Dependencies.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo![]? -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.Dependencies.set -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.ResourceLocks.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo![]? -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.ResourceLocks.set -> void -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode.Live = 2 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode.None = 0 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode.Result = 1 -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestOutputCaptureMode -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken.CancellationToken.get -> System.Threading.CancellationToken -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AttributeQueryHelper -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumerator.EnumerateAssembly(string! assemblyFileName, bool mustSerialize, bool useGeneratedDescriptors) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.AssemblyEnumerationResult! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeEnumerator.GetTestFromMethod(System.Reflection.MethodInfo! method, bool classDisablesParallelization, System.Collections.Generic.ICollection! warnings, bool isFromGeneratedDescriptor) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement! -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.IsFromGeneratedDescriptor.get -> bool -Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement.IsFromGeneratedDescriptor.set -> void -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IReflectionOperations.TryGetTestMethodDescriptors(System.Type! type, out System.Reflection.MethodInfo![]? methods, out bool areAllTestMethodsSupported) -> bool -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.ReflectionOperations.TryGetTestMethodDescriptors(System.Type! type, out System.Reflection.MethodInfo![]? methods, out bool areAllTestMethodsSupported) -> bool -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.DescriptorCompleteTypes.get -> System.Collections.Generic.IReadOnlyDictionary! -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.DescriptorCompleteTypes.init -> void -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.DescriptorTestMethods.get -> System.Collections.Generic.IReadOnlyDictionary! -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.DescriptorTestMethods.init -> void -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionOperations.TryGetTestMethodDescriptors(System.Type! type, out System.Reflection.MethodInfo![]? methods, out bool areAllTestMethodsSupported) -> bool -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.SourceGeneratedReflectionDataProvider.Assembly.get -> System.Reflection.Assembly? -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.StandardErrorBuilder.get -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SynchronizedStringBuilder! -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.StandardOutputBuilder.get -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SynchronizedStringBuilder! -Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.TraceBuilder.get -> Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SynchronizedStringBuilder! -override Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.NopTraceLogger.InitializeLifetimeService() -> object? -override Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.TestTempDirectory.get -> string? -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.ResourceLockManager.GetChunkLocks(System.Collections.Generic.IEnumerable! testSet) -> System.Collections.Generic.IReadOnlyList! -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration.ApplyAll(System.Collections.Generic.IEnumerable! declarations, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement![]! tests, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger? adapterMessageLogger) -> bool -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyDeclaration.ReportUnmatchedDeclarations(System.Collections.Generic.IEnumerable! declarations, System.Collections.Generic.IEnumerable! allTests, Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Interface.IAdapterMessageLogger? logger) -> void -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph.Build(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestElement![]! tests, Microsoft.VisualStudio.TestTools.UnitTesting.ExecutionScope scope, bool parallelizationEnabled) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestDependencyGraph? -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestMethodInfo.ParameterMetadataScanCount.get -> int -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestMethodInfo.ResetParameterMetadataCacheForTesting() -> void -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestMethodInfo.SetParameterMetadataScanCallbackForTesting(System.Action? callback) -> void -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.CombineRetryAttempts(Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! firstAttempt, Microsoft.VisualStudio.TestTools.UnitTesting.RetryResult! retryResult) -> Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.UnitTestRunner.CreateLiveOutputWriter(System.IO.Stream! standardOutput, System.Text.Encoding! encoding) -> System.IO.TextWriter! -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Helpers.RuntimeContext.IsMultiThreaded.get -> bool -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestDiscovererHelpers.GetSettingsExceptionMessage(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.AdapterSettingsException! ex) -> string! -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.IsEnabled.get -> bool -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.SetActivityFactory(System.Func>?, Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity?>? activityFactory) -> void -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.StartActivity(string! name, System.Collections.Generic.IEnumerable>? tags = null) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity? -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestInstrumentation.StartFixtureActivity(string! name, string! fixtureKind, string? owningType, string? assemblyName = null) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.IMSTestActivity? -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo.Decode(string! encoded) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo! -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo.Encode(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.ResourceLockInfo! info) -> string! -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.Decode(string! encoded) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo! -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo.Encode(Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.TestDependencyInfo! info) -> string! -static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AttributeQueryHelper.GetAttributes(System.Attribute![]! attributes) -> System.Collections.Generic.IEnumerable! -static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AttributeQueryHelper.GetFirstAttributeOrDefault(System.Attribute![]! attributes) -> TAttribute? -static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AttributeQueryHelper.GetSingleAttributeOrDefault(System.Attribute![]! attributes) -> TAttribute? -static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AttributeQueryHelper.IsAttributeDefined(System.Attribute![]! attributes) -> bool -static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers.AttributeQueryHelper.PerformActionOnAttribute(System.Attribute![]! attributes, System.Action! action, TState? state) -> void -static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.ConfigureLiveOutputWriter(System.IO.TextWriter! liveOutputWriter) -> void -static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.TestContextImplementation.SetLiveOutputWriterForTesting(System.IO.TextWriter! liveOutputWriter) -> System.IDisposable! -static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TypeCache.IsTestFilterProviderMarkerType(System.Type? attributeType) -> bool -virtual Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Discovery.TypeEnumerator.Enumerate(System.Collections.Generic.List! warnings, bool useGeneratedDescriptors) -> System.Collections.Generic.List? diff --git a/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/PublicAPI.Shipped.txt b/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/PublicAPI.Shipped.txt index 9b8202e558..b327b4b852 100644 --- a/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/PublicAPI.Shipped.txt +++ b/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/PublicAPI.Shipped.txt @@ -5,6 +5,8 @@ Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGenerat Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.ConstructorInvokerInfo.Invoker.get -> System.Func! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.ConstructorInvokerInfo.ParameterTypes.get -> System.Type![]! Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.ReflectionMetadataHook +static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.ReflectionMetadataHook.Register(System.Reflection.Assembly! assembly, System.Type![]! types, System.Collections.Generic.IReadOnlyDictionary! testMethods, System.Collections.Generic.IReadOnlyDictionary! typeAttributes, object![]! assemblyAttributes, System.Collections.Generic.IReadOnlyDictionary! methodAttributes, System.Collections.Generic.IReadOnlyDictionary!>! methodInvokers, System.Collections.Generic.IReadOnlyDictionary! constructorInvokers, System.Collections.Generic.IReadOnlyDictionary!>! propertySetters, System.Collections.Generic.IReadOnlyDictionary! descriptorTestMethods, System.Type![]! descriptorCompleteTypes) -> void +static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.ReflectionMetadataHook.Register(System.Reflection.Assembly! assembly, System.Type![]! types, System.Collections.Generic.IReadOnlyDictionary! testMethods, System.Collections.Generic.IReadOnlyDictionary! typeAttributes, object![]! assemblyAttributes, System.Collections.Generic.IReadOnlyDictionary! methodAttributes, System.Collections.Generic.IReadOnlyDictionary!>! methodInvokers, System.Collections.Generic.IReadOnlyDictionary! constructorInvokers, System.Collections.Generic.IReadOnlyDictionary!>! propertySetters) -> void static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.ReflectionMetadataHook.Register(System.Reflection.Assembly! assembly, System.Type![]! types, System.Collections.Generic.IReadOnlyDictionary! testMethods, System.Collections.Generic.IReadOnlyDictionary! typeAttributes, object![]! assemblyAttributes, System.Collections.Generic.IReadOnlyDictionary!>! methodInvokers, System.Collections.Generic.IReadOnlyDictionary! constructorInvokers, System.Collections.Generic.IReadOnlyDictionary!>! propertySetters) -> void static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.ReflectionMetadataHook.Register(System.Reflection.Assembly! assembly, System.Type![]! types, System.Collections.Generic.IReadOnlyDictionary! testMethods, System.Collections.Generic.IReadOnlyDictionary! typeAttributes, object![]! assemblyAttributes) -> void static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.ReflectionMetadataHook.Register(System.Reflection.Assembly! assembly, System.Type![]! types, System.Collections.Generic.IReadOnlyDictionary! testMethods) -> void diff --git a/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/PublicAPI.Unshipped.txt b/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/PublicAPI.Unshipped.txt index 01e173f723..7dc5c58110 100644 --- a/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/PublicAPI.Unshipped.txt +++ b/src/Adapter/MSTestAdapter.PlatformServices/PublicAPI/PublicAPI.Unshipped.txt @@ -1,3 +1 @@ #nullable enable -static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.ReflectionMetadataHook.Register(System.Reflection.Assembly! assembly, System.Type![]! types, System.Collections.Generic.IReadOnlyDictionary! testMethods, System.Collections.Generic.IReadOnlyDictionary! typeAttributes, object![]! assemblyAttributes, System.Collections.Generic.IReadOnlyDictionary! methodAttributes, System.Collections.Generic.IReadOnlyDictionary!>! methodInvokers, System.Collections.Generic.IReadOnlyDictionary! constructorInvokers, System.Collections.Generic.IReadOnlyDictionary!>! propertySetters) -> void -static Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.ReflectionMetadataHook.Register(System.Reflection.Assembly! assembly, System.Type![]! types, System.Collections.Generic.IReadOnlyDictionary! testMethods, System.Collections.Generic.IReadOnlyDictionary! typeAttributes, object![]! assemblyAttributes, System.Collections.Generic.IReadOnlyDictionary! methodAttributes, System.Collections.Generic.IReadOnlyDictionary!>! methodInvokers, System.Collections.Generic.IReadOnlyDictionary! constructorInvokers, System.Collections.Generic.IReadOnlyDictionary!>! propertySetters, System.Collections.Generic.IReadOnlyDictionary! descriptorTestMethods, System.Type![]! descriptorCompleteTypes) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Shipped.txt index 3bb1039feb..8da4615d8d 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Shipped.txt @@ -3,7 +3,8 @@ ~override Microsoft.Testing.Extensions.AzureDevOpsReport.LeaseReadResult.ToString() -> string abstract Microsoft.Testing.Extensions.SlowTestReporterBase.Description.get -> string! abstract Microsoft.Testing.Extensions.SlowTestReporterBase.DisplayName.get -> string! -abstract Microsoft.Testing.Extensions.SlowTestReporterBase.EmitSlowTestAsync(string! testName, System.TimeSpan elapsed, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +abstract Microsoft.Testing.Extensions.SlowTestReporterBase.EmitSlowTestAsync(string! testName, string! displayLabel, System.TimeSpan elapsed, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +abstract Microsoft.Testing.Extensions.SlowTestReporterBase.GetDisplayLabel(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> string! abstract Microsoft.Testing.Extensions.SlowTestReporterBase.GetTestName(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> string! abstract Microsoft.Testing.Extensions.SlowTestReporterBase.IsEnabled.get -> bool abstract Microsoft.Testing.Extensions.SlowTestReporterBase.ResolveThreshold(string! testName) -> System.TimeSpan @@ -11,6 +12,8 @@ abstract Microsoft.Testing.Extensions.SlowTestReporterBase.Uid.get -> string! const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsAttachmentTypes.CodeCoverage = "CodeCoverage" -> string! const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsAttachmentTypes.ConsoleLog = "ConsoleLog" -> string! const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsAttachmentTypes.GeneralAttachment = "GeneralAttachment" -> string! +const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.ResultMapPathEnvironmentVariableName = "TESTINGPLATFORM_AZUREDEVOPS_RESULTMAP" -> string! +const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.TestRunIdEnvironmentVariableName = "TESTINGPLATFORM_AZUREDEVOPS_TESTRUNID" -> string! const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.TfBuildEnabledValue = "true" -> string! const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.TfBuildEnvironmentVariableName = "TF_BUILD" -> string! const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLivePublishingConstants.AbortedTestOutcome = "Aborted" -> string! @@ -21,8 +24,10 @@ const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLivePublishingCo const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLivePublishingConstants.MaxAttachmentSizeBytes = 16777216 -> long const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLivePublishingConstants.MaxInlineAttachmentBytes = 262144 -> int const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLivePublishingConstants.MaxRunNameLength = 256 -> int +const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLivePublishingConstants.MaxSubResultsPerResult = 1000 -> int const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLivePublishingConstants.NotExecutedTestOutcome = "NotExecuted" -> string! const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLivePublishingConstants.PassedTestOutcome = "Passed" -> string! +const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLivePublishingConstants.RerunResultGroupType = "rerun" -> string! const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsReporter.KnownFlakyFailureRateThreshold = 0.25 -> double const Microsoft.Testing.Extensions.Reporting.AzureDevOpsCommandLineOptions.AzureDevOpsAnnotations = "report-azdo-annotations" -> string! const Microsoft.Testing.Extensions.Reporting.AzureDevOpsCommandLineOptions.AzureDevOpsDemoteKnownFlaky = "report-azdo-demote-known-flaky" -> string! @@ -53,6 +58,9 @@ const Microsoft.Testing.Extensions.Reporting.AzureDevOpsCommandLineOptions.SlowT const Microsoft.Testing.Extensions.Reporting.AzureDevOpsCommandLineOptions.SlowTestStaticThresholdSeconds = 60 -> int const Microsoft.Testing.Extensions.Reporting.AzureDevOpsCommandLineProvider.MaxStackFrameFilterPatterns = 16 -> int const Microsoft.Testing.Extensions.Reporting.AzureDevOpsCommandLineProvider.StackFrameFilterMatchTimeoutMs = 500 -> int +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsArtifactUploader @@ -80,6 +88,8 @@ Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.BuildId Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.BuildId.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.Deconstruct(out int RunId, out bool IsOwner, out int BuildId, out string! ResultsDirectory, out string! RunIdFilePath, out string! OwnerFilePath, out string! ParticipantFilePath) -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun? other) -> bool +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.IsInherited.get -> bool +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.IsInherited.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.IsOwner.get -> bool Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.IsOwner.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.OwnerFilePath.get -> string! @@ -141,6 +151,23 @@ Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLogGroupReporter.OnTes Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLogGroupReporter.OnTestSessionStartingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLogGroupReporter.Uid.get -> string! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLogGroupReporter.Version.get -> string! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.$() -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.AzureDevOpsPipelineReference(string? StageName, int? StageAttempt, string? PhaseName, int? PhaseAttempt, string? JobName, int? JobAttempt) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.Deconstruct(out string? StageName, out int? StageAttempt, out string? PhaseName, out int? PhaseAttempt, out string? JobName, out int? JobAttempt) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference? other) -> bool +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.JobAttempt.get -> int? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.JobAttempt.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.JobName.get -> string? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.JobName.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.PhaseAttempt.get -> int? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.PhaseAttempt.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.PhaseName.get -> string? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.PhaseName.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.StageAttempt.get -> int? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.StageAttempt.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.StageName.get -> string? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.StageName.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.$() -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.AccessToken.get -> string! @@ -154,12 +181,43 @@ Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.C Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.CollectionUri.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.Deconstruct(out string! CollectionUri, out string! Project, out string! AccessToken, out int BuildId, out string! RunName, out string! AutomatedTestStorage, out string! ResultsDirectory) -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration? other) -> bool +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.PipelineReference.get -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.PipelineReference.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.Project.get -> string! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.Project.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.ResultsDirectory.get -> string! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.ResultsDirectory.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.RunName.get -> string! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.RunName.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfigurationFactory +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.$() -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Attempts.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Attempts.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.AzureDevOpsPublishedResult(string! Storage, string! Name, string! Title, int Id, System.Collections.Generic.IReadOnlyList! Attempts) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.CompletedDate.get -> System.DateTimeOffset? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.CompletedDate.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Deconstruct(out string! Storage, out string! Name, out string! Title, out int Id, out System.Collections.Generic.IReadOnlyList! Attempts) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult? other) -> bool +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Id.get -> int +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Id.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.LastPublishedSubResultSequenceId.get -> int +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.LastPublishedSubResultSequenceId.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Name.get -> string! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Name.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.StartedDate.get -> System.DateTimeOffset? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.StartedDate.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Storage.get -> string! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Storage.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Title.get -> string! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Title.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.TotalDurationInMs.get -> long? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.TotalDurationInMs.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedTestResult +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedTestResult.AzureDevOpsPublishedTestResult(int id, System.Collections.Generic.IReadOnlyDictionary! subResultIdsBySequenceId) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedTestResult.Id.get -> int +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedTestResult.SubResultIdsBySequenceId.get -> System.Collections.Generic.IReadOnlyDictionary! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedTestResult.TryGetSubResultId(int sequenceId, out int subResultId) -> bool Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsReporter Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsReporter.AzureDevOpsReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDisplay, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsHistoryService! historyService) -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsReporter.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! @@ -169,6 +227,49 @@ Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsReporter.DisplayName.g Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsReporter.IsEnabledAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsReporter.Uid.get -> string! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsReporter.Version.get -> string! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.Forget(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! published) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.RecordAttempts(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! published, System.Collections.Generic.IReadOnlyList! attempts, int lastPublishedSubResultSequenceId, long? totalDurationInMs, System.DateTimeOffset? startedDate, System.DateTimeOffset? completedDate) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.RecordCreated(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result, int resultId, System.Collections.Generic.IReadOnlyList! attempts) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.RecordCreated(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result, int resultId) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.RecordPublishedSubResults(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result, int resultId, int lastPublishedSubResultSequenceId) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.SaveAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.TryGet(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result) -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.TryInvalidatePersistedMap() -> bool +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.$() -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Attempts.get -> System.Collections.Generic.IReadOnlyList? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Attempts.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.AzureDevOpsResultMapEntry(string? Storage, string? Name, string? Title, int Id, System.Collections.Generic.IReadOnlyList? Attempts) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.CompletedDate.get -> System.DateTimeOffset? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.CompletedDate.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Deconstruct(out string? Storage, out string? Name, out string? Title, out int Id, out System.Collections.Generic.IReadOnlyList? Attempts) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry? other) -> bool +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Id.get -> int +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Id.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.LastPublishedSubResultSequenceId.get -> int? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.LastPublishedSubResultSequenceId.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Name.get -> string? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Name.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.StartedDate.get -> System.DateTimeOffset? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.StartedDate.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Storage.get -> string? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Storage.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Title.get -> string? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Title.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.TotalDurationInMs.get -> long? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.TotalDurationInMs.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.$() -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.AzureDevOpsResultMapFile(int BuildId, int RunId, System.Collections.Generic.IReadOnlyList? Results) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.BuildId.get -> int +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.BuildId.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.Deconstruct(out int BuildId, out int RunId, out System.Collections.Generic.IReadOnlyList? Results) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile? other) -> bool +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.Results.get -> System.Collections.Generic.IReadOnlyList? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.Results.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.RunId.get -> int +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.RunId.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultResponse Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultResponse.AutomatedTestName.get -> string? Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultResponse.AutomatedTestName.set -> void @@ -213,9 +314,10 @@ Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSlowTestReporter Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSlowTestReporter.AzureDevOpsSlowTestReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsHistoryService! historyService) -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSlowTestThresholds Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.AzureDevOpsSummaryReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.AzureDevOpsSummaryReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Platform.Services.ITestCoverageResult! testCoverageResult, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, System.Func! shouldDeferToArtifactPostProcessing) -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.DataTypesConsumed.get -> System.Type![]! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.DataTypesProduced.get -> System.Type![]! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.Description.get -> string! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.DisplayName.get -> string! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.IsEnabledAsync() -> System.Threading.Tasks.Task! @@ -238,12 +340,18 @@ Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.Duratio Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult? other) -> bool Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.ErrorMessage.get -> string? Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.ErrorMessage.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.Id.get -> int? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.Id.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.Outcome.get -> string! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.Outcome.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.ResultGroupType.get -> string? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.ResultGroupType.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.StackTrace.get -> string? Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.StackTrace.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.StartedDate.get -> System.DateTimeOffset? Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.StartedDate.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.SubResults.get -> System.Collections.Generic.IReadOnlyList? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.SubResults.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.TestCaseTitle.get -> string! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.TestCaseTitle.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments @@ -253,6 +361,8 @@ Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAtta Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments.AzureDevOpsTestCaseResultWithAttachments(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! Result, System.Collections.Generic.IReadOnlyList! Attachments) -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments.Deconstruct(out Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! Result, out System.Collections.Generic.IReadOnlyList! Attachments) -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments? other) -> bool +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments.PreviousAttempts.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments.PreviousAttempts.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments.Result.get -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments.Result.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResult @@ -271,16 +381,19 @@ Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.Azur Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.AzureDevOpsTestResultsClient(System.Net.Http.HttpClient! httpClient, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock) -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.CreateTestRunAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.PublishTestResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task?>! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.PublishTestResultsWithSubResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task?>! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.UpdateTestResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.UpdateTestResultsWithSubResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task?>! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.UpdateTestRunStateAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, string! state, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.UploadTestResultAttachmentAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, int testCaseResultId, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment! attachment, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.UploadTestResultAttachmentAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, int testCaseResultId, int? testSubResultId, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment! attachment, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.UploadTestRunAttachmentAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment! attachment, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPage Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPage.AzureDevOpsTestResultsPage(System.Collections.Generic.IReadOnlyList! results, string? continuationToken) -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPage.ContinuationToken.get -> string? Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPage.Results.get -> System.Collections.Generic.IReadOnlyList! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher.AzureDevOpsTestResultsPublisher(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient! client, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions! options) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher.AzureDevOpsTestResultsPublisher(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient! client, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher.AzureDevOpsTestResultsPublisher(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient! client, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions! options) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher.AzureDevOpsTestResultsPublisher(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient! client, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher.DataTypesConsumed.get -> System.Type![]! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher.Description.get -> string! @@ -301,6 +414,8 @@ Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOp Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.BatchSize.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.CoordinationFileExpiration.get -> System.TimeSpan Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.CoordinationFileExpiration.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.CoordinationFinalizeMaxWaitTime.get -> System.TimeSpan +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.CoordinationFinalizeMaxWaitTime.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.CoordinationFinalizeTimeout.get -> System.TimeSpan Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.CoordinationFinalizeTimeout.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.CoordinationJoinerMaxWaitTime.get -> System.TimeSpan @@ -316,10 +431,42 @@ Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOp Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRun Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRun.AzureDevOpsTestRun(string! url) -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRun.Url.get -> string! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.AfterRunAsync(int exitCode, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.AzureDevOpsTestRunOrchestratorLifetime(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient! client, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions! options) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.AzureDevOpsTestRunOrchestratorLifetime(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient! client, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.BeforeRunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.Description.get -> string! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.DisplayName.get -> string! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.RunId.get -> int? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.Uid.get -> string! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.Version.get -> string! Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunsPage Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunsPage.AzureDevOpsTestRunsPage(System.Collections.Generic.IReadOnlyList! runs, string? continuationToken) -> void Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunsPage.ContinuationToken.get -> string? Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunsPage.Runs.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.$() -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.AzureDevOpsTestSubResult(int SequenceId, string! DisplayName, string! Outcome, long? DurationInMs, string? ErrorMessage, string? StackTrace, System.DateTimeOffset? StartedDate, System.DateTimeOffset? CompletedDate) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.CompletedDate.get -> System.DateTimeOffset? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.CompletedDate.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.Deconstruct(out int SequenceId, out string! DisplayName, out string! Outcome, out long? DurationInMs, out string? ErrorMessage, out string? StackTrace, out System.DateTimeOffset? StartedDate, out System.DateTimeOffset? CompletedDate) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.DisplayName.get -> string! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.DisplayName.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.DurationInMs.get -> long? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.DurationInMs.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult? other) -> bool +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.ErrorMessage.get -> string? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.ErrorMessage.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.Outcome.get -> string! +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.Outcome.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.SequenceId.get -> int +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.SequenceId.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.StackTrace.get -> string? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.StackTrace.init -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.StartedDate.get -> System.DateTimeOffset? +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.StartedDate.init -> void Microsoft.Testing.Extensions.AzureDevOpsReport.DurationHistoryStats Microsoft.Testing.Extensions.AzureDevOpsReport.DurationHistoryStats.DurationHistoryStats() -> void Microsoft.Testing.Extensions.AzureDevOpsReport.DurationHistoryStats.DurationHistoryStats(double p95Milliseconds, double p99Milliseconds, int sampleCount) -> void @@ -344,8 +491,11 @@ Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsHistoryService.TryGet Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.CreateTestRunAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.PublishTestResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task?>! +Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.PublishTestResultsWithSubResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task?>! +Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.UpdateTestResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.UpdateTestResultsWithSubResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task?>! Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.UpdateTestRunStateAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, string! state, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.UploadTestResultAttachmentAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, int testCaseResultId, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment! attachment, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.UploadTestResultAttachmentAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, int testCaseResultId, int? testSubResultId, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment! attachment, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.UploadTestRunAttachmentAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment! attachment, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.AzureDevOpsReport.LeaseFileStatus Microsoft.Testing.Extensions.AzureDevOpsReport.LeaseFileStatus.Active = 1 -> Microsoft.Testing.Extensions.AzureDevOpsReport.LeaseFileStatus @@ -392,16 +542,30 @@ Microsoft.Testing.Extensions.TerminalKind.Failed = 2 -> Microsoft.Testing.Extens Microsoft.Testing.Extensions.TerminalKind.NotTerminal = 0 -> Microsoft.Testing.Extensions.TerminalKind Microsoft.Testing.Extensions.TerminalKind.Passed = 1 -> Microsoft.Testing.Extensions.TerminalKind Microsoft.Testing.Extensions.TerminalKind.Skipped = 3 -> Microsoft.Testing.Extensions.TerminalKind +Microsoft.Testing.Extensions.TestFailureDetails +Microsoft.Testing.Extensions.TestFailureDetails.ExceptionType.get -> string? +Microsoft.Testing.Extensions.TestFailureDetails.FilePath.get -> string? +Microsoft.Testing.Extensions.TestFailureDetails.IsEmpty.get -> bool +Microsoft.Testing.Extensions.TestFailureDetails.LineNumber.get -> int +Microsoft.Testing.Extensions.TestFailureDetails.Message.get -> string? +Microsoft.Testing.Extensions.TestFailureDetails.StackTrace.get -> string? +Microsoft.Testing.Extensions.TestFailureDetails.TestFailureDetails(string? message, string? exceptionType, string? stackTrace, string? filePath, int lineNumber) -> void Microsoft.Testing.Extensions.TestNodeIdentity Microsoft.Testing.Extensions.TestRecord Microsoft.Testing.Extensions.TestRecord.DisplayName.get -> string! Microsoft.Testing.Extensions.TestRecord.Duration.get -> System.TimeSpan +Microsoft.Testing.Extensions.TestRecord.Failure.get -> Microsoft.Testing.Extensions.TestFailureDetails? Microsoft.Testing.Extensions.TestRecord.FullyQualifiedName.get -> string! +Microsoft.Testing.Extensions.TestRecord.IsFlaky.get -> bool Microsoft.Testing.Extensions.TestRecord.Kind.get -> Microsoft.Testing.Extensions.TerminalKind Microsoft.Testing.Extensions.TestRecord.TestRecord() -> void +Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration, bool isFlaky, Microsoft.Testing.Extensions.TestFailureDetails? failure = null) -> void +Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration, bool isFlaky) -> void +Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration, Microsoft.Testing.Extensions.TestFailureDetails? failure) -> void Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration) -> void Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.AtLeastOneTestFailed = 2 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.DependentProcessExited = 11 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.GenericFailure = 1 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.IncompatibleProtocolVersion = 12 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -410,10 +574,12 @@ Microsoft.Testing.Platform.Helpers.ExitCode.InvalidPlatformSetup = 4 -> Microsof Microsoft.Testing.Platform.Helpers.ExitCode.MinimumExpectedTestsPolicyViolation = 9 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.Success = 0 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestAdapterTestSessionFailure = 10 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedForMaxFailedTests = 13 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestHostProcessExitedNonGracefully = 7 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestSessionAborted = 3 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.ZeroTests = 8 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser Microsoft.Testing.Platform.RoslynString Microsoft.Testing.TestInfrastructure.RootFinder @@ -423,9 +589,21 @@ override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRu override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLeaseFile.Equals(object? obj) -> bool override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLeaseFile.GetHashCode() -> int override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLeaseFile.ToString() -> string! +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.Equals(object? obj) -> bool +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.GetHashCode() -> int +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.ToString() -> string! override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.Equals(object? obj) -> bool override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.GetHashCode() -> int override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.ToString() -> string! +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Equals(object? obj) -> bool +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.GetHashCode() -> int +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.ToString() -> string! +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Equals(object? obj) -> bool +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.GetHashCode() -> int +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.ToString() -> string! +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.Equals(object? obj) -> bool +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.GetHashCode() -> int +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.ToString() -> string! override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsRunIdFile.Equals(object? obj) -> bool override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsRunIdFile.GetHashCode() -> int override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsRunIdFile.ToString() -> string! @@ -441,40 +619,74 @@ override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResul override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.Equals(object? obj) -> bool override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.GetHashCode() -> int override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.ToString() -> string! +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.Equals(object? obj) -> bool +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.GetHashCode() -> int +override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.ToString() -> string! override Microsoft.Testing.Extensions.AzureDevOpsReport.LeaseReadResult.GetHashCode() -> int override Microsoft.Testing.Extensions.Reporting.AzureDevOpsCommandLineProvider.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! override Microsoft.Testing.Extensions.Reporting.AzureDevOpsCommandLineProvider.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! Polyfills.Polyfill Polyfills.Polyfill.extension(System.OperatingSystem) +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.FormatInheritedTestRunId(int buildId, int runId) -> string! +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.FormatResultMapPath(int buildId, string! path) -> string! static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.IsFeatureKnobEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, string! knobOptionName) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.IsRunningInAzureDevOps(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.TryGetInheritedResultMapPath(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, int buildId) -> string? +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.TryGetInheritedTestRunId(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, int buildId) -> int? static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsHistoryClient.CreateRunsRequestUri(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsHistoryQuery! query, int skip, int top, string? continuationToken = null) -> string! static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLeaseFile.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLeaseFile? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLeaseFile? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLeaseFile.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLeaseFile? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLeaseFile? right) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference? right) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration? right) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfigurationFactory.BuildTestRunUrl(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId) -> string! +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfigurationFactory.TryCreate(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, out Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration? publishConfiguration, out string? warning) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult? right) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsReporter.FormatErrorMessage(string! testDisplayName, string! targetFrameworkMoniker, string! message) -> string! static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsReporter.GetErrorText(string! testDisplayName, string? explanation, System.Exception? exception, string! severity, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, string! targetFrameworkMoniker, string? additionalMessageSuffix, System.Text.RegularExpressions.Regex![]? userStackFrameFilters, bool skipAssertionFrames) -> string? static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsReporter.GetErrorText(string! testDisplayName, string? explanation, System.Exception? exception, string! severity, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, string! targetFrameworkMoniker, string? additionalMessageSuffix) -> string? static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsReporter.GetErrorText(string! testDisplayName, string? explanation, System.Exception? exception, string! severity, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, string! targetFrameworkMoniker) -> string? +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.BuildNextAttempts(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! published, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result) -> System.Collections.Generic.IReadOnlyList! +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.BuildNextAttempts(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! published, System.Collections.Generic.IReadOnlyList! results) -> System.Collections.Generic.IReadOnlyList! +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.BuildNextTotalDuration(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! published, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result) -> long? +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.BuildNextTotalDuration(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! published, System.Collections.Generic.IReadOnlyList! results) -> long? +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.CreateAttempts(System.Collections.Generic.IReadOnlyList! results, int firstSequenceId) -> System.Collections.Generic.IReadOnlyList! +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.CreateFirstAttempt(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result) -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult! +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.GetEarliestStartedDate(System.Collections.Generic.IReadOnlyList! attempts) -> System.DateTimeOffset? +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.GetLatestCompletedDate(System.Collections.Generic.IReadOnlyList! attempts) -> System.DateTimeOffset? +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.OpenAsync(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, string! filePath, int buildId, int runId) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.SumResultDurations(System.Collections.Generic.IReadOnlyList! results) -> long? +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry? right) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry? right) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile? right) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile? right) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsRunIdCoordinator.CreateInheritedRun(int runId, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration) -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun! static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsRunIdFile.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsRunIdFile? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsRunIdFile? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsRunIdFile.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsRunIdFile? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsRunIdFile? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSlowTestThresholds.ComputeThreshold(System.TimeSpan staticThreshold, in Microsoft.Testing.Extensions.AzureDevOpsReport.DurationHistoryStats stats, bool hasStats, double multiplier, int minimumSampleCount) -> System.TimeSpan static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSlowTestThresholds.FormatDuration(double milliseconds) -> string! static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSlowTestThresholds.HasUsableHistory(in Microsoft.Testing.Extensions.AzureDevOpsReport.DurationHistoryStats stats, bool hasStats, int minimumSampleCount) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.BuildAggregateMarkdown(Microsoft.Testing.Extensions.CiRunSummaryAggregate! aggregate) -> string! static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.BuildMarkdown(System.Collections.Generic.IReadOnlyList! records, string! assemblyName, string! targetFrameworkMoniker) -> string! +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.ResolveExplicitSummaryPath(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> string? static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment.FromFile(string! filePath, string! attachmentType, string? comment = null) -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment! static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment.FromString(string! content, string! fileName, string! attachmentType, string? comment = null) -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment! +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.CreateHttpClientHandler() -> System.Net.Http.HttpClientHandler! +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.ShouldOptInToAutomaticDecompression(System.Net.Http.HttpClientHandler! handler) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher.CreateTestCaseResult(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode, string! automatedTestStorage) -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments? static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.Default.get -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions! static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions? right) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult? right) -> bool +static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult? right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.DurationHistoryStats.TryCreate(System.Collections.Generic.IReadOnlyList! durationsMilliseconds, out Microsoft.Testing.Extensions.AzureDevOpsReport.DurationHistoryStats stats) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.LeaseReadResult.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.LeaseReadResult left, Microsoft.Testing.Extensions.AzureDevOpsReport.LeaseReadResult right) -> bool static Microsoft.Testing.Extensions.AzureDevOpsReport.LeaseReadResult.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.LeaseReadResult left, Microsoft.Testing.Extensions.AzureDevOpsReport.LeaseReadResult right) -> bool @@ -485,11 +697,14 @@ static Microsoft.Testing.Extensions.ReporterLoggingExtensions.LogUnexpectedExcep static Microsoft.Testing.Extensions.ReportFileNameSanitizer.ReplaceInvalidFileNameChars(string! fileName) -> string! static Microsoft.Testing.Extensions.Reporting.AzDoEscaper.Escape(string! value) -> string! static Microsoft.Testing.Extensions.StackTraceSourceLocationResolver.SkipAssertionFramesForCurrentRuntime.get -> bool +static Microsoft.Testing.Extensions.StackTraceSourceLocationResolver.TryMakeWorkspaceRelative(string? filePath, string? repoRoot, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem) -> string? static Microsoft.Testing.Extensions.StackTraceSourceLocationResolver.TryResolve(string? stackTrace, string? repoRoot, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, bool skipAssertionFrames, System.Func? shouldSkipFrame = null) -> (string! RelativeNormalizedPath, int LineNumber)? static Microsoft.Testing.Extensions.SummaryReporterHelpers.FormatDuration(System.TimeSpan duration, string! minuteFormat, string! hourFormat) -> string! static Microsoft.Testing.Extensions.SummaryReporterHelpers.GetTerminalKind(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? state) -> Microsoft.Testing.Extensions.TerminalKind static Microsoft.Testing.Extensions.TargetFrameworkMonikerHelper.GetTargetFrameworkMonikerIncludingPlatform() -> string! +static Microsoft.Testing.Extensions.TestNodeIdentity.GetDisplayLabel(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> string! static Microsoft.Testing.Extensions.TestNodeIdentity.GetTestName(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> string! +static Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper.IsMultiThreaded.get -> bool static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.BuildTargetFrameworkMoniker(string? shortTargetFramework, string? targetPlatformName) -> string? static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetShortTargetFramework(string? frameworkDescription) -> string? static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetShortTargetFrameworkIncludingPlatform(System.Reflection.Assembly? entryAssembly) -> string? diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Unshipped.txt index 33b108eddd..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Unshipped.txt @@ -1,228 +1 @@ #nullable enable -Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper -Microsoft.Testing.Extensions.TestRecord.IsFlaky.get -> bool -Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration, bool isFlaky) -> void -Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration, bool isFlaky, Microsoft.Testing.Extensions.TestFailureDetails? failure = null) -> void -static Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper.IsMultiThreaded.get -> bool -abstract Microsoft.Testing.Extensions.SlowTestReporterBase.EmitSlowTestAsync(string! testName, string! displayLabel, System.TimeSpan elapsed, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -abstract Microsoft.Testing.Extensions.SlowTestReporterBase.GetDisplayLabel(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> string! -static Microsoft.Testing.Extensions.TestNodeIdentity.GetDisplayLabel(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> string! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.AzureDevOpsSummaryReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Platform.Services.ITestCoverageResult! testCoverageResult, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, System.Func! shouldDeferToArtifactPostProcessing) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.DataTypesProduced.get -> System.Type![]! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.BuildAggregateMarkdown(Microsoft.Testing.Extensions.CiRunSummaryAggregate! aggregate) -> string! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.ResolveExplicitSummaryPath(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> string? -*REMOVED*Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsSummaryReporter.AzureDevOpsSummaryReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void -*REMOVED*abstract Microsoft.Testing.Extensions.SlowTestReporterBase.EmitSlowTestAsync(string! testName, System.TimeSpan elapsed, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode -Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.CreateHttpClientHandler() -> System.Net.Http.HttpClientHandler! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.ShouldOptInToAutomaticDecompression(System.Net.Http.HttpClientHandler! handler) -> bool -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher.AzureDevOpsTestResultsPublisher(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient! client, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions! options) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher.AzureDevOpsTestResultsPublisher(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient! client, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void -*REMOVED*Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher.AzureDevOpsTestResultsPublisher(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient! client, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions! options) -> void -*REMOVED*Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisher.AzureDevOpsTestResultsPublisher(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient! client, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.$() -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.AzureDevOpsPipelineReference(string? StageName, int? StageAttempt, string? PhaseName, int? PhaseAttempt, string? JobName, int? JobAttempt) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.Deconstruct(out string? StageName, out int? StageAttempt, out string? PhaseName, out int? PhaseAttempt, out string? JobName, out int? JobAttempt) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference? other) -> bool -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.JobAttempt.get -> int? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.JobAttempt.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.JobName.get -> string? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.JobName.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.PhaseAttempt.get -> int? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.PhaseAttempt.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.PhaseName.get -> string? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.PhaseName.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.StageAttempt.get -> int? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.StageAttempt.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.StageName.get -> string? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.StageName.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.PipelineReference.get -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration.PipelineReference.init -> void -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.Equals(object? obj) -> bool -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.GetHashCode() -> int -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.ToString() -> string! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference? right) -> bool -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPipelineReference? right) -> bool -const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.TestRunIdEnvironmentVariableName = "TESTINGPLATFORM_AZUREDEVOPS_TESTRUNID" -> string! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.IsInherited.get -> bool -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun.IsInherited.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfigurationFactory -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.AfterRunAsync(int exitCode, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.BeforeRunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.Description.get -> string! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.DisplayName.get -> string! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.RunId.get -> int? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.Uid.get -> string! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.Version.get -> string! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfigurationFactory.BuildTestRunUrl(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId) -> string! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfigurationFactory.TryCreate(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, out Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration? publishConfiguration, out string? warning) -> bool -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsRunIdCoordinator.CreateInheritedRun(int runId, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration) -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsCoordinatedRun! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.AzureDevOpsTestRunOrchestratorLifetime(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient! client, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions! options) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestRunOrchestratorLifetime.AzureDevOpsTestRunOrchestratorLifetime(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient! client, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.CoordinationFinalizeMaxWaitTime.get -> System.TimeSpan -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsPublisherOptions.CoordinationFinalizeMaxWaitTime.init -> void -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.FormatInheritedTestRunId(int buildId, int runId) -> string! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.TryGetInheritedTestRunId(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, int buildId) -> int? -static Microsoft.Testing.Extensions.StackTraceSourceLocationResolver.TryMakeWorkspaceRelative(string? filePath, string? repoRoot, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem) -> string? -const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.ResultMapPathEnvironmentVariableName = "TESTINGPLATFORM_AZUREDEVOPS_RESULTMAP" -> string! -const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLivePublishingConstants.MaxSubResultsPerResult = 1000 -> int -const Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsLivePublishingConstants.RerunResultGroupType = "rerun" -> string! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.$() -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Attempts.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Attempts.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.CompletedDate.get -> System.DateTimeOffset? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.CompletedDate.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.AzureDevOpsPublishedResult(string! Storage, string! Name, string! Title, int Id, System.Collections.Generic.IReadOnlyList! Attempts) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Deconstruct(out string! Storage, out string! Name, out string! Title, out int Id, out System.Collections.Generic.IReadOnlyList! Attempts) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult? other) -> bool -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Id.get -> int -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Id.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.LastPublishedSubResultSequenceId.get -> int -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.LastPublishedSubResultSequenceId.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Name.get -> string! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Name.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Storage.get -> string! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Storage.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.StartedDate.get -> System.DateTimeOffset? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.StartedDate.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Title.get -> string! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Title.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.TotalDurationInMs.get -> long? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.TotalDurationInMs.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedTestResult -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedTestResult.AzureDevOpsPublishedTestResult(int id, System.Collections.Generic.IReadOnlyDictionary! subResultIdsBySequenceId) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedTestResult.Id.get -> int -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedTestResult.SubResultIdsBySequenceId.get -> System.Collections.Generic.IReadOnlyDictionary! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedTestResult.TryGetSubResultId(int sequenceId, out int subResultId) -> bool -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.CreateFirstAttempt(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result) -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.CreateAttempts(System.Collections.Generic.IReadOnlyList! results, int firstSequenceId) -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.RecordCreated(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result, int resultId) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.RecordCreated(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result, int resultId, System.Collections.Generic.IReadOnlyList! attempts) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.Forget(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! published) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.SaveAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.TryGet(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result) -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.$() -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Attempts.get -> System.Collections.Generic.IReadOnlyList? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Attempts.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.CompletedDate.get -> System.DateTimeOffset? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.CompletedDate.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.AzureDevOpsResultMapEntry(string? Storage, string? Name, string? Title, int Id, System.Collections.Generic.IReadOnlyList? Attempts) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Deconstruct(out string? Storage, out string? Name, out string? Title, out int Id, out System.Collections.Generic.IReadOnlyList? Attempts) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry? other) -> bool -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Id.get -> int -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Id.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.LastPublishedSubResultSequenceId.get -> int? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.LastPublishedSubResultSequenceId.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Name.get -> string? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Name.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Storage.get -> string? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Storage.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.StartedDate.get -> System.DateTimeOffset? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.StartedDate.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Title.get -> string? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Title.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.TotalDurationInMs.get -> long? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.TotalDurationInMs.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.$() -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.AzureDevOpsResultMapFile(int BuildId, int RunId, System.Collections.Generic.IReadOnlyList? Results) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.BuildId.get -> int -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.BuildId.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.Deconstruct(out int BuildId, out int RunId, out System.Collections.Generic.IReadOnlyList? Results) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile? other) -> bool -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.Results.get -> System.Collections.Generic.IReadOnlyList? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.Results.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.RunId.get -> int -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.RunId.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.Id.get -> int? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.Id.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.ResultGroupType.get -> string? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.ResultGroupType.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.SubResults.get -> System.Collections.Generic.IReadOnlyList? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult.SubResults.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments.PreviousAttempts.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResultWithAttachments.PreviousAttempts.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.PublishTestResultsWithSubResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task?>! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.UpdateTestResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.UpdateTestResultsWithSubResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task?>! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.UploadTestResultAttachmentAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, int testCaseResultId, int? testSubResultId, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment! attachment, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.UploadTestResultAttachmentAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, int testCaseResultId, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment! attachment, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.$() -> Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.AzureDevOpsTestSubResult(int SequenceId, string! DisplayName, string! Outcome, long? DurationInMs, string? ErrorMessage, string? StackTrace, System.DateTimeOffset? StartedDate, System.DateTimeOffset? CompletedDate) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.CompletedDate.get -> System.DateTimeOffset? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.CompletedDate.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.Deconstruct(out int SequenceId, out string! DisplayName, out string! Outcome, out long? DurationInMs, out string? ErrorMessage, out string? StackTrace, out System.DateTimeOffset? StartedDate, out System.DateTimeOffset? CompletedDate) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.DisplayName.get -> string! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.DisplayName.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.DurationInMs.get -> long? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.DurationInMs.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.Equals(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult? other) -> bool -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.ErrorMessage.get -> string? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.ErrorMessage.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.Outcome.get -> string! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.Outcome.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.SequenceId.get -> int -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.SequenceId.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.StackTrace.get -> string? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.StackTrace.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.StartedDate.get -> System.DateTimeOffset? -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.StartedDate.init -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.PublishTestResultsWithSubResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task?>! -Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.UpdateTestResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.UpdateTestResultsWithSubResultsAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, System.Collections.Generic.IReadOnlyList! results, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task?>! -Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.UploadTestResultAttachmentAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, int testCaseResultId, int? testSubResultId, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment! attachment, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Extensions.AzureDevOpsReport.IAzureDevOpsTestResultsClient.UploadTestResultAttachmentAsync(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishConfiguration! configuration, int runId, int testCaseResultId, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultAttachment! attachment, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.Equals(object? obj) -> bool -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.GetHashCode() -> int -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.ToString() -> string! -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.Equals(object? obj) -> bool -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.GetHashCode() -> int -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.ToString() -> string! -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.Equals(object? obj) -> bool -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.GetHashCode() -> int -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.ToString() -> string! -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.Equals(object? obj) -> bool -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.GetHashCode() -> int -override Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.ToString() -> string! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.FormatResultMapPath(int buildId, string! path) -> string! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsConstants.TryGetInheritedResultMapPath(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, int buildId) -> string? -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult? right) -> bool -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult? right) -> bool -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.OpenAsync(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, string! filePath, int buildId, int runId) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.TryInvalidatePersistedMap() -> bool -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry? right) -> bool -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapEntry? right) -> bool -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile? right) -> bool -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultMapFile? right) -> bool -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.operator !=(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult? right) -> bool -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult.operator ==(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult? left, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestSubResult? right) -> bool -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.RecordAttempts(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! published, System.Collections.Generic.IReadOnlyList! attempts, int lastPublishedSubResultSequenceId, long? totalDurationInMs, System.DateTimeOffset? startedDate, System.DateTimeOffset? completedDate) -> void -Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.RecordPublishedSubResults(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result, int resultId, int lastPublishedSubResultSequenceId) -> void -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.BuildNextAttempts(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! published, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result) -> System.Collections.Generic.IReadOnlyList! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.BuildNextAttempts(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! published, System.Collections.Generic.IReadOnlyList! results) -> System.Collections.Generic.IReadOnlyList! -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.BuildNextTotalDuration(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! published, Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestCaseResult! result) -> long? -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.BuildNextTotalDuration(Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsPublishedResult! published, System.Collections.Generic.IReadOnlyList! results) -> long? -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.GetEarliestStartedDate(System.Collections.Generic.IReadOnlyList! attempts) -> System.DateTimeOffset? -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.GetLatestCompletedDate(System.Collections.Generic.IReadOnlyList! attempts) -> System.DateTimeOffset? -static Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsResultIdStore.SumResultDurations(System.Collections.Generic.IReadOnlyList! results) -> long? -Microsoft.Testing.Extensions.TestFailureDetails -Microsoft.Testing.Extensions.TestFailureDetails.ExceptionType.get -> string? -Microsoft.Testing.Extensions.TestFailureDetails.FilePath.get -> string? -Microsoft.Testing.Extensions.TestFailureDetails.IsEmpty.get -> bool -Microsoft.Testing.Extensions.TestFailureDetails.LineNumber.get -> int -Microsoft.Testing.Extensions.TestFailureDetails.Message.get -> string? -Microsoft.Testing.Extensions.TestFailureDetails.StackTrace.get -> string? -Microsoft.Testing.Extensions.TestFailureDetails.TestFailureDetails(string? message, string? exceptionType, string? stackTrace, string? filePath, int lineNumber) -> void -Microsoft.Testing.Extensions.TestRecord.Failure.get -> Microsoft.Testing.Extensions.TestFailureDetails? -Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration, Microsoft.Testing.Extensions.TestFailureDetails? failure) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/InternalAPI/InternalAPI.Shipped.txt index d9db8b08d2..d2867afe28 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/InternalAPI/InternalAPI.Shipped.txt @@ -3,7 +3,11 @@ Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode +Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode.ApiKey = 1 -> Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode +Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode.None = 0 -> Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode +Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode.TokenCredential = 2 -> Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AzureOpenAIChatClientProvider() -> void +Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AzureOpenAIChatClientProvider(Azure.Core.TokenCredential! credential) -> void Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.CreateChatClientAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.HasToolsCapability.get -> bool Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.IsAvailable.get -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/InternalAPI/InternalAPI.Unshipped.txt index 0034e0f5df..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/InternalAPI/InternalAPI.Unshipped.txt @@ -1,5 +1 @@ #nullable enable -Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode.ApiKey = 1 -> Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode -Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode.None = 0 -> Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode -Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode.TokenCredential = 2 -> Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AuthenticationMode -Microsoft.Testing.Extensions.AzureFoundry.AzureOpenAIChatClientProvider.AzureOpenAIChatClientProvider(Azure.Core.TokenCredential! credential) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/PublicAPI/PublicAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/PublicAPI/PublicAPI.Shipped.txt index 508e262165..e05d7fbeaf 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/PublicAPI/PublicAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/PublicAPI/PublicAPI.Shipped.txt @@ -1,5 +1,6 @@ #nullable enable [TPEXP]Microsoft.Testing.Extensions.AzureFoundry.TestApplicationBuilderExtensions +[TPEXP]static Microsoft.Testing.Extensions.AzureFoundry.TestApplicationBuilderExtensions.AddAzureOpenAIChatClientProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! testApplicationBuilder, Azure.Core.TokenCredential! credential) -> void [TPEXP]static Microsoft.Testing.Extensions.AzureFoundry.TestApplicationBuilderExtensions.AddAzureOpenAIChatClientProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! testApplicationBuilder) -> void Microsoft.Testing.Extensions.AzureFoundry.TestingPlatformBuilderHook static Microsoft.Testing.Extensions.AzureFoundry.TestingPlatformBuilderHook.AddExtensions(Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! testApplicationBuilder, string![]! _) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/PublicAPI/PublicAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/PublicAPI/PublicAPI.Unshipped.txt index ec232ad02b..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/PublicAPI/PublicAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/PublicAPI/PublicAPI.Unshipped.txt @@ -1,2 +1 @@ #nullable enable -[TPEXP]static Microsoft.Testing.Extensions.AzureFoundry.TestApplicationBuilderExtensions.AddAzureOpenAIChatClientProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! testApplicationBuilder, Azure.Core.TokenCredential! credential) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.CrashDump/InternalAPI/InternalAPI.Shipped.txt index 164198177b..f5fe0acc0b 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/InternalAPI/InternalAPI.Shipped.txt @@ -43,7 +43,7 @@ Microsoft.Testing.Extensions.Diagnostics.CrashDumpProcessLifetimeHandler.Uid.get Microsoft.Testing.Extensions.Diagnostics.CrashDumpProcessLifetimeHandler.Version.get -> string! Microsoft.Testing.Extensions.Diagnostics.CrashDumpSequenceLogger Microsoft.Testing.Extensions.Diagnostics.CrashDumpSequenceLogger.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.Diagnostics.CrashDumpSequenceLogger.CrashDumpSequenceLogger(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void +Microsoft.Testing.Extensions.Diagnostics.CrashDumpSequenceLogger.CrashDumpSequenceLogger(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice) -> void Microsoft.Testing.Extensions.Diagnostics.CrashDumpSequenceLogger.DataTypesConsumed.get -> System.Type![]! Microsoft.Testing.Extensions.Diagnostics.CrashDumpSequenceLogger.Description.get -> string! Microsoft.Testing.Extensions.Diagnostics.CrashDumpSequenceLogger.DisplayName.get -> string! @@ -77,10 +77,13 @@ static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetShortTar static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetTargetPlatformName(System.Reflection.Assembly? entryAssembly) -> string? static Microsoft.Testing.Platform.Resources.PlatformResources.GetResourceString(string! resourceKey) -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.InternalLoopAsyncDidNotExitSuccessfullyErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.ResourceManager.get -> System.Resources.ResourceManager! static Microsoft.Testing.Platform.RoslynString.IsNullOrEmpty(string? value) -> bool static Microsoft.Testing.Platform.RoslynString.IsNullOrWhiteSpace(string? value) -> bool static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.GetStandardReplacements(string! processName, string! processId, System.DateTimeOffset timestamp) -> System.Collections.Generic.Dictionary! +static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveTemplate(string! template, System.Collections.Generic.IDictionary? replacements = null) -> string! static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsBrowser() -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.CrashDump/InternalAPI/InternalAPI.Unshipped.txt index cb48427f0f..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/InternalAPI/InternalAPI.Unshipped.txt @@ -1,6 +1 @@ #nullable enable -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! -static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! -*REMOVED*Microsoft.Testing.Extensions.Diagnostics.CrashDumpSequenceLogger.CrashDumpSequenceLogger(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void -Microsoft.Testing.Extensions.Diagnostics.CrashDumpSequenceLogger.CrashDumpSequenceLogger(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/InternalAPI/InternalAPI.Shipped.txt index 4dd0ffdb69..ef2d60bfd0 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/InternalAPI/InternalAPI.Shipped.txt @@ -15,6 +15,7 @@ abstract Microsoft.Testing.Extensions.ReportGeneratorBase.GetGenerationLogMessage(int testResultCount) -> string! abstract Microsoft.Testing.Extensions.ReportGeneratorBase.TryCapture(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage! update) -> TCapturedTestResult? abstract Microsoft.Testing.Extensions.ReportGeneratorBase.Uid.get -> string! +const Microsoft.Testing.Extensions.CtrfReport.CtrfReportGenerator.CtrfArtifactKind = "microsoft.testing.ctrf" -> string! const Microsoft.Testing.Extensions.CtrfReport.CtrfReportGeneratorCommandLine.CtrfReportFileNameOptionName = "report-ctrf-filename" -> string! const Microsoft.Testing.Extensions.CtrfReport.CtrfReportGeneratorCommandLine.CtrfReportOptionName = "report-ctrf" -> string! const Microsoft.Testing.Extensions.TestResultCaptureHelper.MaxIdentityFieldLength = 4096 -> int @@ -22,8 +23,12 @@ const Microsoft.Testing.Extensions.TestResultCaptureHelper.MaxMessageLength = 16 const Microsoft.Testing.Extensions.TestResultCaptureHelper.MaxStackTraceLength = 32768 -> int const Microsoft.Testing.Extensions.TestResultCaptureHelper.MaxStandardStreamLength = 32768 -> int const Microsoft.Testing.Extensions.TestResultCaptureHelper.MaxTraitFieldLength = 1024 -> int +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void +Microsoft.Testing.Extensions.ArtifactPostProcessingHelper Microsoft.Testing.Extensions.CapturedExceptionDetails Microsoft.Testing.Extensions.CapturedExceptionDetails.CapturedExceptionDetails() -> void Microsoft.Testing.Extensions.CapturedExceptionDetails.CapturedExceptionDetails(string? ErrorMessage, string? StackTrace, string? ExceptionType) -> void @@ -98,18 +103,49 @@ Microsoft.Testing.Extensions.CapturedTestResultProperties.Timing.get -> Microsof Microsoft.Testing.Extensions.CapturedTestResultProperties.Timing.init -> void Microsoft.Testing.Extensions.CapturedTestResultProperties.Traits.get -> System.Collections.Generic.IReadOnlyList>? Microsoft.Testing.Extensions.CapturedTestResultProperties.Traits.init -> void +Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment +Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.CapturedAttachment() -> void +Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.ContentType.get -> string! +Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.ContentType.init -> void +Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.Description.get -> string? +Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.Description.init -> void +Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.Name.get -> string! +Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.Name.init -> void +Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.Path.get -> string! +Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.Path.init -> void Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult +Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.Attachments.get -> System.Collections.Generic.IReadOnlyList? +Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.Attachments.init -> void Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.CapturedTestResult() -> void Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.FilePath.get -> string? Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.FilePath.init -> void +Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.IsSupersededRetryAttempt.get -> bool +Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.IsSupersededRetryAttempt.init -> void Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.Line.get -> int? Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.Line.init -> void Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.Namespace.get -> string? Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.Namespace.init -> void Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.RawStatus.get -> string? Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.RawStatus.init -> void +Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.RetryAttemptNumber.get -> int? +Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.RetryAttemptNumber.init -> void Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.Status.get -> string! Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.Status.init -> void +Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor +Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.CtrfArtifactPostProcessor() -> void +Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.Description.get -> string! +Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.DisplayName.get -> string! +Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.ProcessAsync(System.Collections.Generic.IReadOnlyList! inputs, string! outputDirectory, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.SupportedFileExtensionsFallback.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.SupportedKinds.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.SupportedModes.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.SupportsTruncatedRuns.get -> bool +Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.Uid.get -> string! +Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.Version.get -> string! +Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode +Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode.CollapseRetryAttempts = 1 -> Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode +Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode.Concatenate = 0 -> Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode Microsoft.Testing.Extensions.CtrfReport.CtrfReportEngine Microsoft.Testing.Extensions.CtrfReport.CtrfReportEngine.CtrfReportEngine(Microsoft.Testing.Extensions.ReportEngineContext context) -> void Microsoft.Testing.Extensions.CtrfReport.CtrfReportEngine.GenerateReportAsync(Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult![]! results) -> System.Threading.Tasks.Task<(string! FileName, string? Warning)>! @@ -117,7 +153,9 @@ Microsoft.Testing.Extensions.CtrfReport.CtrfReportGenerator Microsoft.Testing.Extensions.CtrfReport.CtrfReportGenerator.CtrfReportGenerator(System.IServiceProvider! serviceProvider) -> void Microsoft.Testing.Extensions.CtrfReport.CtrfReportGeneratorCommandLine Microsoft.Testing.Extensions.CtrfReport.CtrfReportGeneratorCommandLine.CtrfReportGeneratorCommandLine() -> void +Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger Microsoft.Testing.Extensions.CtrfReport.TestResultCapture +Microsoft.Testing.Extensions.MergeOutputFileHelper Microsoft.Testing.Extensions.ReportEngineBase Microsoft.Testing.Extensions.ReportEngineBase.BuildDefaultFileName(string! extension) -> string! Microsoft.Testing.Extensions.ReportEngineBase.ReportEngineBase(Microsoft.Testing.Extensions.ReportEngineContext context) -> void @@ -179,6 +217,7 @@ Microsoft.Testing.Extensions.TestResultCaptureHelper Microsoft.Testing.Platform.Helpers.ApplicationStateGuard Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.AtLeastOneTestFailed = 2 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.DependentProcessExited = 11 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.GenericFailure = 1 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.IncompatibleProtocolVersion = 12 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -187,6 +226,7 @@ Microsoft.Testing.Platform.Helpers.ExitCode.InvalidPlatformSetup = 4 -> Microsof Microsoft.Testing.Platform.Helpers.ExitCode.MinimumExpectedTestsPolicyViolation = 9 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.Success = 0 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestAdapterTestSessionFailure = 10 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedForMaxFailedTests = 13 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestHostProcessExitedNonGracefully = 7 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestSessionAborted = 3 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -216,13 +256,25 @@ readonly Microsoft.Testing.Extensions.ReportEngineBase._fileSystem -> Microsoft. readonly Microsoft.Testing.Extensions.ReportEngineBase._testApplicationModuleInfo -> Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! readonly Microsoft.Testing.Extensions.ReportEngineBase._testFramework -> Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! readonly Microsoft.Testing.Extensions.ReportEngineBase._testStartTime -> System.DateTimeOffset +static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.IsReparsePoint(string! path) -> bool +static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.OrderInputs(System.Collections.Generic.IEnumerable! inputs, bool includeModuleMetadata) -> System.Linq.IOrderedEnumerable! static Microsoft.Testing.Extensions.CapturedExceptionDetails.operator !=(Microsoft.Testing.Extensions.CapturedExceptionDetails left, Microsoft.Testing.Extensions.CapturedExceptionDetails right) -> bool static Microsoft.Testing.Extensions.CapturedExceptionDetails.operator ==(Microsoft.Testing.Extensions.CapturedExceptionDetails left, Microsoft.Testing.Extensions.CapturedExceptionDetails right) -> bool static Microsoft.Testing.Extensions.CapturedTestResultCoreData.operator !=(Microsoft.Testing.Extensions.CapturedTestResultCoreData left, Microsoft.Testing.Extensions.CapturedTestResultCoreData right) -> bool static Microsoft.Testing.Extensions.CapturedTestResultCoreData.operator ==(Microsoft.Testing.Extensions.CapturedTestResultCoreData left, Microsoft.Testing.Extensions.CapturedTestResultCoreData right) -> bool static Microsoft.Testing.Extensions.CapturedTestResultProperties.operator !=(Microsoft.Testing.Extensions.CapturedTestResultProperties left, Microsoft.Testing.Extensions.CapturedTestResultProperties right) -> bool static Microsoft.Testing.Extensions.CapturedTestResultProperties.operator ==(Microsoft.Testing.Extensions.CapturedTestResultProperties left, Microsoft.Testing.Extensions.CapturedTestResultProperties right) -> bool +static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.CreateDeterministicId(System.Collections.Generic.IReadOnlyList! values) -> System.Guid +static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.Merge(System.Collections.Generic.IReadOnlyList! inputReports, Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode mode) -> string! +static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.Merge(System.Collections.Generic.IReadOnlyList! inputReports) -> string! +static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.MergeAllToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode mode, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.MergeAllToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.MergeToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode mode, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.MergeToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.CtrfReport.TestResultCapture.TryCapture(Microsoft.Testing.Platform.Extensions.Messages.TestNode! node) -> Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult? +static Microsoft.Testing.Extensions.MergeOutputFileHelper.BuildCaseFoldedProbePath(string! directory, string! probeFileName) -> string! +static Microsoft.Testing.Extensions.MergeOutputFileHelper.EnsureOutputDoesNotAliasInput(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath) -> void +static Microsoft.Testing.Extensions.MergeOutputFileHelper.WriteViaTemporarySiblingAsync(string! outputPath, System.Func! writeToTempAsync) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.ReportEngineBase.BuildDefaultFileName(string! testApplicationModule, string! extension) -> string! static Microsoft.Testing.Extensions.ReportEngineBase.GetProvidedFileName(string![]? providedFileName) -> string! static Microsoft.Testing.Extensions.ReportEngineBase.ReplaceInvalidFileNameChars(string! fileName) -> string! @@ -250,10 +302,13 @@ static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetShortTar static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetTargetPlatformName(System.Reflection.Assembly? entryAssembly) -> string? static Microsoft.Testing.Platform.Resources.PlatformResources.GetResourceString(string! resourceKey) -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.InternalLoopAsyncDidNotExitSuccessfullyErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.ResourceManager.get -> System.Resources.ResourceManager! static Microsoft.Testing.Platform.RoslynString.IsNullOrEmpty(string? value) -> bool static Microsoft.Testing.Platform.RoslynString.IsNullOrWhiteSpace(string? value) -> bool static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.GetStandardReplacements(string! processName, string! processId, System.DateTimeOffset timestamp) -> System.Collections.Generic.Dictionary! +static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveTemplate(string! template, System.Collections.Generic.IDictionary? replacements = null) -> string! static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsBrowser() -> bool @@ -269,4 +324,5 @@ static System.Numerics.Hashing.HashHelpers.Combine(int h1, int h2) -> int System.Numerics.Hashing.HashHelpers System.Runtime.CompilerServices.CompilerLoweringPreserveAttribute System.Runtime.CompilerServices.CompilerLoweringPreserveAttribute.CompilerLoweringPreserveAttribute() -> void +virtual Microsoft.Testing.Extensions.ReportGeneratorBase.ArtifactKind.get -> string? virtual Microsoft.Testing.Extensions.ReportGeneratorBase.OnTestNodeUpdate(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage! update) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/InternalAPI/InternalAPI.Unshipped.txt index 0cb5c69506..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/InternalAPI/InternalAPI.Unshipped.txt @@ -1,57 +1 @@ #nullable enable -const Microsoft.Testing.Extensions.CtrfReport.CtrfReportGenerator.CtrfArtifactKind = "microsoft.testing.ctrf" -> string! -virtual Microsoft.Testing.Extensions.ReportGeneratorBase.ArtifactKind.get -> string? -Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment -Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.CapturedAttachment() -> void -Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.ContentType.get -> string! -Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.ContentType.init -> void -Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.Description.get -> string? -Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.Description.init -> void -Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.Name.get -> string! -Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.Name.init -> void -Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.Path.get -> string! -Microsoft.Testing.Extensions.CtrfReport.CapturedAttachment.Path.init -> void -Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.Attachments.get -> System.Collections.Generic.IReadOnlyList? -Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.Attachments.init -> void -Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.IsSupersededRetryAttempt.get -> bool -Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.IsSupersededRetryAttempt.init -> void -Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.RetryAttemptNumber.get -> int? -Microsoft.Testing.Extensions.CtrfReport.CapturedTestResult.RetryAttemptNumber.init -> void -Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor -Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.CtrfArtifactPostProcessor() -> void -Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.Description.get -> string! -Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.DisplayName.get -> string! -Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.ProcessAsync(System.Collections.Generic.IReadOnlyList! inputs, string! outputDirectory, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.SupportedModes.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.SupportsTruncatedRuns.get -> bool -Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.SupportedFileExtensionsFallback.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.SupportedKinds.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.Uid.get -> string! -Microsoft.Testing.Extensions.CtrfReport.CtrfArtifactPostProcessor.Version.get -> string! -Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode -Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode.CollapseRetryAttempts = 1 -> Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode -Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode.Concatenate = 0 -> Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode -Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger -static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.CreateDeterministicId(System.Collections.Generic.IReadOnlyList! values) -> System.Guid -static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.MergeAllToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.MergeAllToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode mode, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.Merge(System.Collections.Generic.IReadOnlyList! inputReports) -> string! -static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.Merge(System.Collections.Generic.IReadOnlyList! inputReports, Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode mode) -> string! -static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.MergeToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, Microsoft.Testing.Extensions.CtrfReport.CtrfMergeMode mode, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Extensions.CtrfReport.CtrfReportMerger.MergeToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! -Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode -Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! -static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! -Microsoft.Testing.Extensions.MergeOutputFileHelper -static Microsoft.Testing.Extensions.MergeOutputFileHelper.BuildCaseFoldedProbePath(string! directory, string! probeFileName) -> string! -static Microsoft.Testing.Extensions.MergeOutputFileHelper.EnsureOutputDoesNotAliasInput(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath) -> void -static Microsoft.Testing.Extensions.MergeOutputFileHelper.WriteViaTemporarySiblingAsync(string! outputPath, System.Func! writeToTempAsync) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.ArtifactPostProcessingHelper -static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.IsReparsePoint(string! path) -> bool -static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.OrderInputs(System.Collections.Generic.IEnumerable! inputs, bool includeModuleMetadata) -> System.Linq.IOrderedEnumerable! diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/InternalAPI/InternalAPI.Shipped.txt index a016f1dd72..64b3e4ad99 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/InternalAPI/InternalAPI.Shipped.txt @@ -1,34 +1,174 @@ #nullable enable abstract Microsoft.Testing.Extensions.SlowTestReporterBase.Description.get -> string! abstract Microsoft.Testing.Extensions.SlowTestReporterBase.DisplayName.get -> string! -abstract Microsoft.Testing.Extensions.SlowTestReporterBase.EmitSlowTestAsync(string! testName, System.TimeSpan elapsed, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +abstract Microsoft.Testing.Extensions.SlowTestReporterBase.EmitSlowTestAsync(string! testName, string! displayLabel, System.TimeSpan elapsed, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +abstract Microsoft.Testing.Extensions.SlowTestReporterBase.GetDisplayLabel(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> string! abstract Microsoft.Testing.Extensions.SlowTestReporterBase.GetTestName(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> string! abstract Microsoft.Testing.Extensions.SlowTestReporterBase.IsEnabled.get -> bool abstract Microsoft.Testing.Extensions.SlowTestReporterBase.ResolveThreshold(string! testName) -> System.TimeSpan abstract Microsoft.Testing.Extensions.SlowTestReporterBase.Uid.get -> string! const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsAnnotations = "report-gh-annotations" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsFailureDetails = "report-gh-failure-details" -> string! const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsGroups = "report-gh-groups" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsHistory = "report-gh-history" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsHistoryWindow = "report-gh-history-window" -> string! const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsOptionName = "report-gh" -> string! const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsSlowTestNotices = "report-gh-slow-test-notices" -> string! const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsSlowTestThreshold = "report-gh-slow-test-threshold" -> string! const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsStepSummary = "report-gh-step-summary" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsStepSummarySections = "report-gh-step-summary-sections" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.HistoryWindowDefaultDays = 30 -> int const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.SlowTestThresholdDefaultSeconds = 60 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.StepSummaryOnFailureValue = "on-failure" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.CondenseLength = 629145 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.CondenseShare = 0.6 -> double +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.DetailBudgetLength = 419430 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.DetailBudgetShare = 0.4 -> double +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.EffectiveStepSummaryLimit = 1048574 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.GitHubStepSummaryLimit = 1048576 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.MaxMessageLength = 2000 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.MaxMessageRows = 30 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.MaxStackTraceLength = 4000 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.MaxStackTraceRows = 30 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.MaxTotalDetailsLength = 411430 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.ProjectOverheadReserve = 8000 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.StopListingLength = 943718 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.StopListingShare = 0.9 -> double +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryOutcome.Failed = "failed" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryOutcome.Passed = "passed" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryOutcome.Skipped = "skipped" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.MaxSamplesPerTest = 1000 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.MaxSnapshotBytes = 16777216 -> long +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.MaxTotalSamples = 10000 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.SchemaVersion = 1 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.AllSectionName = "all" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.CoverageSectionName = "coverage" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.SlowTestsSectionName = "slow-tests" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.TestResultsSectionName = "test-results" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.DetailsOmittedNoticeStrength = 1 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.ProjectSectionMarker = "" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.SectionsRemovedNoticeStrength = 2 -> int +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.TruncationNoticeEndMarker = "" -> string! +const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.TruncationNoticeMarker = "" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void +Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService +Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.DisabledGitHubActionsHistoryService() -> void +Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.HistoryPath.get -> string? +Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.HistoryWindowInDays.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.IsEnabled.get -> bool +Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.TryGetStats(string! testId, string! fullyQualifiedName, string! displayName, out Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats stats) -> bool +Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.WriteAsync(System.Collections.Generic.IReadOnlyList! modules, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.AppendHistoryContext(string! testId, string! fullyQualifiedName, string! displayName, string? explanation, System.Exception? exception) -> string? Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.DataTypesConsumed.get -> System.Type![]! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.Description.get -> string! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.DisplayName.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GitHubActionsAnnotationReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDisplay, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GitHubActionsAnnotationReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDisplay, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService? historyService = null) -> void Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.OnTestSessionFinishingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.OnTestSessionStartingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.Uid.get -> string! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.Version.get -> string! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineProvider Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineProvider.GitHubActionsCommandLineProvider() -> void Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsEscaper +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsExitCode +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.Duration.get -> System.TimeSpan +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.ExceptionType.get -> string? +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.FilePath.get -> string? +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.FullyQualifiedName.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.GitHubActionsFailureEntry() -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.GitHubActionsFailureEntry(string! fullyQualifiedName, System.TimeSpan duration, string? message = null, string? exceptionType = null, string? stackTrace = null, string? filePath = null, int lineNumber = 0) -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.HasDetails.get -> bool +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.LineNumber.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.Message.get -> string? +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.StackTrace.get -> string? Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFeature +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryJsonContext +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryOutcome +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.Architecture.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.Architecture.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.AssemblyName.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.AssemblyName.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.CommitSha.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.CommitSha.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.DisplayName.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.DisplayName.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.DurationTicks.get -> long +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.DurationTicks.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.FullyQualifiedName.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.FullyQualifiedName.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.GetRunIdentity() -> (string! RunId, int RunAttempt, string! CommitSha, System.DateTimeOffset TimestampUtc, System.TimeSpan TimestampOffset) +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.GitHubActionsHistorySample() -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.IsFlaky.get -> bool +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.IsFlaky.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.IsInScope(Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope scope) -> bool +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.Outcome.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.Outcome.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RefName.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RefName.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RunAttempt.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RunAttempt.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RunId.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RunId.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RunnerOs.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RunnerOs.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.TargetFramework.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.TargetFramework.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.TestId.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.TestId.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.TimestampUtc.get -> System.DateTimeOffset +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.TimestampUtc.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope.Architecture.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope.AssemblyName.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope.GitHubActionsHistoryScope() -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope.GitHubActionsHistoryScope(string! assemblyName, string! targetFramework, string! architecture, string! runnerOs) -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope.RunnerOs.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope.TargetFramework.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.Description.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.DisplayName.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.GitHubActionsHistoryService(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope scope) -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.HistoryPath.get -> string? +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.HistoryWindowInDays.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.IsEnabled.get -> bool +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.OnTestSessionFinishingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.OnTestSessionStartingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.TryGetStats(string! testId, string! fullyQualifiedName, string! displayName, out Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats stats) -> bool +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.Uid.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.Version.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.WriteAsync(System.Collections.Generic.IReadOnlyList! modules, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.GeneratedAtUtc.get -> System.DateTimeOffset +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.GeneratedAtUtc.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.GitHubActionsHistorySnapshot() -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.Samples.get -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample![]! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.Samples.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.SchemaVersion.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.SchemaVersion.set -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.DurationSampleCount.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.FailCount.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.FailureRate.get -> double +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.FlakyCount.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.GitHubActionsHistoryStats() -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.GitHubActionsHistoryStats(int passCount, int failCount, int flakyCount = 0, long p95DurationTicks = 0, long p99DurationTicks = 0, int durationSampleCount = 0) -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.P95Duration.get -> System.TimeSpan +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.P99Duration.get -> System.TimeSpan +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.PassCount.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.TotalCount.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsReporter Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsReporter.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsReporter.DataTypesConsumed.get -> System.Type![]! @@ -43,17 +183,73 @@ Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsReporter.Version.g Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsRepositoryRoot Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSlowTestReporter Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSlowTestReporter.GitHubActionsSlowTestReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation.GitHubActionsSourceLocation() -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation.GitHubActionsSourceLocation(string! relativeNormalizedPath, int lineNumber) -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation.LineNumber.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation.RelativeNormalizedPath.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.All = Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.TestResults | Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.SlowTests | Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.Coverage -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.Coverage = 4 -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.None = 0 -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.SlowTests = 2 -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.TestResults = 1 -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.AggregateRenderResult() -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.AggregateRenderResult(string! markdown, int modulesWithOmittedDetails, int condensedModules, int unlistedModules) -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.CondensedModules.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.FullyReportedModules(int totalModules) -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.Markdown.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.ModulesWithOmittedDetails.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.UnlistedModules.get -> int Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.DataTypesConsumed.get -> System.Type![]! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.DataTypesProduced.get -> System.Type![]! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.Description.get -> string! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.DisplayName.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.GitHubActionsSummaryReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.GitHubActionsSummaryReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Platform.Services.ITestCoverageResult! testCoverageResult, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, System.Func! shouldDeferToArtifactPostProcessing, Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService? historyService = null) -> void Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.IsEnabledAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.OnTestSessionFinishingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.OnTestSessionStartingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.DeclaredFilePath.get -> string? +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.DeclaredLine.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.DisplayName.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.Exception.get -> System.Exception? +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.Explanation.get -> string? +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.FullyQualifiedName.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.PendingFailure() -> void +Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.PendingFailure(string! fullyQualifiedName, string! displayName, string? explanation, System.Exception? exception, string? declaredFilePath, int declaredLine) -> void Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.Uid.get -> string! Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.Version.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService +Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService.HistoryPath.get -> string? +Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService.HistoryWindowInDays.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService.IsEnabled.get -> bool +Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService.TryGetStats(string! testId, string! fullyQualifiedName, string! displayName, out Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats stats) -> bool +Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService.WriteAsync(System.Collections.Generic.IReadOnlyList! modules, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter +Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.AppendRenderedStepSummarySectionAsync(System.Func! render, System.Func! noticeFactory, System.Threading.CancellationToken cancellationToken, long maxTotalBytes = 9223372036854775807) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.AppendStepSummaryWithLeadingNoticeAsync(string! content, System.Func! noticeFactory, System.Threading.CancellationToken cancellationToken, long maxTotalBytes = 9223372036854775807) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.AppendStepSummaryWithRetryAsync(string! content, System.Threading.CancellationToken cancellationToken, long maxTotalBytes = 9223372036854775807) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.GetSummaryLength() -> long? +Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.GetSummaryLengthExcludingSection(string! aggregationId) -> long +Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.Path.get -> string! +Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.StepSummaryWriter(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, string! path, Microsoft.Testing.Platform.Logging.ILogger! logger, int maxAttempts, System.TimeSpan retryDelay) -> void +Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.UpsertStepSummaryWithRetryAsync(string! aggregationId, string! content, System.Threading.CancellationToken cancellationToken, System.Func? leadingNoticeFactory = null, long maxTotalBytes = 9223372036854775807) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget +Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.Consume(int bytes) -> void +Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.DetailBytesAvailable.get -> int +Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.GrantModuleShare(int remainingModuleCount) -> void +Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.Stage.get -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage +Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.TryReserveDetails(int bytes) -> bool +Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage +Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage.Condensed = 2 -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage +Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage.Full = 0 -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage +Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage.NoDetails = 1 -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage +Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage.Unlisted = 3 -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage Microsoft.Testing.Extensions.ReporterLoggingExtensions Microsoft.Testing.Extensions.SlowTestReporterBase Microsoft.Testing.Extensions.SlowTestReporterBase.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! @@ -74,16 +270,30 @@ Microsoft.Testing.Extensions.TerminalKind.Failed = 2 -> Microsoft.Testing.Extens Microsoft.Testing.Extensions.TerminalKind.NotTerminal = 0 -> Microsoft.Testing.Extensions.TerminalKind Microsoft.Testing.Extensions.TerminalKind.Passed = 1 -> Microsoft.Testing.Extensions.TerminalKind Microsoft.Testing.Extensions.TerminalKind.Skipped = 3 -> Microsoft.Testing.Extensions.TerminalKind +Microsoft.Testing.Extensions.TestFailureDetails +Microsoft.Testing.Extensions.TestFailureDetails.ExceptionType.get -> string? +Microsoft.Testing.Extensions.TestFailureDetails.FilePath.get -> string? +Microsoft.Testing.Extensions.TestFailureDetails.IsEmpty.get -> bool +Microsoft.Testing.Extensions.TestFailureDetails.LineNumber.get -> int +Microsoft.Testing.Extensions.TestFailureDetails.Message.get -> string? +Microsoft.Testing.Extensions.TestFailureDetails.StackTrace.get -> string? +Microsoft.Testing.Extensions.TestFailureDetails.TestFailureDetails(string? message, string? exceptionType, string? stackTrace, string? filePath, int lineNumber) -> void Microsoft.Testing.Extensions.TestNodeIdentity Microsoft.Testing.Extensions.TestRecord Microsoft.Testing.Extensions.TestRecord.DisplayName.get -> string! Microsoft.Testing.Extensions.TestRecord.Duration.get -> System.TimeSpan +Microsoft.Testing.Extensions.TestRecord.Failure.get -> Microsoft.Testing.Extensions.TestFailureDetails? Microsoft.Testing.Extensions.TestRecord.FullyQualifiedName.get -> string! +Microsoft.Testing.Extensions.TestRecord.IsFlaky.get -> bool Microsoft.Testing.Extensions.TestRecord.Kind.get -> Microsoft.Testing.Extensions.TerminalKind Microsoft.Testing.Extensions.TestRecord.TestRecord() -> void +Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration, bool isFlaky, Microsoft.Testing.Extensions.TestFailureDetails? failure = null) -> void +Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration, bool isFlaky) -> void +Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration, Microsoft.Testing.Extensions.TestFailureDetails? failure) -> void Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration) -> void Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.AtLeastOneTestFailed = 2 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.DependentProcessExited = 11 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.GenericFailure = 1 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.IncompatibleProtocolVersion = 12 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -92,10 +302,12 @@ Microsoft.Testing.Platform.Helpers.ExitCode.InvalidPlatformSetup = 4 -> Microsof Microsoft.Testing.Platform.Helpers.ExitCode.MinimumExpectedTestsPolicyViolation = 9 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.Success = 0 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestAdapterTestSessionFailure = 10 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedForMaxFailedTests = 13 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestHostProcessExitedNonGracefully = 7 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestSessionAborted = 3 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.ZeroTests = 8 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit.Days = 4 -> Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit.Hours = 3 -> Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit @@ -106,31 +318,72 @@ Microsoft.Testing.Platform.Helpers.TimeSpanParser Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser Microsoft.Testing.Platform.RoslynString Microsoft.Testing.TestInfrastructure.RootFinder +override Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineProvider.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! override Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineProvider.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! override Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSlowTestReporter.Description.get -> string! override Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSlowTestReporter.DisplayName.get -> string! override Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSlowTestReporter.Uid.get -> string! Polyfills.Polyfill Polyfills.Polyfill.extension(System.OperatingSystem) -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GetErrorAnnotation(string! testName, string? explanation, System.Exception? exception, string? repoRoot, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, bool skipAssertionFrames) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GetSkippedAnnotation(string! testName, string? explanation) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.Instance.get -> Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.FormatHistoryContext(string! failure, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats stats, int historyWindowInDays) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GetErrorAnnotation(string! testName, string? explanation, System.Exception? exception, string? repoRoot, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, bool skipAssertionFrames, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation? declaredLocation = null) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GetExitCodeAnnotation(int exitCode) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GetSkippedAnnotation(string! testName, string? explanation, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation? declaredLocation = null) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.TryResolveDeclaredLocation(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode, string? repoRoot, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem) -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation? static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsEscaper.EscapeData(string! value) -> string! static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsEscaper.EscapeProperty(string! value) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsExitCode.GetName(int exitCode) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsExitCode.GetReason(int exitCode) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsExitCode.IndicatesFailure(int exitCode) -> bool +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsExitCode.IsTestResultOutcome(int exitCode) -> bool +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.AppendFailuresSection(System.Text.StringBuilder! builder, string! heading, System.Collections.Generic.IReadOnlyList! entries, long totalFailedCount, bool includeDetails, Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget! budget) -> int +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.Clip(string? value, int maxLength, int maxRows = 2147483647) -> string? +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.EscapeInlineCode(string! value) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.FormatDuration(System.TimeSpan duration) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.HtmlEncode(string! value) -> string! static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFeature.IsEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, string! knobOptionName) -> bool static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFeature.IsKnobEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine, string! knobOptionName) -> bool static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFeature.IsMasterEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine, Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> bool static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFeature.IsRunningOnGitHubActions(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> bool +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFeature.IsStepSummaryOnFailureOnly(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine) -> bool +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.AggregateStats(Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot! snapshot, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope scope) -> System.Collections.Generic.IReadOnlyDictionary<(string! TestId, string! FullyQualifiedName, string! DisplayName), Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats>! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.Merge(Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot! existing, System.Collections.Generic.IReadOnlyList! currentSamples, System.DateTimeOffset generatedAtUtc, System.DateTimeOffset? cutoff = null) -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.ReadAsync(string! path, System.DateTimeOffset cutoff, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.WriteMergedAsync(string! path, int historyWindowInDays, System.DateTimeOffset now, System.Collections.Generic.IReadOnlyList! currentSamples, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsRepositoryRoot.FindGitRoot() -> string? static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsRepositoryRoot.Resolve(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> string? -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSlowTestReporter.BuildNoticeLine(string! testName, System.TimeSpan elapsed) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildMarkdown(System.Collections.Generic.IReadOnlyList! records, string! assemblyName, string! targetFrameworkMoniker) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSlowTestReporter.BuildNoticeLine(string! testLabel, System.TimeSpan elapsed) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.GetAggregateSections(System.Collections.Generic.IReadOnlyList! modules) -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.GetSections(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.ToPersistedValues(Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections sections) -> string![]! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.TryParse(System.Collections.Generic.IReadOnlyList! arguments, out Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections sections, out string? invalidValue, out bool hasEmptyValue) -> bool +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.ApplyPendingFailure(System.Collections.Generic.Dictionary! pending, string! uid, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure? failure, int keep) -> void +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildAggregateMarkdown(Microsoft.Testing.Extensions.CiRunSummaryAggregate! aggregate, bool includeFailureDetails = true, bool condenseAllModules = false, long alreadyWrittenBytes = 0) -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildAggregateTruncationNotice(int modulesWithOmittedDetails, int totalModules) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildMarkdown(System.Collections.Generic.IReadOnlyList! records, string! assemblyName, string! targetFrameworkMoniker, int exitCode, bool includeFailureDetails, Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget? budget = null) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildMarkdown(System.Collections.Generic.IReadOnlyList! records, string! assemblyName, string! targetFrameworkMoniker, int exitCode, Microsoft.Testing.Extensions.CiCoverageSummaryData! coverage, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections sections, bool includeFailureDetails, Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget? budget = null) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildMarkdown(System.Collections.Generic.IReadOnlyList! records, string! assemblyName, string! targetFrameworkMoniker, int exitCode, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections sections = Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.All) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildMinimalMarkdown(System.Collections.Generic.IReadOnlyList! records, string! assemblyName, string! targetFrameworkMoniker, int exitCode) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildNoticeStrengthToken(int strength) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildTruncationNotice(int reportedProjectCount) -> string! +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.TrimToRenderedFailures(System.Collections.Generic.Dictionary! pending, int keep) -> void +static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.TryGetFailureInfo(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? state) -> (string? Explanation, System.Exception? Exception)? +static Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.CountProjectSections(string! summary) -> int +static Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.GetLeadingNoticeStrength(string! summary) -> int +static Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.HasLeadingTruncationNotice(string! summary) -> bool +static Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.ForAggregate(long consumedBytes, int moduleCount) -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget! +static Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.ForProject(long alreadyWrittenBytes) -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget! static Microsoft.Testing.Extensions.ReporterLoggingExtensions.LogUnexpectedException(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! callbackName, System.Exception! ex) -> void static Microsoft.Testing.Extensions.StackTraceSourceLocationResolver.SkipAssertionFramesForCurrentRuntime.get -> bool +static Microsoft.Testing.Extensions.StackTraceSourceLocationResolver.TryMakeWorkspaceRelative(string? filePath, string? repoRoot, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem) -> string? static Microsoft.Testing.Extensions.StackTraceSourceLocationResolver.TryResolve(string? stackTrace, string? repoRoot, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, bool skipAssertionFrames, System.Func? shouldSkipFrame = null) -> (string! RelativeNormalizedPath, int LineNumber)? static Microsoft.Testing.Extensions.SummaryReporterHelpers.FormatDuration(System.TimeSpan duration, string! minuteFormat, string! hourFormat) -> string! static Microsoft.Testing.Extensions.SummaryReporterHelpers.GetTerminalKind(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? state) -> Microsoft.Testing.Extensions.TerminalKind static Microsoft.Testing.Extensions.TargetFrameworkMonikerHelper.GetTargetFrameworkMonikerIncludingPlatform() -> string! +static Microsoft.Testing.Extensions.TestNodeIdentity.GetDisplayLabel(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> string! static Microsoft.Testing.Extensions.TestNodeIdentity.GetTestName(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> string! +static Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper.IsMultiThreaded.get -> bool static Microsoft.Testing.Platform.Helpers.TimeSpanParser.Parse(string? time, Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit defaultUnit) -> System.TimeSpan static Microsoft.Testing.Platform.Helpers.TimeSpanParser.Parse(string? time) -> System.TimeSpan static Microsoft.Testing.Platform.Helpers.TimeSpanParser.ParseRequireSuffix(string? time) -> System.TimeSpan diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/InternalAPI/InternalAPI.Unshipped.txt index d3aab7549e..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/InternalAPI/InternalAPI.Unshipped.txt @@ -1,272 +1 @@ -*REMOVED*abstract Microsoft.Testing.Extensions.SlowTestReporterBase.EmitSlowTestAsync(string! testName, System.TimeSpan elapsed, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GitHubActionsAnnotationReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDisplay, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void -*REMOVED*Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.GitHubActionsSummaryReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void -*REMOVED*Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.GitHubActionsSummaryReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void -*REMOVED*static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GetErrorAnnotation(string! testName, string? explanation, System.Exception? exception, string? repoRoot, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, bool skipAssertionFrames) -> string! -*REMOVED*static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GetSkippedAnnotation(string! testName, string? explanation) -> string! -*REMOVED*static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSlowTestReporter.BuildNoticeLine(string! testName, System.TimeSpan elapsed) -> string! -*REMOVED*static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildMarkdown(System.Collections.Generic.IReadOnlyList! records, string! assemblyName, string! targetFrameworkMoniker) -> string! #nullable enable -abstract Microsoft.Testing.Extensions.SlowTestReporterBase.EmitSlowTestAsync(string! testName, string! displayLabel, System.TimeSpan elapsed, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -abstract Microsoft.Testing.Extensions.SlowTestReporterBase.GetDisplayLabel(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsFailureDetails = "report-gh-failure-details" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsHistory = "report-gh-history" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsHistoryWindow = "report-gh-history-window" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.GitHubActionsStepSummarySections = "report-gh-step-summary-sections" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.HistoryWindowDefaultDays = 30 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineOptions.StepSummaryOnFailureValue = "on-failure" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.CondenseLength = 629145 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.CondenseShare = 0.6 -> double -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.DetailBudgetLength = 419430 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.DetailBudgetShare = 0.4 -> double -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.EffectiveStepSummaryLimit = 1048574 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.GitHubStepSummaryLimit = 1048576 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.MaxMessageLength = 2000 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.MaxMessageRows = 30 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.MaxStackTraceLength = 4000 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.MaxStackTraceRows = 30 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.MaxTotalDetailsLength = 411430 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.ProjectOverheadReserve = 8000 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.StopListingLength = 943718 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.StopListingShare = 0.9 -> double -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.AllSectionName = "all" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.CoverageSectionName = "coverage" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.SlowTestsSectionName = "slow-tests" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.TestResultsSectionName = "test-results" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.ProjectSectionMarker = "" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.TruncationNoticeEndMarker = "" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.TruncationNoticeMarker = "" -> string! -*REMOVED*Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GitHubActionsAnnotationReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDisplay, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GitHubActionsAnnotationReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDisplay, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService? historyService = null) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.OnTestSessionFinishingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.OnTestSessionStartingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsExitCode -Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService -Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService.HistoryPath.get -> string? -Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService.HistoryWindowInDays.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService.IsEnabled.get -> bool -*REMOVED*Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService.TryGetStats(string! testName, out Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats stats) -> bool -Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService.TryGetStats(string! testId, string! fullyQualifiedName, string! displayName, out Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats stats) -> bool -Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService.WriteAsync(System.Collections.Generic.IReadOnlyList! modules, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService -Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.HistoryPath.get -> string? -Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.HistoryWindowInDays.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.Instance.get -> Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService! -Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.IsEnabled.get -> bool -*REMOVED*Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.TryGetStats(string! testName, out Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats stats) -> bool -Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.TryGetStats(string! testId, string! fullyQualifiedName, string! displayName, out Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats stats) -> bool -Microsoft.Testing.Extensions.GitHubActionsReport.DisabledGitHubActionsHistoryService.WriteAsync(System.Collections.Generic.IReadOnlyList! modules, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.Description.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.DisplayName.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.GitHubActionsHistoryService(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope scope) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.HistoryPath.get -> string? -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.HistoryWindowInDays.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.IsEnabled.get -> bool -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.OnTestSessionFinishingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.OnTestSessionStartingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.TryGetStats(string! testName, out Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats stats) -> bool -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.TryGetStats(string! testId, string! fullyQualifiedName, string! displayName, out Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats stats) -> bool -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.Uid.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.Version.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryService.WriteAsync(System.Collections.Generic.IReadOnlyList! modules, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.FailCount.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.FailureRate.get -> double -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.FlakyCount.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.DurationSampleCount.get -> int -*REMOVED*Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.GitHubActionsHistoryStats(int passCount, int failCount, int flakyCount = 0) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.GitHubActionsHistoryStats(int passCount, int failCount, int flakyCount = 0, long p95DurationTicks = 0, long p99DurationTicks = 0, int durationSampleCount = 0) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.P95Duration.get -> System.TimeSpan -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.P99Duration.get -> System.TimeSpan -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.PassCount.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats.TotalCount.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope.Architecture.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope.AssemblyName.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope.GitHubActionsHistoryScope(string! assemblyName, string! targetFramework, string! architecture, string! runnerOs) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope.RunnerOs.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope.TargetFramework.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.MaxSamplesPerTest = 1000 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.MaxSnapshotBytes = 16777216 -> long -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.MaxTotalSamples = 10000 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.SchemaVersion = 1 -> int -*REMOVED*static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.AggregateStats(Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot! snapshot, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope scope) -> System.Collections.Generic.IReadOnlyDictionary! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.AggregateStats(Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot! snapshot, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope scope) -> System.Collections.Generic.IReadOnlyDictionary<(string! TestId, string! FullyQualifiedName, string! DisplayName), Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats>! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.Merge(Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot! existing, System.Collections.Generic.IReadOnlyList! currentSamples, System.DateTimeOffset generatedAtUtc, System.DateTimeOffset? cutoff = null) -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.ReadAsync(string! path, System.DateTimeOffset cutoff, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStore.WriteMergedAsync(string! path, int historyWindowInDays, System.DateTimeOffset now, System.Collections.Generic.IReadOnlyList! currentSamples, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.GeneratedAtUtc.get -> System.DateTimeOffset -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.GeneratedAtUtc.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.GitHubActionsHistorySnapshot() -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.Samples.get -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample![]! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.Samples.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.SchemaVersion.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySnapshot.SchemaVersion.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.Architecture.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.Architecture.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.AssemblyName.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.AssemblyName.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.CommitSha.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.CommitSha.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.DisplayName.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.DisplayName.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.DurationTicks.get -> long -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.DurationTicks.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.FullyQualifiedName.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.FullyQualifiedName.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.GitHubActionsHistorySample() -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.IsFlaky.get -> bool -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.IsFlaky.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.Outcome.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.Outcome.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RefName.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RefName.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RunAttempt.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RunAttempt.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RunId.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RunId.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RunnerOs.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.RunnerOs.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.TargetFramework.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.TargetFramework.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.TestId.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.TestId.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.TimestampUtc.get -> System.DateTimeOffset -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.TimestampUtc.set -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.GetRunIdentity() -> (string! RunId, int RunAttempt, string! CommitSha, System.DateTimeOffset TimestampUtc, System.TimeSpan TimestampOffset) -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistorySample.IsInScope(Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryScope scope) -> bool -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryOutcome -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryOutcome.Failed = "failed" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryOutcome.Passed = "passed" -> string! -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryOutcome.Skipped = "skipped" -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryJsonContext -Microsoft.Testing.Extensions.TestRecord.IsFlaky.get -> bool -Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration, bool isFlaky) -> void -Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration, bool isFlaky, Microsoft.Testing.Extensions.TestFailureDetails? failure = null) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.Duration.get -> System.TimeSpan -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.ExceptionType.get -> string? -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.FilePath.get -> string? -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.FullyQualifiedName.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.GitHubActionsFailureEntry() -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.GitHubActionsFailureEntry(string! fullyQualifiedName, System.TimeSpan duration, string? message = null, string? exceptionType = null, string? stackTrace = null, string? filePath = null, int lineNumber = 0) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.HasDetails.get -> bool -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.LineNumber.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.Message.get -> string? -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureEntry.StackTrace.get -> string? -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation.GitHubActionsSourceLocation() -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation.GitHubActionsSourceLocation(string! relativeNormalizedPath, int lineNumber) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation.LineNumber.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation.RelativeNormalizedPath.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.All = Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.TestResults | Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.SlowTests | Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.Coverage -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.Coverage = 4 -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.None = 0 -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.SlowTests = 2 -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.TestResults = 1 -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.AggregateRenderResult() -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.AggregateRenderResult(string! markdown, int modulesWithOmittedDetails, int condensedModules, int unlistedModules) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.CondensedModules.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.FullyReportedModules(int totalModules) -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.Markdown.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.ModulesWithOmittedDetails.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult.UnlistedModules.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.DataTypesProduced.get -> System.Type![]! -*REMOVED*Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.GitHubActionsSummaryReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Platform.Services.ITestCoverageResult! testCoverageResult, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, System.Func! shouldDeferToArtifactPostProcessing) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.GitHubActionsSummaryReporter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationProcessExitCode! testApplicationProcessExitCode, Microsoft.Testing.Platform.Services.ITestCoverageResult! testCoverageResult, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, System.Func! shouldDeferToArtifactPostProcessing, Microsoft.Testing.Extensions.GitHubActionsReport.IGitHubActionsHistoryService? historyService = null) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter -Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.Path.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.StepSummaryWriter(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, string! path, Microsoft.Testing.Platform.Logging.ILogger! logger, int maxAttempts, System.TimeSpan retryDelay) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget -Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.Consume(int bytes) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.DetailBytesAvailable.get -> int -Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.GrantModuleShare(int remainingModuleCount) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.Stage.get -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage -Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.TryReserveDetails(int bytes) -> bool -Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage -Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage.Condensed = 2 -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage -Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage.Full = 0 -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage -Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage.NoDetails = 1 -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage -Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage.Unlisted = 3 -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryStage -Microsoft.Testing.Extensions.TestFailureDetails -Microsoft.Testing.Extensions.TestFailureDetails.ExceptionType.get -> string? -Microsoft.Testing.Extensions.TestFailureDetails.FilePath.get -> string? -Microsoft.Testing.Extensions.TestFailureDetails.IsEmpty.get -> bool -Microsoft.Testing.Extensions.TestFailureDetails.LineNumber.get -> int -Microsoft.Testing.Extensions.TestFailureDetails.Message.get -> string? -Microsoft.Testing.Extensions.TestFailureDetails.StackTrace.get -> string? -Microsoft.Testing.Extensions.TestFailureDetails.TestFailureDetails(string? message, string? exceptionType, string? stackTrace, string? filePath, int lineNumber) -> void -Microsoft.Testing.Extensions.TestRecord.Failure.get -> Microsoft.Testing.Extensions.TestFailureDetails? -Microsoft.Testing.Extensions.TestRecord.TestRecord(string! displayName, string! fullyQualifiedName, Microsoft.Testing.Extensions.TerminalKind kind, System.TimeSpan duration, Microsoft.Testing.Extensions.TestFailureDetails? failure) -> void -Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode -Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! -Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper -override Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsCommandLineProvider.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GetErrorAnnotation(string! testName, string? explanation, System.Exception? exception, string? repoRoot, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, bool skipAssertionFrames, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation? declaredLocation = null) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GetExitCodeAnnotation(int exitCode) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.FormatHistoryContext(string! failure, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsHistoryStats stats, int historyWindowInDays) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.GetSkippedAnnotation(string! testName, string? explanation, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation? declaredLocation = null) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsAnnotationReporter.TryResolveDeclaredLocation(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode, string? repoRoot, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem) -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSourceLocation? -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsExitCode.GetName(int exitCode) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsExitCode.GetReason(int exitCode) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsExitCode.IndicatesFailure(int exitCode) -> bool -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsExitCode.IsTestResultOutcome(int exitCode) -> bool -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.Clip(string? value, int maxLength, int maxRows = 2147483647) -> string? -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.EscapeInlineCode(string! value) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.FormatDuration(System.TimeSpan duration) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.HtmlEncode(string! value) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFeature.IsStepSummaryOnFailureOnly(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLine) -> bool -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSlowTestReporter.BuildNoticeLine(string! testLabel, System.TimeSpan elapsed) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.GetAggregateSections(System.Collections.Generic.IReadOnlyList! modules) -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.GetSections(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.ToPersistedValues(Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections sections) -> string![]! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySectionsParser.TryParse(System.Collections.Generic.IReadOnlyList! arguments, out Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections sections, out string? invalidValue, out bool hasEmptyValue) -> bool -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildAggregateTruncationNotice(int modulesWithOmittedDetails, int totalModules) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildMarkdown(System.Collections.Generic.IReadOnlyList! records, string! assemblyName, string! targetFrameworkMoniker, int exitCode, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections sections = Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections.All) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildMinimalMarkdown(System.Collections.Generic.IReadOnlyList! records, string! assemblyName, string! targetFrameworkMoniker, int exitCode) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildTruncationNotice(int reportedProjectCount) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.TryGetFailureInfo(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? state) -> (string? Explanation, System.Exception? Exception)? -static Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.ForAggregate(long consumedBytes, int moduleCount) -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget! -static Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget.ForProject(long alreadyWrittenBytes) -> Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget! -static Microsoft.Testing.Extensions.StackTraceSourceLocationResolver.TryMakeWorkspaceRelative(string? filePath, string? repoRoot, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem) -> string? -static Microsoft.Testing.Extensions.TestNodeIdentity.GetDisplayLabel(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> string! -static Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper.IsMultiThreaded.get -> bool -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsFailureDetails.AppendFailuresSection(System.Text.StringBuilder! builder, string! heading, System.Collections.Generic.IReadOnlyList! entries, long totalFailedCount, bool includeDetails, Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget! budget) -> int -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildMarkdown(System.Collections.Generic.IReadOnlyList! records, string! assemblyName, string! targetFrameworkMoniker, int exitCode, Microsoft.Testing.Extensions.CiCoverageSummaryData! coverage, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsStepSummarySections sections, bool includeFailureDetails, Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget? budget = null) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildAggregateMarkdown(Microsoft.Testing.Extensions.CiRunSummaryAggregate! aggregate, bool includeFailureDetails = true, bool condenseAllModules = false, long alreadyWrittenBytes = 0) -> Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.AggregateRenderResult -Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.UpsertStepSummaryWithRetryAsync(string! aggregationId, string! content, System.Threading.CancellationToken cancellationToken, System.Func? leadingNoticeFactory = null, long maxTotalBytes = 9223372036854775807) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.AppendStepSummaryWithRetryAsync(string! content, System.Threading.CancellationToken cancellationToken, long maxTotalBytes = 9223372036854775807) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.AppendStepSummaryWithLeadingNoticeAsync(string! content, System.Func! noticeFactory, System.Threading.CancellationToken cancellationToken, long maxTotalBytes = 9223372036854775807) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.AppendRenderedStepSummarySectionAsync(System.Func! render, System.Func! noticeFactory, System.Threading.CancellationToken cancellationToken, long maxTotalBytes = 9223372036854775807) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.GetSummaryLength() -> long? -static Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.HasLeadingTruncationNotice(string! summary) -> bool -static Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.CountProjectSections(string! summary) -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.DetailsOmittedNoticeStrength = 1 -> int -const Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.SectionsRemovedNoticeStrength = 2 -> int -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildNoticeStrengthToken(int strength) -> string! -static Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.GetLeadingNoticeStrength(string! summary) -> int -Microsoft.Testing.Extensions.GitHubActionsReport.StepSummaryWriter.GetSummaryLengthExcludingSection(string! aggregationId) -> long -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.PendingFailure() -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.PendingFailure(string! fullyQualifiedName, string! displayName, string? explanation, System.Exception? exception, string? declaredFilePath, int declaredLine) -> void -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.FullyQualifiedName.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.DisplayName.get -> string! -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.Explanation.get -> string? -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.Exception.get -> System.Exception? -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.DeclaredFilePath.get -> string? -Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure.DeclaredLine.get -> int -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.ApplyPendingFailure(System.Collections.Generic.Dictionary! pending, string! uid, Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.PendingFailure? failure, int keep) -> void -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.TrimToRenderedFailures(System.Collections.Generic.Dictionary! pending, int keep) -> void -static Microsoft.Testing.Extensions.GitHubActionsReport.GitHubActionsSummaryReporter.BuildMarkdown(System.Collections.Generic.IReadOnlyList! records, string! assemblyName, string! targetFrameworkMoniker, int exitCode, bool includeFailureDetails, Microsoft.Testing.Extensions.GitHubActionsReport.SummaryBudget? budget = null) -> string! diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/PublicAPI/PublicAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/PublicAPI/PublicAPI.Shipped.txt index 68db0d21cd..0a19cd14d6 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/PublicAPI/PublicAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/PublicAPI/PublicAPI.Shipped.txt @@ -1,5 +1,5 @@ #nullable enable -[TPEXP]Microsoft.Testing.Extensions.GitHubActionsExtensions -[TPEXP]static Microsoft.Testing.Extensions.GitHubActionsExtensions.AddGitHubActionsProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder) -> void +Microsoft.Testing.Extensions.GitHubActionsExtensions Microsoft.Testing.Extensions.GitHubActionsReport.TestingPlatformBuilderHook +static Microsoft.Testing.Extensions.GitHubActionsExtensions.AddGitHubActionsProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder) -> void static Microsoft.Testing.Extensions.GitHubActionsReport.TestingPlatformBuilderHook.AddExtensions(Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! testApplicationBuilder, string![]! _) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/PublicAPI/PublicAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/PublicAPI/PublicAPI.Unshipped.txt index 79ecd68330..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/PublicAPI/PublicAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/PublicAPI/PublicAPI.Unshipped.txt @@ -1,5 +1 @@ #nullable enable -*REMOVED*[TPEXP]Microsoft.Testing.Extensions.GitHubActionsExtensions -*REMOVED*[TPEXP]static Microsoft.Testing.Extensions.GitHubActionsExtensions.AddGitHubActionsProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder) -> void -Microsoft.Testing.Extensions.GitHubActionsExtensions -static Microsoft.Testing.Extensions.GitHubActionsExtensions.AddGitHubActionsProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Shipped.txt index d25ba56360..1bb04ebfbb 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Shipped.txt @@ -20,6 +20,9 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_CLI const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORY = "DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORY" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_NOLOGO = "DOTNET_NOLOGO" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_WATCH = "DOTNET_WATCH" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT = "TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC = "TESTINGPLATFORM_DIAGNOSTIC" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX = "TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX" -> string! @@ -28,6 +31,7 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX = "TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE = "TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY = "TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER = "TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_EXECUTIONID = "TESTINGPLATFORM_DOTNETTEST_EXECUTIONID" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION = "TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_EXITCODE_IGNORE = "TESTINGPLATFORM_EXITCODE_IGNORE" -> string! @@ -35,6 +39,7 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER = "TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_MESSAGEBUS_DRAINDATA_ATTEMPTS = "TESTINGPLATFORM_MESSAGEBUS_DRAINDATA_ATTEMPTS" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_NOBANNER = "TESTINGPLATFORM_NOBANNER" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TELEMETRY_OPTOUT = "TESTINGPLATFORM_TELEMETRY_OPTOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID = "TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID = "TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID" -> string! @@ -75,11 +80,15 @@ const Microsoft.Testing.Platform.IPC.DisplayMessageFieldsId.Text = 4 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.ErrorMessage = 1 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.ErrorType = 2 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.StackTrace = 3 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Actual = 11 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Duration = 4 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.ErrorOutput = 8 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.ExceptionMessageList = 6 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Expected = 10 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.IsSuperseded = 13 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Reason = 5 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.RetryAttemptNumber = 12 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.SessionUid = 9 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.StandardOutput = 7 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.State = 3 -> ushort @@ -87,6 +96,8 @@ const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Uid = 1 -> const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Description = 3 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.FullPath = 1 -> ushort +const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.InputArtifactPaths = 8 -> ushort +const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Kind = 7 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.SessionUid = 6 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.TestDisplayName = 5 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.TestUid = 4 -> ushort @@ -95,12 +106,15 @@ const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.FileArtifactMe const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.InstanceId = 2 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.MessagesSerializerId = 7 -> int const Microsoft.Testing.Platform.IPC.HandshakeMessageFieldsId.MessagesSerializerId = 9 -> int +const Microsoft.Testing.Platform.IPC.NamedPipeServer.MaxUnixDomainSocketPathLengthInBytes = 103 -> int const Microsoft.Testing.Platform.IPC.ServerControlMessageFieldsId.Kind = 1 -> ushort const Microsoft.Testing.Platform.IPC.ServerControlMessageFieldsId.MessagesSerializerId = 14 -> int const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.Duration = 4 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.ErrorOutput = 7 -> ushort +const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.IsSuperseded = 10 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.Reason = 5 -> ushort +const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.RetryAttemptNumber = 9 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.SessionUid = 8 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.StandardOutput = 6 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.State = 3 -> ushort @@ -144,7 +158,7 @@ Microsoft.Testing.Extensions.Diagnostics.HangDumpActivityIndicator.Version.get - Microsoft.Testing.Extensions.Diagnostics.HangDumpCommandLineProvider Microsoft.Testing.Extensions.Diagnostics.HangDumpCommandLineProvider.HangDumpCommandLineProvider() -> void Microsoft.Testing.Extensions.Diagnostics.HangDumpEnvironmentVariableProvider -Microsoft.Testing.Extensions.Diagnostics.HangDumpEnvironmentVariableProvider.HangDumpEnvironmentVariableProvider(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, string! pipeName) -> void +Microsoft.Testing.Extensions.Diagnostics.HangDumpEnvironmentVariableProvider.HangDumpEnvironmentVariableProvider(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint) -> void Microsoft.Testing.Extensions.Diagnostics.HangDumpOptions Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.BeforeTestHostProcessStartAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! @@ -162,7 +176,7 @@ Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.DumpFile Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.DumpFileNames.Equals(Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.DumpFileNames other) -> bool Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.DumpFileNames.WriteDumpFileName.get -> string! Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.DumpFileNames.WriteDumpFileName.init -> void -Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.HangDumpProcessLifetimeHandler(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IProcessHandler! processHandler, Microsoft.Testing.Platform.Helpers.IClock! clock) -> void +Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.HangDumpProcessLifetimeHandler(Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IProcessHandler! processHandler, Microsoft.Testing.Platform.Helpers.IClock! clock, System.IServiceProvider! serviceProvider) -> void Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.IsEnabledAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.OnTestHostProcessExitedAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation! testHostProcessInformation, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.OnTestHostProcessStartedAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation! testHostProcessInformation, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! @@ -204,17 +218,20 @@ Microsoft.Testing.Extensions.HangDump.Serializers.GetInProgressTestsResponse.Get Microsoft.Testing.Extensions.HangDump.Serializers.GetInProgressTestsResponse.Tests.get -> (string!, int)[]! Microsoft.Testing.Extensions.HangDump.Serializers.GetInProgressTestsResponseSerializer Microsoft.Testing.Extensions.HangDump.Serializers.GetInProgressTestsResponseSerializer.GetInProgressTestsResponseSerializer() -> void +Microsoft.Testing.Extensions.NamedPipeServerFactory Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.EnvironmentVariableName.get -> string! Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.PipeName.get -> string! -Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.PipeNameEnvironmentVariableProviderBase(string! pipeName, string! environmentVariableName) -> void +Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.PipeNameEnvironmentVariableProviderBase(Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint, string! environmentVariableName) -> void Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.UpdateAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.ValidateTestHostEnvironmentVariablesAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.Version.get -> string! Microsoft.Testing.Platform.Helpers.ApplicationStateGuard +Microsoft.Testing.Platform.Helpers.DeadlineHelper Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.AtLeastOneTestFailed = 2 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.DependentProcessExited = 11 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.GenericFailure = 1 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.IncompatibleProtocolVersion = 12 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -223,6 +240,7 @@ Microsoft.Testing.Platform.Helpers.ExitCode.InvalidPlatformSetup = 4 -> Microsof Microsoft.Testing.Platform.Helpers.ExitCode.MinimumExpectedTestsPolicyViolation = 9 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.Success = 0 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestAdapterTestSessionFailure = 10 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedForMaxFailedTests = 13 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestHostProcessExitedNonGracefully = 7 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestSessionAborted = 3 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -278,13 +296,15 @@ Microsoft.Testing.Platform.IPC.NamedPipeClient.RequestReplyAsync void Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.NamedPipeConnectionBase() -> void -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Pipes.PipeStream! stream, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Pipes.PipeStream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Stream! stream, System.Threading.CancellationToken cancellationToken, int maximumFrameSize = 2147483647) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Stream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.IPC.NamedPipeServer Microsoft.Testing.Platform.IPC.NamedPipeServer.Dispose() -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.DisposeAsync() -> System.Threading.Tasks.ValueTask +Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken) -> void +Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.PipeName.get -> Microsoft.Testing.Platform.IPC.PipeNameDescription! Microsoft.Testing.Platform.IPC.NamedPipeServer.WaitConnectionAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! @@ -334,7 +354,14 @@ static Microsoft.Testing.Extensions.Diagnostics.HangDumpCommandLineProvider.MapT static Microsoft.Testing.Extensions.Diagnostics.HangDumpOptions.IsEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> bool static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.DumpFileNames.operator !=(Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.DumpFileNames left, Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.DumpFileNames right) -> bool static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.DumpFileNames.operator ==(Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.DumpFileNames left, Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.DumpFileNames right) -> bool +static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.EnsureProcessIdPlaceholder(string! pattern) -> string! +static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.GetDumpFileNamePattern(string? configuredPattern, string! processName, int processId, int rootProcessId) -> string! static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.GetDumpFileNames(string! dumpFileName) -> Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.DumpFileNames +static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.GetProcessTreeWithTimeoutAsync(System.Func!>!>! getProcessTreeAsync, System.TimeSpan timeout, System.Func! logFailureAsync, Microsoft.Testing.Platform.Helpers.IProcess! rootProcess, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!>! +static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.QueryInProgressTestsWithTimeoutAsync(System.Func!>! requestInProgressTestsAsync, System.TimeSpan timeout, System.Func! logFailureAsync, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<(string!, int)[]!>! +static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.QueryOnceAndDumpTreeAsync(System.Collections.Generic.IEnumerable! bottomUpTree, Microsoft.Testing.Platform.Helpers.ITask! task, System.Func!>! queryInProgressTestsAsync, System.Func! dumpProcessAsync, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.RunBestEffortDiagnosticAsync(System.Func! diagnosticAsync, System.TimeSpan timeout) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.TryGetProcessById(Microsoft.Testing.Platform.Helpers.IProcessHandler! processHandler, int processId) -> Microsoft.Testing.Platform.Helpers.IProcess? static Microsoft.Testing.Extensions.Diagnostics.Helpers.IProcessExtensions.GetParentPidAsync(System.Diagnostics.Process! process, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Extensions.Diagnostics.OutputDeviceWriter! outputDisplay, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.Diagnostics.Helpers.IProcessExtensions.GetParentPidLinux(System.Diagnostics.Process! process) -> int static Microsoft.Testing.Extensions.Diagnostics.Helpers.IProcessExtensions.GetParentPidMacOsAsync(System.Diagnostics.Process! process, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Extensions.Diagnostics.OutputDeviceWriter! outputDisplay, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! @@ -343,9 +370,16 @@ static Microsoft.Testing.Extensions.Diagnostics.Helpers.IProcessExtensions.GetPr static Microsoft.Testing.Extensions.Diagnostics.Helpers.IProcessExtensions.ParseParentPidFromProcStat(string! stat) -> int static Microsoft.Testing.Extensions.Diagnostics.MiniDumpWriteDump.CollectDumpUsingMiniDumpWriteDump(int pid, string! outputFile, Microsoft.Testing.Extensions.Diagnostics.MiniDumpWriteDump.MiniDumpTypeOption type) -> void static Microsoft.Testing.Extensions.HangDump.Serializers.ActivitySignalRequest.Instance.get -> Microsoft.Testing.Extensions.HangDump.Serializers.ActivitySignalRequest! +static Microsoft.Testing.Extensions.NamedPipeServerFactory.CreateAndBind(Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.IServiceProvider! serviceProvider, System.Threading.CancellationToken cancellationToken) -> Microsoft.Testing.Platform.IPC.NamedPipeServer! +static Microsoft.Testing.Extensions.NamedPipeServerFactory.CreateEndpoint() -> Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! static Microsoft.Testing.Platform.Helpers.ApplicationStateGuard.Ensure(bool condition, string! errorMessage) -> void static Microsoft.Testing.Platform.Helpers.ApplicationStateGuard.Ensure(bool condition, string? path = null, int line = 0) -> void static Microsoft.Testing.Platform.Helpers.ApplicationStateGuard.Unreachable(string? path = null, int line = 0) -> System.Diagnostics.UnreachableException! +static Microsoft.Testing.Platform.Helpers.DeadlineHelper.GetDumpMargin(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> System.TimeSpan +static Microsoft.Testing.Platform.Helpers.DeadlineHelper.GetStopMargin(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> System.TimeSpan +static Microsoft.Testing.Platform.Helpers.DeadlineHelper.GetTimerDueTime(System.DateTimeOffset deadline, System.DateTimeOffset now) -> System.TimeSpan +static Microsoft.Testing.Platform.Helpers.DeadlineHelper.SubtractSaturating(System.DateTimeOffset instant, System.TimeSpan margin) -> System.DateTimeOffset +static Microsoft.Testing.Platform.Helpers.DeadlineHelper.TryGetDeadline(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, out System.DateTimeOffset deadlineUtc) -> bool static Microsoft.Testing.Platform.Helpers.TimeoutHelper.DefaultHangTimeoutSeconds.get -> double static Microsoft.Testing.Platform.Helpers.TimeoutHelper.DefaultHangTimeSpanTimeout.get -> System.TimeSpan static Microsoft.Testing.Platform.Helpers.TimeSpanParser.Parse(string? time, Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit defaultUnit) -> System.TimeSpan @@ -354,20 +388,26 @@ static Microsoft.Testing.Platform.Helpers.TimeSpanParser.ParseRequireSuffix(stri static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParse(string? time, Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit defaultUnit, out System.TimeSpan result) -> bool static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParse(string? time, out System.TimeSpan result) -> bool static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParseRequireSuffix(string? time, out System.TimeSpan result) -> bool +static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsureDirectoryIsWritable(string! directory) -> void +static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsurePathLengthWithinLimit(string! path) -> void static Microsoft.Testing.Platform.IPC.NamedPipeServer.GetPipeName(string! name) -> Microsoft.Testing.Platform.IPC.PipeNameDescription! +static Microsoft.Testing.Platform.IPC.NamedPipeServer.ResolvePipeDirectory(string? overrideDirectory, string? tempPath) -> (string! Directory, bool IsExplicitOverride) static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.DebugAssert(bool condition, string! message) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.IsNullOrEmpty(T[]? list) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadBool(System.IO.Stream! stream) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadByte(System.IO.Stream! stream) -> byte +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadFields(System.IO.Stream! stream, System.Func! tryReadField) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadInt(System.IO.Stream! stream) -> int static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadLong(System.IO.Stream! stream) -> long static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadString(System.IO.Stream! stream) -> string! static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadStringValue(System.IO.Stream! stream, int size) -> string! static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadUShort(System.IO.Stream! stream) -> ushort static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.SetPosition(System.IO.Stream! stream, long position) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.TryReadExecutionScopedField(System.IO.Stream! stream, ushort fieldId, int fieldSize, ref string? executionId, ref string? instanceId) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteAtPosition(System.IO.Stream! stream, int value, long position) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteBool(System.IO.Stream! stream, bool value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteByte(System.IO.Stream! stream, byte value) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteExecutionScopedHeader(System.IO.Stream! stream, string? executionId, string? instanceId, ushort payloadFieldCount) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, byte? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, string? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, bool? value) -> void @@ -376,6 +416,7 @@ static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(Syst static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, long? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, string? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteInt(System.IO.Stream! stream, int value) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteListPayload(System.IO.Stream! stream, ushort fieldId, T[]? list, System.Action! writeItem) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteLong(System.IO.Stream! stream, long value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteSize(System.IO.Stream! stream) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteString(System.IO.Stream! stream, string! str) -> void @@ -386,10 +427,13 @@ static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetShortTar static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetTargetPlatformName(System.Reflection.Assembly? entryAssembly) -> string? static Microsoft.Testing.Platform.Resources.PlatformResources.GetResourceString(string! resourceKey) -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.InternalLoopAsyncDidNotExitSuccessfullyErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.ResourceManager.get -> System.Resources.ResourceManager! static Microsoft.Testing.Platform.RoslynString.IsNullOrEmpty(string? value) -> bool static Microsoft.Testing.Platform.RoslynString.IsNullOrWhiteSpace(string? value) -> bool static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.GetStandardReplacements(string! processName, string! processId, System.DateTimeOffset timestamp) -> System.Collections.Generic.Dictionary! +static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveTemplate(string! template, System.Collections.Generic.IDictionary? replacements = null) -> string! static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsBrowser() -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Unshipped.txt index be11a2df78..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Unshipped.txt @@ -1,55 +1 @@ #nullable enable -Microsoft.Testing.Extensions.NamedPipeServerFactory -static Microsoft.Testing.Extensions.NamedPipeServerFactory.CreateAndBind(Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.IServiceProvider! serviceProvider, System.Threading.CancellationToken cancellationToken) -> Microsoft.Testing.Platform.IPC.NamedPipeServer! -static Microsoft.Testing.Extensions.NamedPipeServerFactory.CreateEndpoint() -> Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! -Microsoft.Testing.Extensions.Diagnostics.HangDumpEnvironmentVariableProvider.HangDumpEnvironmentVariableProvider(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint) -> void -Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.HangDumpProcessLifetimeHandler(Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IProcessHandler! processHandler, Microsoft.Testing.Platform.Helpers.IClock! clock, System.IServiceProvider! serviceProvider) -> void -Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.PipeNameEnvironmentVariableProviderBase(Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint, string! environmentVariableName) -> void -*REMOVED*Microsoft.Testing.Extensions.Diagnostics.HangDumpEnvironmentVariableProvider.HangDumpEnvironmentVariableProvider(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, string! pipeName) -> void -*REMOVED*Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.HangDumpProcessLifetimeHandler(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IProcessHandler! processHandler, Microsoft.Testing.Platform.Helpers.IClock! clock) -> void -*REMOVED*Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.PipeNameEnvironmentVariableProviderBase(string! pipeName, string! environmentVariableName) -> void -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER = "TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER" -> string! -const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.InputArtifactPaths = 8 -> ushort -const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Kind = 7 -> ushort -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string! -const Microsoft.Testing.Platform.IPC.NamedPipeServer.MaxUnixDomainSocketPathLengthInBytes = 103 -> int -static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsureDirectoryIsWritable(string! directory) -> void -static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsurePathLengthWithinLimit(string! path) -> void -static Microsoft.Testing.Platform.IPC.NamedPipeServer.ResolvePipeDirectory(string? overrideDirectory, string? tempPath) -> (string! Directory, bool IsExplicitOverride) -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! -Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode -Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode -static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadFields(System.IO.Stream! stream, System.Func! tryReadField) -> void -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.TryReadExecutionScopedField(System.IO.Stream! stream, ushort fieldId, int fieldSize, ref string? executionId, ref string? instanceId) -> bool -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteExecutionScopedHeader(System.IO.Stream! stream, string? executionId, string? instanceId, ushort payloadFieldCount) -> void -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteListPayload(System.IO.Stream! stream, ushort fieldId, T[]? list, System.Action! writeItem) -> void -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Expected = 10 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Actual = 11 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.RetryAttemptNumber = 12 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.IsSuperseded = 13 -> ushort -const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.RetryAttemptNumber = 9 -> ushort -const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.IsSuperseded = 10 -> ushort -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Stream! stream, System.Threading.CancellationToken cancellationToken, int maximumFrameSize = 2147483647) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Stream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Pipes.PipeStream! stream, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Pipes.PipeStream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void -Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! -Microsoft.Testing.Platform.Helpers.DeadlineHelper -static Microsoft.Testing.Platform.Helpers.DeadlineHelper.TryGetDeadline(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, out System.DateTimeOffset deadlineUtc) -> bool -static Microsoft.Testing.Platform.Helpers.DeadlineHelper.GetStopMargin(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> System.TimeSpan -static Microsoft.Testing.Platform.Helpers.DeadlineHelper.GetDumpMargin(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> System.TimeSpan -static Microsoft.Testing.Platform.Helpers.DeadlineHelper.GetTimerDueTime(System.DateTimeOffset deadline, System.DateTimeOffset now) -> System.TimeSpan -static Microsoft.Testing.Platform.Helpers.DeadlineHelper.SubtractSaturating(System.DateTimeOffset instant, System.TimeSpan margin) -> System.DateTimeOffset -static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.GetProcessTreeWithTimeoutAsync(System.Func!>!>! getProcessTreeAsync, System.TimeSpan timeout, System.Func! logFailureAsync, Microsoft.Testing.Platform.Helpers.IProcess! rootProcess, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!>! -static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.EnsureProcessIdPlaceholder(string! pattern) -> string! -static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.GetDumpFileNamePattern(string? configuredPattern, string! processName, int processId, int rootProcessId) -> string! -static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.TryGetProcessById(Microsoft.Testing.Platform.Helpers.IProcessHandler! processHandler, int processId) -> Microsoft.Testing.Platform.Helpers.IProcess? -static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.QueryOnceAndDumpTreeAsync(System.Collections.Generic.IEnumerable! bottomUpTree, Microsoft.Testing.Platform.Helpers.ITask! task, System.Func!>! queryInProgressTestsAsync, System.Func! dumpProcessAsync, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.QueryInProgressTestsWithTimeoutAsync(System.Func!>! requestInProgressTestsAsync, System.TimeSpan timeout, System.Func! logFailureAsync, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task<(string!, int)[]!>! -static Microsoft.Testing.Extensions.Diagnostics.HangDumpProcessLifetimeHandler.RunBestEffortDiagnosticAsync(System.Func! diagnosticAsync, System.TimeSpan timeout) -> System.Threading.Tasks.Task! diff --git a/src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Shipped.txt index 052fb46c0c..ec7c693953 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Shipped.txt @@ -3,6 +3,9 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_CLI const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORY = "DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORY" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_NOLOGO = "DOTNET_NOLOGO" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_WATCH = "DOTNET_WATCH" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT = "TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC = "TESTINGPLATFORM_DIAGNOSTIC" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX = "TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX" -> string! @@ -11,6 +14,7 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX = "TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE = "TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY = "TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER = "TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_EXECUTIONID = "TESTINGPLATFORM_DOTNETTEST_EXECUTIONID" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION = "TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_EXITCODE_IGNORE = "TESTINGPLATFORM_EXITCODE_IGNORE" -> string! @@ -18,6 +22,7 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER = "TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_MESSAGEBUS_DRAINDATA_ATTEMPTS = "TESTINGPLATFORM_MESSAGEBUS_DRAINDATA_ATTEMPTS" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_NOBANNER = "TESTINGPLATFORM_NOBANNER" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TELEMETRY_OPTOUT = "TESTINGPLATFORM_TELEMETRY_OPTOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID = "TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID = "TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID" -> string! @@ -38,6 +43,7 @@ override Microsoft.Testing.Extensions.Hosting.HotReloadTestHostTestFrameworkInvo Polyfills.Polyfill Polyfills.Polyfill.extension(System.OperatingSystem) static Microsoft.Testing.Extensions.Hosting.HotReloadHandler.ClearCache(System.Type![]? _) -> void +static Microsoft.Testing.Extensions.Hosting.HotReloadHandler.RequestShutdown() -> void static Microsoft.Testing.Extensions.Hosting.HotReloadHandler.UpdateApplication(System.Type![]? _) -> void static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsBrowser() -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Unshipped.txt index 05d83a45d0..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Unshipped.txt @@ -1,7 +1 @@ #nullable enable -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER = "TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! -static Microsoft.Testing.Extensions.Hosting.HotReloadHandler.RequestShutdown() -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/InternalAPI/InternalAPI.Shipped.txt index 7d8f395fd3..423cd447f6 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/InternalAPI/InternalAPI.Shipped.txt @@ -15,6 +15,7 @@ abstract Microsoft.Testing.Extensions.ReportGeneratorBase.GetGenerationLogMessage(int testResultCount) -> string! abstract Microsoft.Testing.Extensions.ReportGeneratorBase.TryCapture(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage! update) -> TCapturedTestResult? abstract Microsoft.Testing.Extensions.ReportGeneratorBase.Uid.get -> string! +const Microsoft.Testing.Extensions.HtmlReport.HtmlReportGenerator.HtmlArtifactKind = "microsoft.testing.html" -> string! const Microsoft.Testing.Extensions.HtmlReport.HtmlReportGeneratorCommandLine.HtmlReportFileNameOptionName = "report-html-filename" -> string! const Microsoft.Testing.Extensions.HtmlReport.HtmlReportGeneratorCommandLine.HtmlReportOptionName = "report-html" -> string! const Microsoft.Testing.Extensions.TestResultCaptureHelper.MaxIdentityFieldLength = 4096 -> int @@ -24,6 +25,7 @@ const Microsoft.Testing.Extensions.TestResultCaptureHelper.MaxStandardStreamLeng const Microsoft.Testing.Extensions.TestResultCaptureHelper.MaxTraitFieldLength = 1024 -> int Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void +Microsoft.Testing.Extensions.ArtifactPostProcessingHelper Microsoft.Testing.Extensions.CapturedExceptionDetails Microsoft.Testing.Extensions.CapturedExceptionDetails.CapturedExceptionDetails() -> void Microsoft.Testing.Extensions.CapturedExceptionDetails.CapturedExceptionDetails(string? ErrorMessage, string? StackTrace, string? ExceptionType) -> void @@ -100,8 +102,27 @@ Microsoft.Testing.Extensions.CapturedTestResultProperties.Traits.get -> System.C Microsoft.Testing.Extensions.CapturedTestResultProperties.Traits.init -> void Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult.CapturedTestResult() -> void +Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult.IsSupersededRetryAttempt.get -> bool? +Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult.IsSupersededRetryAttempt.init -> void Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult.Outcome.get -> string! Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult.Outcome.init -> void +Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult.RetryAttemptNumber.get -> int? +Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult.RetryAttemptNumber.init -> void +Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor +Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.Description.get -> string! +Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.DisplayName.get -> string! +Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.HtmlArtifactPostProcessor() -> void +Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.ProcessAsync(System.Collections.Generic.IReadOnlyList! inputs, string! outputDirectory, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.SupportedFileExtensionsFallback.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.SupportedKinds.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.SupportedModes.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.SupportsTruncatedRuns.get -> bool +Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.Uid.get -> string! +Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.Version.get -> string! +Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode +Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode.CollapseRetryAttempts = 1 -> Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode +Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode.Concatenate = 0 -> Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode Microsoft.Testing.Extensions.HtmlReport.HtmlReportEngine Microsoft.Testing.Extensions.HtmlReport.HtmlReportEngine.GenerateReportAsync(Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult![]! results) -> System.Threading.Tasks.Task<(string! FileName, string? Warning)>! Microsoft.Testing.Extensions.HtmlReport.HtmlReportEngine.HtmlReportEngine(Microsoft.Testing.Extensions.ReportEngineContext context) -> void @@ -109,7 +130,9 @@ Microsoft.Testing.Extensions.HtmlReport.HtmlReportGenerator Microsoft.Testing.Extensions.HtmlReport.HtmlReportGenerator.HtmlReportGenerator(System.IServiceProvider! serviceProvider) -> void Microsoft.Testing.Extensions.HtmlReport.HtmlReportGeneratorCommandLine Microsoft.Testing.Extensions.HtmlReport.HtmlReportGeneratorCommandLine.HtmlReportGeneratorCommandLine() -> void +Microsoft.Testing.Extensions.HtmlReport.HtmlReportMerger Microsoft.Testing.Extensions.HtmlReport.TestResultCapture +Microsoft.Testing.Extensions.MergeOutputFileHelper Microsoft.Testing.Extensions.ReportEngineBase Microsoft.Testing.Extensions.ReportEngineBase.BuildDefaultFileName(string! extension) -> string! Microsoft.Testing.Extensions.ReportEngineBase.ReportEngineBase(Microsoft.Testing.Extensions.ReportEngineContext context) -> void @@ -171,6 +194,7 @@ Microsoft.Testing.Extensions.TestResultCaptureHelper Microsoft.Testing.Platform.Helpers.ApplicationStateGuard Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.AtLeastOneTestFailed = 2 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.DependentProcessExited = 11 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.GenericFailure = 1 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.IncompatibleProtocolVersion = 12 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -179,6 +203,7 @@ Microsoft.Testing.Platform.Helpers.ExitCode.InvalidPlatformSetup = 4 -> Microsof Microsoft.Testing.Platform.Helpers.ExitCode.MinimumExpectedTestsPolicyViolation = 9 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.Success = 0 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestAdapterTestSessionFailure = 10 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedForMaxFailedTests = 13 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestHostProcessExitedNonGracefully = 7 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestSessionAborted = 3 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -208,13 +233,24 @@ readonly Microsoft.Testing.Extensions.ReportEngineBase._fileSystem -> Microsoft. readonly Microsoft.Testing.Extensions.ReportEngineBase._testApplicationModuleInfo -> Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! readonly Microsoft.Testing.Extensions.ReportEngineBase._testFramework -> Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! readonly Microsoft.Testing.Extensions.ReportEngineBase._testStartTime -> System.DateTimeOffset +static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.IsReparsePoint(string! path) -> bool +static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.OrderInputs(System.Collections.Generic.IEnumerable! inputs, bool includeModuleMetadata) -> System.Linq.IOrderedEnumerable! static Microsoft.Testing.Extensions.CapturedExceptionDetails.operator !=(Microsoft.Testing.Extensions.CapturedExceptionDetails left, Microsoft.Testing.Extensions.CapturedExceptionDetails right) -> bool static Microsoft.Testing.Extensions.CapturedExceptionDetails.operator ==(Microsoft.Testing.Extensions.CapturedExceptionDetails left, Microsoft.Testing.Extensions.CapturedExceptionDetails right) -> bool static Microsoft.Testing.Extensions.CapturedTestResultCoreData.operator !=(Microsoft.Testing.Extensions.CapturedTestResultCoreData left, Microsoft.Testing.Extensions.CapturedTestResultCoreData right) -> bool static Microsoft.Testing.Extensions.CapturedTestResultCoreData.operator ==(Microsoft.Testing.Extensions.CapturedTestResultCoreData left, Microsoft.Testing.Extensions.CapturedTestResultCoreData right) -> bool static Microsoft.Testing.Extensions.CapturedTestResultProperties.operator !=(Microsoft.Testing.Extensions.CapturedTestResultProperties left, Microsoft.Testing.Extensions.CapturedTestResultProperties right) -> bool static Microsoft.Testing.Extensions.CapturedTestResultProperties.operator ==(Microsoft.Testing.Extensions.CapturedTestResultProperties left, Microsoft.Testing.Extensions.CapturedTestResultProperties right) -> bool +static Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.CreateMergeId(System.Collections.Generic.IReadOnlyList! inputs) -> string! +static Microsoft.Testing.Extensions.HtmlReport.HtmlReportEngine.ExtractReportJson(string! html) -> string! +static Microsoft.Testing.Extensions.HtmlReport.HtmlReportEngine.RenderReport(string! json) -> string! +static Microsoft.Testing.Extensions.HtmlReport.HtmlReportMerger.Merge(System.Collections.Generic.IReadOnlyList! inputReports, Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode mode) -> string! +static Microsoft.Testing.Extensions.HtmlReport.HtmlReportMerger.Merge(System.Collections.Generic.IReadOnlyList! inputReports) -> string! +static Microsoft.Testing.Extensions.HtmlReport.HtmlReportMerger.MergeToFileAsync(System.Collections.Generic.IReadOnlyList! inputs, string! outputPath, Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode mode, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.HtmlReport.TestResultCapture.TryCapture(Microsoft.Testing.Platform.Extensions.Messages.TestNode! node) -> Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult? +static Microsoft.Testing.Extensions.MergeOutputFileHelper.BuildCaseFoldedProbePath(string! directory, string! probeFileName) -> string! +static Microsoft.Testing.Extensions.MergeOutputFileHelper.EnsureOutputDoesNotAliasInput(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath) -> void +static Microsoft.Testing.Extensions.MergeOutputFileHelper.WriteViaTemporarySiblingAsync(string! outputPath, System.Func! writeToTempAsync) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.ReportEngineBase.BuildDefaultFileName(string! testApplicationModule, string! extension) -> string! static Microsoft.Testing.Extensions.ReportEngineBase.GetProvidedFileName(string![]? providedFileName) -> string! static Microsoft.Testing.Extensions.ReportEngineBase.ReplaceInvalidFileNameChars(string! fileName) -> string! @@ -242,10 +278,13 @@ static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetShortTar static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetTargetPlatformName(System.Reflection.Assembly? entryAssembly) -> string? static Microsoft.Testing.Platform.Resources.PlatformResources.GetResourceString(string! resourceKey) -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.InternalLoopAsyncDidNotExitSuccessfullyErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.ResourceManager.get -> System.Resources.ResourceManager! static Microsoft.Testing.Platform.RoslynString.IsNullOrEmpty(string? value) -> bool static Microsoft.Testing.Platform.RoslynString.IsNullOrWhiteSpace(string? value) -> bool static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.GetStandardReplacements(string! processName, string! processId, System.DateTimeOffset timestamp) -> System.Collections.Generic.Dictionary! +static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveTemplate(string! template, System.Collections.Generic.IDictionary? replacements = null) -> string! static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsBrowser() -> bool @@ -261,4 +300,5 @@ static System.Numerics.Hashing.HashHelpers.Combine(int h1, int h2) -> int System.Numerics.Hashing.HashHelpers System.Runtime.CompilerServices.CompilerLoweringPreserveAttribute System.Runtime.CompilerServices.CompilerLoweringPreserveAttribute.CompilerLoweringPreserveAttribute() -> void +virtual Microsoft.Testing.Extensions.ReportGeneratorBase.ArtifactKind.get -> string? virtual Microsoft.Testing.Extensions.ReportGeneratorBase.OnTestNodeUpdate(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage! update) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/InternalAPI/InternalAPI.Unshipped.txt index cc35e166d4..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/InternalAPI/InternalAPI.Unshipped.txt @@ -1,41 +1 @@ #nullable enable -const Microsoft.Testing.Extensions.HtmlReport.HtmlReportGenerator.HtmlArtifactKind = "microsoft.testing.html" -> string! -Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult.IsSupersededRetryAttempt.get -> bool? -Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult.IsSupersededRetryAttempt.init -> void -Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult.RetryAttemptNumber.get -> int? -Microsoft.Testing.Extensions.HtmlReport.CapturedTestResult.RetryAttemptNumber.init -> void -Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor -Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.Description.get -> string! -Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.DisplayName.get -> string! -Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.HtmlArtifactPostProcessor() -> void -Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.ProcessAsync(System.Collections.Generic.IReadOnlyList! inputs, string! outputDirectory, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.SupportedModes.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.SupportedFileExtensionsFallback.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.SupportedKinds.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.SupportsTruncatedRuns.get -> bool -Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.Uid.get -> string! -Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.Version.get -> string! -static Microsoft.Testing.Extensions.HtmlReport.HtmlArtifactPostProcessor.CreateMergeId(System.Collections.Generic.IReadOnlyList! inputs) -> string! -static Microsoft.Testing.Extensions.HtmlReport.HtmlReportEngine.ExtractReportJson(string! html) -> string! -static Microsoft.Testing.Extensions.HtmlReport.HtmlReportEngine.RenderReport(string! json) -> string! -Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode -Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode.CollapseRetryAttempts = 1 -> Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode -Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode.Concatenate = 0 -> Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode -Microsoft.Testing.Extensions.HtmlReport.HtmlReportMerger -static Microsoft.Testing.Extensions.HtmlReport.HtmlReportMerger.Merge(System.Collections.Generic.IReadOnlyList! inputReports) -> string! -static Microsoft.Testing.Extensions.HtmlReport.HtmlReportMerger.Merge(System.Collections.Generic.IReadOnlyList! inputReports, Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode mode) -> string! -static Microsoft.Testing.Extensions.HtmlReport.HtmlReportMerger.MergeToFileAsync(System.Collections.Generic.IReadOnlyList! inputs, string! outputPath, Microsoft.Testing.Extensions.HtmlReport.HtmlMergeMode mode, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.MergeOutputFileHelper -static Microsoft.Testing.Extensions.MergeOutputFileHelper.BuildCaseFoldedProbePath(string! directory, string! probeFileName) -> string! -static Microsoft.Testing.Extensions.MergeOutputFileHelper.EnsureOutputDoesNotAliasInput(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath) -> void -static Microsoft.Testing.Extensions.MergeOutputFileHelper.WriteViaTemporarySiblingAsync(string! outputPath, System.Func! writeToTempAsync) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.ArtifactPostProcessingHelper -static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.IsReparsePoint(string! path) -> bool -static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.OrderInputs(System.Collections.Generic.IEnumerable! inputs, bool includeModuleMetadata) -> System.Linq.IOrderedEnumerable! -virtual Microsoft.Testing.Extensions.ReportGeneratorBase.ArtifactKind.get -> string? -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! -Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode -Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode -static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/InternalAPI/InternalAPI.Shipped.txt index f96d6b5436..38c1347fce 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/InternalAPI/InternalAPI.Shipped.txt @@ -18,6 +18,7 @@ abstract Microsoft.Testing.Extensions.ReportGeneratorBase.TryCapture(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage! update) -> TCapturedTestResult? abstract Microsoft.Testing.Extensions.ReportGeneratorBase.Uid.get -> string! const Microsoft.Testing.Extensions.JUnitReport.JUnitReportEngine.MaxTestPathLength = 65536 -> int +const Microsoft.Testing.Extensions.JUnitReport.JUnitReportGenerator.JUnitArtifactKind = "microsoft.testing.junit" -> string! const Microsoft.Testing.Extensions.JUnitReport.JUnitReportGeneratorCommandLine.JUnitReportFileNameOptionName = "report-junit-filename" -> string! const Microsoft.Testing.Extensions.JUnitReport.JUnitReportGeneratorCommandLine.JUnitReportOptionName = "report-junit" -> string! const Microsoft.Testing.Extensions.TestResultCaptureHelper.MaxIdentityFieldLength = 4096 -> int @@ -27,6 +28,7 @@ const Microsoft.Testing.Extensions.TestResultCaptureHelper.MaxStandardStreamLeng const Microsoft.Testing.Extensions.TestResultCaptureHelper.MaxTraitFieldLength = 1024 -> int Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void +Microsoft.Testing.Extensions.ArtifactPostProcessingHelper Microsoft.Testing.Extensions.CapturedExceptionDetails Microsoft.Testing.Extensions.CapturedExceptionDetails.CapturedExceptionDetails() -> void Microsoft.Testing.Extensions.CapturedExceptionDetails.CapturedExceptionDetails(string? ErrorMessage, string? StackTrace, string? ExceptionType) -> void @@ -109,6 +111,21 @@ Microsoft.Testing.Extensions.JUnitReport.CapturedTestResult.ParentRawUid.get -> Microsoft.Testing.Extensions.JUnitReport.CapturedTestResult.ParentRawUid.init -> void Microsoft.Testing.Extensions.JUnitReport.CapturedTestResult.RawUid.get -> string! Microsoft.Testing.Extensions.JUnitReport.CapturedTestResult.RawUid.init -> void +Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor +Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.Description.get -> string! +Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.DisplayName.get -> string! +Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.JUnitArtifactPostProcessor() -> void +Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.ProcessAsync(System.Collections.Generic.IReadOnlyList! inputs, string! outputDirectory, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.SupportedFileExtensionsFallback.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.SupportedKinds.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.SupportedModes.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.SupportsTruncatedRuns.get -> bool +Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.Uid.get -> string! +Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.Version.get -> string! +Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode +Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode.CollapseRetryAttempts = 1 -> Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode +Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode.Concatenate = 0 -> Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode Microsoft.Testing.Extensions.JUnitReport.JUnitReportEngine Microsoft.Testing.Extensions.JUnitReport.JUnitReportEngine.GenerateReportAsync(Microsoft.Testing.Extensions.JUnitReport.CapturedTestResult![]! results, System.Collections.Generic.IReadOnlyDictionary! parentChain) -> System.Threading.Tasks.Task<(string! FileName, string? Warning)>! Microsoft.Testing.Extensions.JUnitReport.JUnitReportEngine.JUnitReportEngine(Microsoft.Testing.Extensions.ReportEngineContext context) -> void @@ -116,6 +133,7 @@ Microsoft.Testing.Extensions.JUnitReport.JUnitReportGenerator Microsoft.Testing.Extensions.JUnitReport.JUnitReportGenerator.JUnitReportGenerator(System.IServiceProvider! serviceProvider) -> void Microsoft.Testing.Extensions.JUnitReport.JUnitReportGeneratorCommandLine Microsoft.Testing.Extensions.JUnitReport.JUnitReportGeneratorCommandLine.JUnitReportGeneratorCommandLine() -> void +Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger Microsoft.Testing.Extensions.JUnitReport.JUnitSuiteBuilder Microsoft.Testing.Extensions.JUnitReport.JUnitSuiteBuilder.BuildSuites(Microsoft.Testing.Extensions.JUnitReport.CapturedTestResult![]! results, System.Collections.Generic.IReadOnlyDictionary! parentChain, System.DateTimeOffset finishTime) -> Microsoft.Testing.Extensions.JUnitReport.SuiteSet! Microsoft.Testing.Extensions.JUnitReport.JUnitSuiteBuilder.JUnitSuiteBuilder(Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, System.DateTimeOffset testStartTime) -> void @@ -182,6 +200,7 @@ Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.ParentChainEntry.Pare Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.ParentChainEntry.ParentChainEntry(string! DisplayName, string? ParentRawUid) -> void Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.ParentChainEntry.ParentRawUid.get -> string? Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.ParentChainEntry.ParentRawUid.init -> void +Microsoft.Testing.Extensions.MergeOutputFileHelper Microsoft.Testing.Extensions.ReportEngineBase Microsoft.Testing.Extensions.ReportEngineBase.BuildDefaultFileName(string! extension) -> string! Microsoft.Testing.Extensions.ReportEngineBase.ReportEngineBase(Microsoft.Testing.Extensions.ReportEngineContext context) -> void @@ -243,6 +262,7 @@ Microsoft.Testing.Extensions.TestResultCaptureHelper Microsoft.Testing.Platform.Helpers.ApplicationStateGuard Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.AtLeastOneTestFailed = 2 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.DependentProcessExited = 11 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.GenericFailure = 1 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.IncompatibleProtocolVersion = 12 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -251,6 +271,7 @@ Microsoft.Testing.Platform.Helpers.ExitCode.InvalidPlatformSetup = 4 -> Microsof Microsoft.Testing.Platform.Helpers.ExitCode.MinimumExpectedTestsPolicyViolation = 9 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.Success = 0 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestAdapterTestSessionFailure = 10 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedForMaxFailedTests = 13 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestHostProcessExitedNonGracefully = 7 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestSessionAborted = 3 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -281,18 +302,29 @@ readonly Microsoft.Testing.Extensions.ReportEngineBase._fileSystem -> Microsoft. readonly Microsoft.Testing.Extensions.ReportEngineBase._testApplicationModuleInfo -> Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! readonly Microsoft.Testing.Extensions.ReportEngineBase._testFramework -> Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! readonly Microsoft.Testing.Extensions.ReportEngineBase._testStartTime -> System.DateTimeOffset +static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.IsReparsePoint(string! path) -> bool +static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.OrderInputs(System.Collections.Generic.IEnumerable! inputs, bool includeModuleMetadata) -> System.Linq.IOrderedEnumerable! static Microsoft.Testing.Extensions.CapturedExceptionDetails.operator !=(Microsoft.Testing.Extensions.CapturedExceptionDetails left, Microsoft.Testing.Extensions.CapturedExceptionDetails right) -> bool static Microsoft.Testing.Extensions.CapturedExceptionDetails.operator ==(Microsoft.Testing.Extensions.CapturedExceptionDetails left, Microsoft.Testing.Extensions.CapturedExceptionDetails right) -> bool static Microsoft.Testing.Extensions.CapturedTestResultCoreData.operator !=(Microsoft.Testing.Extensions.CapturedTestResultCoreData left, Microsoft.Testing.Extensions.CapturedTestResultCoreData right) -> bool static Microsoft.Testing.Extensions.CapturedTestResultCoreData.operator ==(Microsoft.Testing.Extensions.CapturedTestResultCoreData left, Microsoft.Testing.Extensions.CapturedTestResultCoreData right) -> bool static Microsoft.Testing.Extensions.CapturedTestResultProperties.operator !=(Microsoft.Testing.Extensions.CapturedTestResultProperties left, Microsoft.Testing.Extensions.CapturedTestResultProperties right) -> bool static Microsoft.Testing.Extensions.CapturedTestResultProperties.operator ==(Microsoft.Testing.Extensions.CapturedTestResultProperties left, Microsoft.Testing.Extensions.CapturedTestResultProperties right) -> bool +static Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.CreateMergeId(System.Collections.Generic.IReadOnlyList! inputs) -> string! static Microsoft.Testing.Extensions.JUnitReport.JUnitReportEngine.XmlSafeText(string? value) -> string! +static Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger.Merge(System.Collections.Generic.IReadOnlyList! inputReports, string! reportName, Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode mode) -> System.Xml.Linq.XDocument! +static Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger.Merge(System.Collections.Generic.IReadOnlyList! inputReports, string! reportName) -> System.Xml.Linq.XDocument! +static Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger.MergeToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, string! reportName, Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode mode, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger.MergeToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, string! reportName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Extensions.JUnitReport.JUnitXmlWriter.BuildFailureBody(Microsoft.Testing.Extensions.JUnitReport.CapturedTestResult! result) -> string? static Microsoft.Testing.Extensions.JUnitReport.JUnitXmlWriter.XmlSafeText(string? value) -> string! static Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.GetParentChainEntry(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage! update) -> Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.ParentChainEntry static Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.ParentChainEntry.operator !=(Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.ParentChainEntry left, Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.ParentChainEntry right) -> bool static Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.ParentChainEntry.operator ==(Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.ParentChainEntry left, Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.ParentChainEntry right) -> bool static Microsoft.Testing.Extensions.JUnitReport.TestResultCapture.TryCapture(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage! update) -> Microsoft.Testing.Extensions.JUnitReport.CapturedTestResult? +static Microsoft.Testing.Extensions.MergeOutputFileHelper.BuildCaseFoldedProbePath(string! directory, string! probeFileName) -> string! +static Microsoft.Testing.Extensions.MergeOutputFileHelper.EnsureOutputDoesNotAliasInput(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath) -> void +static Microsoft.Testing.Extensions.MergeOutputFileHelper.WriteViaTemporarySiblingAsync(string! outputPath, System.Func! writeToTempAsync) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.ReportEngineBase.BuildDefaultFileName(string! testApplicationModule, string! extension) -> string! static Microsoft.Testing.Extensions.ReportEngineBase.GetProvidedFileName(string![]? providedFileName) -> string! static Microsoft.Testing.Extensions.ReportEngineBase.ReplaceInvalidFileNameChars(string! fileName) -> string! @@ -320,10 +352,13 @@ static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetShortTar static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetTargetPlatformName(System.Reflection.Assembly? entryAssembly) -> string? static Microsoft.Testing.Platform.Resources.PlatformResources.GetResourceString(string! resourceKey) -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.InternalLoopAsyncDidNotExitSuccessfullyErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.ResourceManager.get -> System.Resources.ResourceManager! static Microsoft.Testing.Platform.RoslynString.IsNullOrEmpty(string? value) -> bool static Microsoft.Testing.Platform.RoslynString.IsNullOrWhiteSpace(string? value) -> bool static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.GetStandardReplacements(string! processName, string! processId, System.DateTimeOffset timestamp) -> System.Collections.Generic.Dictionary! +static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveTemplate(string! template, System.Collections.Generic.IDictionary? replacements = null) -> string! static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsBrowser() -> bool @@ -339,4 +374,5 @@ static System.Numerics.Hashing.HashHelpers.Combine(int h1, int h2) -> int System.Numerics.Hashing.HashHelpers System.Runtime.CompilerServices.CompilerLoweringPreserveAttribute System.Runtime.CompilerServices.CompilerLoweringPreserveAttribute.CompilerLoweringPreserveAttribute() -> void +virtual Microsoft.Testing.Extensions.ReportGeneratorBase.ArtifactKind.get -> string? virtual Microsoft.Testing.Extensions.ReportGeneratorBase.OnTestNodeUpdate(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage! update) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/InternalAPI/InternalAPI.Unshipped.txt index d48d8bd49c..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/InternalAPI/InternalAPI.Unshipped.txt @@ -1,37 +1 @@ #nullable enable -const Microsoft.Testing.Extensions.JUnitReport.JUnitReportGenerator.JUnitArtifactKind = "microsoft.testing.junit" -> string! -Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor -Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.Description.get -> string! -Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.DisplayName.get -> string! -Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.JUnitArtifactPostProcessor() -> void -Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.ProcessAsync(System.Collections.Generic.IReadOnlyList! inputs, string! outputDirectory, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.SupportedModes.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.SupportsTruncatedRuns.get -> bool -Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.SupportedFileExtensionsFallback.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.SupportedKinds.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.Uid.get -> string! -Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.Version.get -> string! -static Microsoft.Testing.Extensions.JUnitReport.JUnitArtifactPostProcessor.CreateMergeId(System.Collections.Generic.IReadOnlyList! inputs) -> string! -virtual Microsoft.Testing.Extensions.ReportGeneratorBase.ArtifactKind.get -> string? -Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger -Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode -Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode.Concatenate = 0 -> Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode -Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode.CollapseRetryAttempts = 1 -> Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode -static Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger.Merge(System.Collections.Generic.IReadOnlyList! inputReports, string! reportName) -> System.Xml.Linq.XDocument! -static Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger.Merge(System.Collections.Generic.IReadOnlyList! inputReports, string! reportName, Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode mode) -> System.Xml.Linq.XDocument! -static Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger.MergeToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, string! reportName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Extensions.JUnitReport.JUnitReportMerger.MergeToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, string! reportName, Microsoft.Testing.Extensions.JUnitReport.JUnitMergeMode mode, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! -Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode -Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode -static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! -Microsoft.Testing.Extensions.MergeOutputFileHelper -static Microsoft.Testing.Extensions.MergeOutputFileHelper.BuildCaseFoldedProbePath(string! directory, string! probeFileName) -> string! -static Microsoft.Testing.Extensions.MergeOutputFileHelper.EnsureOutputDoesNotAliasInput(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath) -> void -static Microsoft.Testing.Extensions.MergeOutputFileHelper.WriteViaTemporarySiblingAsync(string! outputPath, System.Func! writeToTempAsync) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.ArtifactPostProcessingHelper -static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.IsReparsePoint(string! path) -> bool -static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.OrderInputs(System.Collections.Generic.IEnumerable! inputs, bool includeModuleMetadata) -> System.Linq.IOrderedEnumerable! -static Microsoft.Testing.Extensions.JUnitReport.JUnitXmlWriter.BuildFailureBody(Microsoft.Testing.Extensions.JUnitReport.CapturedTestResult! result) -> string? diff --git a/src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Shipped.txt index bdca6e9573..3cb68dbb27 100644 --- a/src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Shipped.txt @@ -7,6 +7,9 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_CLI const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORY = "DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORY" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_NOLOGO = "DOTNET_NOLOGO" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_WATCH = "DOTNET_WATCH" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT = "TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC = "TESTINGPLATFORM_DIAGNOSTIC" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX = "TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX" -> string! @@ -15,6 +18,7 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX = "TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE = "TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY = "TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER = "TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_EXECUTIONID = "TESTINGPLATFORM_DOTNETTEST_EXECUTIONID" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION = "TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_EXITCODE_IGNORE = "TESTINGPLATFORM_EXITCODE_IGNORE" -> string! @@ -22,6 +26,7 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER = "TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_MESSAGEBUS_DRAINDATA_ATTEMPTS = "TESTINGPLATFORM_MESSAGEBUS_DRAINDATA_ATTEMPTS" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_NOBANNER = "TESTINGPLATFORM_NOBANNER" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TELEMETRY_OPTOUT = "TESTINGPLATFORM_TELEMETRY_OPTOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID = "TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID = "TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID" -> string! @@ -62,11 +67,15 @@ const Microsoft.Testing.Platform.IPC.DisplayMessageFieldsId.Text = 4 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.ErrorMessage = 1 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.ErrorType = 2 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.StackTrace = 3 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Actual = 11 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Duration = 4 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.ErrorOutput = 8 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.ExceptionMessageList = 6 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Expected = 10 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.IsSuperseded = 13 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Reason = 5 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.RetryAttemptNumber = 12 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.SessionUid = 9 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.StandardOutput = 7 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.State = 3 -> ushort @@ -74,6 +83,8 @@ const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Uid = 1 -> const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Description = 3 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.FullPath = 1 -> ushort +const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.InputArtifactPaths = 8 -> ushort +const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Kind = 7 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.SessionUid = 6 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.TestDisplayName = 5 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.TestUid = 4 -> ushort @@ -82,12 +93,15 @@ const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.FileArtifactMe const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.InstanceId = 2 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.MessagesSerializerId = 7 -> int const Microsoft.Testing.Platform.IPC.HandshakeMessageFieldsId.MessagesSerializerId = 9 -> int +const Microsoft.Testing.Platform.IPC.NamedPipeServer.MaxUnixDomainSocketPathLengthInBytes = 103 -> int const Microsoft.Testing.Platform.IPC.ServerControlMessageFieldsId.Kind = 1 -> ushort const Microsoft.Testing.Platform.IPC.ServerControlMessageFieldsId.MessagesSerializerId = 14 -> int const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.Duration = 4 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.ErrorOutput = 7 -> ushort +const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.IsSuperseded = 10 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.Reason = 5 -> ushort +const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.RetryAttemptNumber = 9 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.SessionUid = 8 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.StandardOutput = 6 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.State = 3 -> ushort @@ -207,6 +221,7 @@ Microsoft.Testing.Platform.Helpers.ApplicationStateGuard Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.AtLeastOneTestFailed = 2 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.DependentProcessExited = 11 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.GenericFailure = 1 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.IncompatibleProtocolVersion = 12 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -215,6 +230,7 @@ Microsoft.Testing.Platform.Helpers.ExitCode.InvalidPlatformSetup = 4 -> Microsof Microsoft.Testing.Platform.Helpers.ExitCode.MinimumExpectedTestsPolicyViolation = 9 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.Success = 0 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestAdapterTestSessionFailure = 10 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedForMaxFailedTests = 13 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestHostProcessExitedNonGracefully = 7 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestSessionAborted = 3 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -270,13 +286,15 @@ Microsoft.Testing.Platform.IPC.NamedPipeClient.RequestReplyAsync void Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.NamedPipeConnectionBase() -> void -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Pipes.PipeStream! stream, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Pipes.PipeStream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Stream! stream, System.Threading.CancellationToken cancellationToken, int maximumFrameSize = 2147483647) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Stream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.IPC.NamedPipeServer Microsoft.Testing.Platform.IPC.NamedPipeServer.Dispose() -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.DisposeAsync() -> System.Threading.Tasks.ValueTask +Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken) -> void +Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.PipeName.get -> Microsoft.Testing.Platform.IPC.PipeNameDescription! Microsoft.Testing.Platform.IPC.NamedPipeServer.WaitConnectionAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! @@ -337,20 +355,26 @@ static Microsoft.Testing.Platform.Helpers.TimeSpanParser.ParseRequireSuffix(stri static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParse(string? time, Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit defaultUnit, out System.TimeSpan result) -> bool static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParse(string? time, out System.TimeSpan result) -> bool static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParseRequireSuffix(string? time, out System.TimeSpan result) -> bool +static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsureDirectoryIsWritable(string! directory) -> void +static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsurePathLengthWithinLimit(string! path) -> void static Microsoft.Testing.Platform.IPC.NamedPipeServer.GetPipeName(string! name) -> Microsoft.Testing.Platform.IPC.PipeNameDescription! +static Microsoft.Testing.Platform.IPC.NamedPipeServer.ResolvePipeDirectory(string? overrideDirectory, string? tempPath) -> (string! Directory, bool IsExplicitOverride) static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.DebugAssert(bool condition, string! message) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.IsNullOrEmpty(T[]? list) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadBool(System.IO.Stream! stream) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadByte(System.IO.Stream! stream) -> byte +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadFields(System.IO.Stream! stream, System.Func! tryReadField) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadInt(System.IO.Stream! stream) -> int static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadLong(System.IO.Stream! stream) -> long static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadString(System.IO.Stream! stream) -> string! static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadStringValue(System.IO.Stream! stream, int size) -> string! static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadUShort(System.IO.Stream! stream) -> ushort static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.SetPosition(System.IO.Stream! stream, long position) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.TryReadExecutionScopedField(System.IO.Stream! stream, ushort fieldId, int fieldSize, ref string? executionId, ref string? instanceId) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteAtPosition(System.IO.Stream! stream, int value, long position) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteBool(System.IO.Stream! stream, bool value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteByte(System.IO.Stream! stream, byte value) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteExecutionScopedHeader(System.IO.Stream! stream, string? executionId, string? instanceId, ushort payloadFieldCount) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, byte? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, string? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, bool? value) -> void @@ -359,12 +383,15 @@ static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(Syst static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, long? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, string? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteInt(System.IO.Stream! stream, int value) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteListPayload(System.IO.Stream! stream, ushort fieldId, T[]? list, System.Action! writeItem) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteLong(System.IO.Stream! stream, long value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteSize(System.IO.Stream! stream) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteString(System.IO.Stream! stream, string! str) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteUShort(System.IO.Stream! stream, ushort value) -> void static Microsoft.Testing.Platform.Resources.PlatformResources.GetResourceString(string! resourceKey) -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.InternalLoopAsyncDidNotExitSuccessfullyErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.ResourceManager.get -> System.Resources.ResourceManager! static Microsoft.Testing.Platform.RoslynString.IsNullOrEmpty(string? value) -> bool static Microsoft.Testing.Platform.RoslynString.IsNullOrWhiteSpace(string? value) -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Unshipped.txt index 963521c88d..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Unshipped.txt @@ -1,32 +1 @@ #nullable enable -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER = "TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER" -> string! -const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.InputArtifactPaths = 8 -> ushort -const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Kind = 7 -> ushort -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string! -const Microsoft.Testing.Platform.IPC.NamedPipeServer.MaxUnixDomainSocketPathLengthInBytes = 103 -> int -static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsureDirectoryIsWritable(string! directory) -> void -static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsurePathLengthWithinLimit(string! path) -> void -static Microsoft.Testing.Platform.IPC.NamedPipeServer.ResolvePipeDirectory(string? overrideDirectory, string? tempPath) -> (string! Directory, bool IsExplicitOverride) -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! -Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode -Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadFields(System.IO.Stream! stream, System.Func! tryReadField) -> void -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.TryReadExecutionScopedField(System.IO.Stream! stream, ushort fieldId, int fieldSize, ref string? executionId, ref string? instanceId) -> bool -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteExecutionScopedHeader(System.IO.Stream! stream, string? executionId, string? instanceId, ushort payloadFieldCount) -> void -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteListPayload(System.IO.Stream! stream, ushort fieldId, T[]? list, System.Action! writeItem) -> void -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Expected = 10 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Actual = 11 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.RetryAttemptNumber = 12 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.IsSuperseded = 13 -> ushort -const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.RetryAttemptNumber = 9 -> ushort -const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.IsSuperseded = 10 -> ushort -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Stream! stream, System.Threading.CancellationToken cancellationToken, int maximumFrameSize = 2147483647) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Stream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Pipes.PipeStream! stream, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Pipes.PipeStream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void -Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! diff --git a/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/InternalAPI/InternalAPI.Shipped.txt index 1d2d6dca2b..c0b50d2a43 100644 --- a/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/InternalAPI/InternalAPI.Shipped.txt @@ -1,32 +1,80 @@ #nullable enable +abstract Microsoft.Testing.Extensions.OpenTelemetry.MeasurementWrapper.EmitCore(TValue value, System.Collections.Generic.KeyValuePair[]! tags) -> void +abstract Microsoft.Testing.Extensions.OpenTelemetry.MeasurementWrapper.EmitCore(TValue value) -> void +const Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables.ExporterOtlpEndpoint = "OTEL_EXPORTER_OTLP_ENDPOINT" -> string! +const Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables.MetricsExporter = "OTEL_METRICS_EXPORTER" -> string! +const Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables.SdkDisabled = "OTEL_SDK_DISABLED" -> string! +const Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables.ServiceName = "OTEL_SERVICE_NAME" -> string! +const Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables.TracesExporter = "OTEL_TRACES_EXPORTER" -> string! const Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.ActivitySourceName = "Microsoft.Testing.Platform" -> string! const Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.MeterName = "Microsoft.Testing.Platform" -> string! +const Microsoft.Testing.Extensions.OpenTelemetry.TestingPlatformResourceDetector.UnknownServiceName = "unknown_test_service" -> string! Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper +Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.ActivityWrapper(System.Diagnostics.Activity! activity, bool isAmbient = true) -> void Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.ActivityWrapper(System.Diagnostics.Activity! activity) -> void +Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.AddEvent(string! name, System.Collections.Generic.IEnumerable>? tags = null, System.DateTimeOffset timestamp = default(System.DateTimeOffset)) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.Dispose() -> void Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.Id.get -> string? +Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.IsRecording.get -> bool +Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.RecordException(System.Exception! exception, System.Collections.Generic.IEnumerable>? additionalTags = null) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! +Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.SetStatus(Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode statusCode, string? description = null) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.SetTag(string! key, object? value) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! +Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.SpanId.get -> string? +Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.TraceId.get -> string? Microsoft.Testing.Extensions.OpenTelemetry.CounterWrapper +Microsoft.Testing.Extensions.OpenTelemetry.CounterWrapper.Add(T delta, System.Collections.Generic.IEnumerable>? tags) -> void Microsoft.Testing.Extensions.OpenTelemetry.CounterWrapper.Add(T delta) -> void Microsoft.Testing.Extensions.OpenTelemetry.CounterWrapper.CounterWrapper(System.Diagnostics.Metrics.Counter! counter) -> void Microsoft.Testing.Extensions.OpenTelemetry.HistogramWrapper Microsoft.Testing.Extensions.OpenTelemetry.HistogramWrapper.HistogramWrapper(System.Diagnostics.Metrics.Histogram! histogram) -> void +Microsoft.Testing.Extensions.OpenTelemetry.HistogramWrapper.Record(T value, System.Collections.Generic.IEnumerable>? tags) -> void Microsoft.Testing.Extensions.OpenTelemetry.HistogramWrapper.Record(T value) -> void +Microsoft.Testing.Extensions.OpenTelemetry.MeasurementTags +Microsoft.Testing.Extensions.OpenTelemetry.MeasurementWrapper +Microsoft.Testing.Extensions.OpenTelemetry.MeasurementWrapper.Emit(TValue value, System.Collections.Generic.IEnumerable>? tags) -> void +Microsoft.Testing.Extensions.OpenTelemetry.MeasurementWrapper.Instrument.get -> TInstrument! +Microsoft.Testing.Extensions.OpenTelemetry.MeasurementWrapper.MeasurementWrapper(TInstrument! instrument) -> void +Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.CreateCounter(string! name, string? unit = null, string? description = null, System.Collections.Generic.IEnumerable>? tags = null) -> Microsoft.Testing.Platform.Telemetry.ICounter! Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.CreateHistogram(string! name, string? unit = null, string? description = null, System.Collections.Generic.IEnumerable>? tags = null) -> Microsoft.Testing.Platform.Telemetry.IHistogram! +Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.CreateObservableGauge(string! name, System.Func! observeValue, string? unit = null, string? description = null) -> void +Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.CreateUpDownCounter(string! name, string? unit = null, string? description = null, System.Collections.Generic.IEnumerable>? tags = null) -> Microsoft.Testing.Platform.Telemetry.IUpDownCounter! Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.Dispose() -> void +Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.HasCurrentActivity.get -> bool Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.OpenTelemetryPlatformService() -> void +Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.RootTraceState.get -> string? +Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.RootTraceState.set -> void Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.StartActivity(string! name = "", System.Collections.Generic.IEnumerable>? tags = null, string? parentId = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity? +Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.StartNonAmbientActivity(string! name, System.Collections.Generic.IEnumerable>? tags = null, string? parentId = null) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity? Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.TestFrameworkActivity.get -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity? Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.TestFrameworkActivity.set -> void Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryProvider Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryProvider.Dispose() -> void Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryProvider.OpenTelemetryProvider(System.Action? withTracing = null, System.Action? withMetrics = null) -> void +Microsoft.Testing.Extensions.OpenTelemetry.TestingPlatformResourceDetector +Microsoft.Testing.Extensions.OpenTelemetry.UpDownCounterWrapper +Microsoft.Testing.Extensions.OpenTelemetry.UpDownCounterWrapper.Add(T delta, System.Collections.Generic.IEnumerable>? tags = null) -> void +Microsoft.Testing.Extensions.OpenTelemetry.UpDownCounterWrapper.UpDownCounterWrapper(System.Diagnostics.Metrics.UpDownCounter! counter) -> void +Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration +Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.ConfigureMetricsProvider.get -> bool +Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.ConfigureTracingProvider.get -> bool +Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.EnvironmentConfiguration() -> void +Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.EnvironmentConfiguration(bool configureTracingProvider, bool configureMetricsProvider, bool useOtlpTracing, bool useOtlpMetrics) -> void +Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.ShouldRegisterProvider.get -> bool +Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.UseOtlpMetrics.get -> bool +Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.UseOtlpTracing.get -> bool Polyfills.Polyfill Polyfills.Polyfill.extension(System.OperatingSystem) +static Microsoft.Testing.Extensions.OpenTelemetry.MeasurementTags.ToArray(System.Collections.Generic.IEnumerable>? tags) -> System.Collections.Generic.KeyValuePair[]! +static Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables.IsNullOrWhiteSpace(string? value) -> bool +static Microsoft.Testing.Extensions.OpenTelemetry.TestingPlatformResourceDetector.GetResourceAttributes() -> System.Collections.Generic.IEnumerable>! +static Microsoft.Testing.Extensions.OpenTelemetry.TestingPlatformResourceDetector.GetServiceName() -> string! +static Microsoft.Testing.Extensions.OpenTelemetry.TestingPlatformResourceDetector.GetServiceVersion() -> string? +static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.Disabled.get -> Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration +static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.ResolveEnvironmentConfiguration(System.Func! getEnvironmentVariable, bool hasTracingDelegate, bool hasMetricsDelegate) -> Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsBrowser() -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsIOS() -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/InternalAPI/InternalAPI.Unshipped.txt index 15103eea61..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/InternalAPI/InternalAPI.Unshipped.txt @@ -1,49 +1 @@ #nullable enable -Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.AddEvent(string! name, System.Collections.Generic.IEnumerable>? tags = null, System.DateTimeOffset timestamp = default(System.DateTimeOffset)) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! -Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.IsRecording.get -> bool -Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.RecordException(System.Exception! exception, System.Collections.Generic.IEnumerable>? additionalTags = null) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! -Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.SetStatus(Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode statusCode, string? description = null) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! -Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.SpanId.get -> string? -Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.TraceId.get -> string? -Microsoft.Testing.Extensions.OpenTelemetry.CounterWrapper.Add(T delta, System.Collections.Generic.IEnumerable>? tags) -> void -Microsoft.Testing.Extensions.OpenTelemetry.HistogramWrapper.Record(T value, System.Collections.Generic.IEnumerable>? tags) -> void -Microsoft.Testing.Extensions.OpenTelemetry.MeasurementTags -Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.CreateObservableGauge(string! name, System.Func! observeValue, string? unit = null, string? description = null) -> void -Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.CreateUpDownCounter(string! name, string? unit = null, string? description = null, System.Collections.Generic.IEnumerable>? tags = null) -> Microsoft.Testing.Platform.Telemetry.IUpDownCounter! -Microsoft.Testing.Extensions.OpenTelemetry.UpDownCounterWrapper -Microsoft.Testing.Extensions.OpenTelemetry.UpDownCounterWrapper.Add(T delta, System.Collections.Generic.IEnumerable>? tags = null) -> void -Microsoft.Testing.Extensions.OpenTelemetry.UpDownCounterWrapper.UpDownCounterWrapper(System.Diagnostics.Metrics.UpDownCounter! counter) -> void -static Microsoft.Testing.Extensions.OpenTelemetry.MeasurementTags.ToArray(System.Collections.Generic.IEnumerable>? tags) -> System.Collections.Generic.KeyValuePair[]! -const Microsoft.Testing.Extensions.OpenTelemetry.TestingPlatformResourceDetector.UnknownServiceName = "unknown_test_service" -> string! -Microsoft.Testing.Extensions.OpenTelemetry.TestingPlatformResourceDetector -static Microsoft.Testing.Extensions.OpenTelemetry.TestingPlatformResourceDetector.GetResourceAttributes() -> System.Collections.Generic.IEnumerable>! -static Microsoft.Testing.Extensions.OpenTelemetry.TestingPlatformResourceDetector.GetServiceName() -> string! -static Microsoft.Testing.Extensions.OpenTelemetry.TestingPlatformResourceDetector.GetServiceVersion() -> string? -const Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables.ExporterOtlpEndpoint = "OTEL_EXPORTER_OTLP_ENDPOINT" -> string! -const Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables.MetricsExporter = "OTEL_METRICS_EXPORTER" -> string! -const Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables.SdkDisabled = "OTEL_SDK_DISABLED" -> string! -const Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables.ServiceName = "OTEL_SERVICE_NAME" -> string! -const Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables.TracesExporter = "OTEL_TRACES_EXPORTER" -> string! -Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables -static Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryEnvironmentVariables.IsNullOrWhiteSpace(string? value) -> bool -Microsoft.Testing.Extensions.OpenTelemetry.ActivityWrapper.ActivityWrapper(System.Diagnostics.Activity! activity, bool isAmbient = true) -> void -Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.HasCurrentActivity.get -> bool -Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.RootTraceState.get -> string? -Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.RootTraceState.set -> void -Microsoft.Testing.Extensions.OpenTelemetry.OpenTelemetryPlatformService.StartNonAmbientActivity(string! name, System.Collections.Generic.IEnumerable>? tags = null, string? parentId = null) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity? -Microsoft.Testing.Extensions.OpenTelemetry.MeasurementWrapper -Microsoft.Testing.Extensions.OpenTelemetry.MeasurementWrapper.Emit(TValue value, System.Collections.Generic.IEnumerable>? tags) -> void -Microsoft.Testing.Extensions.OpenTelemetry.MeasurementWrapper.Instrument.get -> TInstrument! -Microsoft.Testing.Extensions.OpenTelemetry.MeasurementWrapper.MeasurementWrapper(TInstrument! instrument) -> void -abstract Microsoft.Testing.Extensions.OpenTelemetry.MeasurementWrapper.EmitCore(TValue value) -> void -abstract Microsoft.Testing.Extensions.OpenTelemetry.MeasurementWrapper.EmitCore(TValue value, System.Collections.Generic.KeyValuePair[]! tags) -> void -Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration -Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.ConfigureMetricsProvider.get -> bool -Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.ConfigureTracingProvider.get -> bool -Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.EnvironmentConfiguration() -> void -Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.EnvironmentConfiguration(bool configureTracingProvider, bool configureMetricsProvider, bool useOtlpTracing, bool useOtlpMetrics) -> void -Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.ShouldRegisterProvider.get -> bool -Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.UseOtlpMetrics.get -> bool -Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.UseOtlpTracing.get -> bool -static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration.Disabled.get -> Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration -static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.ResolveEnvironmentConfiguration(System.Func! getEnvironmentVariable, bool hasTracingDelegate, bool hasMetricsDelegate) -> Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.EnvironmentConfiguration diff --git a/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/PublicAPI/PublicAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/PublicAPI/PublicAPI.Shipped.txt index 170637bd2a..1610b45c9e 100644 --- a/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/PublicAPI/PublicAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/PublicAPI/PublicAPI.Shipped.txt @@ -1,5 +1,7 @@ #nullable enable -[TPEXP]Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions -[TPEXP]static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddOpenTelemetryProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder, System.Action? withTracing = null, System.Action? withMetrics = null) -> void -[TPEXP]static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddTestingPlatformInstrumentation(this OpenTelemetry.Metrics.MeterProviderBuilder! builder) -> OpenTelemetry.Metrics.MeterProviderBuilder! -[TPEXP]static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddTestingPlatformInstrumentation(this OpenTelemetry.Trace.TracerProviderBuilder! builder) -> OpenTelemetry.Trace.TracerProviderBuilder! +Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions +static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddOpenTelemetryProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder, System.Action? withTracing = null, System.Action? withMetrics = null) -> void +static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddOpenTelemetryProviderFromEnvironment(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder, System.Action? configureTracing = null, System.Action? configureMetrics = null) -> void +static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddTestingPlatformInstrumentation(this OpenTelemetry.Metrics.MeterProviderBuilder! builder) -> OpenTelemetry.Metrics.MeterProviderBuilder! +static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddTestingPlatformInstrumentation(this OpenTelemetry.Trace.TracerProviderBuilder! builder) -> OpenTelemetry.Trace.TracerProviderBuilder! +static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddTestingPlatformResource(this OpenTelemetry.Resources.ResourceBuilder! builder) -> OpenTelemetry.Resources.ResourceBuilder! diff --git a/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/PublicAPI/PublicAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/PublicAPI/PublicAPI.Unshipped.txt index 09c658965c..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/PublicAPI/PublicAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.OpenTelemetry/PublicAPI/PublicAPI.Unshipped.txt @@ -1,11 +1 @@ #nullable enable -*REMOVED*[TPEXP]Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions -*REMOVED*[TPEXP]static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddOpenTelemetryProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder, System.Action? withTracing = null, System.Action? withMetrics = null) -> void -*REMOVED*[TPEXP]static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddTestingPlatformInstrumentation(this OpenTelemetry.Metrics.MeterProviderBuilder! builder) -> OpenTelemetry.Metrics.MeterProviderBuilder! -*REMOVED*[TPEXP]static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddTestingPlatformInstrumentation(this OpenTelemetry.Trace.TracerProviderBuilder! builder) -> OpenTelemetry.Trace.TracerProviderBuilder! -Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions -static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddOpenTelemetryProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder, System.Action? withTracing = null, System.Action? withMetrics = null) -> void -static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddOpenTelemetryProviderFromEnvironment(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder, System.Action? configureTracing = null, System.Action? configureMetrics = null) -> void -static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddTestingPlatformInstrumentation(this OpenTelemetry.Metrics.MeterProviderBuilder! builder) -> OpenTelemetry.Metrics.MeterProviderBuilder! -static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddTestingPlatformInstrumentation(this OpenTelemetry.Trace.TracerProviderBuilder! builder) -> OpenTelemetry.Trace.TracerProviderBuilder! -static Microsoft.Testing.Extensions.OpenTelemetryProviderExtensions.AddTestingPlatformResource(this OpenTelemetry.Resources.ResourceBuilder! builder) -> OpenTelemetry.Resources.ResourceBuilder! diff --git a/src/Platform/Microsoft.Testing.Extensions.PackagedApp/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.PackagedApp/InternalAPI/InternalAPI.Shipped.txt index beed07b892..9999d80c9d 100644 --- a/src/Platform/Microsoft.Testing.Extensions.PackagedApp/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.PackagedApp/InternalAPI/InternalAPI.Shipped.txt @@ -1,6 +1,32 @@ #nullable enable +const Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.AppxManifestFileName = "AppxManifest.xml" -> string! +const Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.LauncherModeEnvironmentVariable = "TESTINGPLATFORM_PACKAGEDAPP_LAUNCHER" -> string! +const Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.PipeAuthorizationModeEnvironmentVariable = "TESTINGPLATFORM_PACKAGEDAPP_PIPEAUTHORIZATION" -> string! Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void +Microsoft.Testing.Extensions.PackagedApp.AppContainerSecurityIdentifier +Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo +Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.AppUserModelId.get -> string! +Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.AppxApplicationInfo(string! id, string? executable, string! appUserModelId, bool usesLaunchActivationArguments, bool runsInAppContainer) -> void +Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.AppxApplicationInfo(string! id, string? executable, string! appUserModelId, bool usesLaunchActivationArguments) -> void +Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.Executable.get -> string? +Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.Id.get -> string! +Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.RunsInAppContainer.get -> bool +Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.UsesLaunchActivationArguments.get -> bool +Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo +Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.Applications.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.PackageFamilyName.get -> string! +Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.PackageName.get -> string! +Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.Publisher.get -> string! +Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.ResolveApplication(string! manifestDirectory, string! executablePath) -> Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo? +Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.ResolveApplication(string? executableFileName) -> Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo? +Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationArguments +Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationData +Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationData.Arguments.get -> string! +Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationData.PackagedAppActivationData(string! arguments, string? payloadPath) -> void +Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationData.PayloadPath.get -> string? +Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake +Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackReader Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostHandle Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostHandle.Dispose() -> void Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostHandle.ExitCode.get -> int @@ -12,10 +38,40 @@ Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostHandle.WaitForExitAs Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.Description.get -> string! Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.DisplayName.get -> string! +Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.GetAuthorizedSecurityIdentitiesAsync(string! testHostFileName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!>! Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.IsEnabledAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.LaunchTestHostAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.TestHostLaunchContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.PackagedAppTestHostLauncher() -> void +Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.PackagedAppTestHostLauncher(string! testApplicationDirectory, System.Func! getEnvironmentVariable) -> void Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.Uid.get -> string! Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.Version.get -> string! +Microsoft.Testing.Platform.Helpers.PasteArguments +static Microsoft.Testing.Extensions.PackagedApp.AppContainerSecurityIdentifier.TryDerive(string? packageFamilyName) -> string? +static Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.ComputePublisherId(string! publisher) -> string! +static Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.FindManifestPath(string! startDirectory, string! executablePath) -> string? +static Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.FindManifestPath(string! startDirectory) -> string? +static Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.GetManifestPath(string! layoutDirectory) -> string? +static Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.ReadFromManifest(string! manifestPath) -> Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo! +static Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.ReadFromManifest(System.IO.Stream! manifestStream) -> Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo! +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationArguments.Create(System.Collections.Generic.IReadOnlyList! arguments, string! localStateDirectory) -> Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationData! +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationArguments.Read(string! activationArguments, string? localStateDirectory) -> string![]! +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationArguments.TryDeletePayload(string? payloadPath) -> void +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationArguments.TryDeleteStalePayloads(string! localStateDirectory, System.DateTime utcNow) -> void +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.GetHandshakeDirectory(string! packageFamilyName) -> string! +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.GetHandshakeFileName(string! handshakeId) -> string! +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.GetHandshakeFilePath(string! packageFamilyName, string! handshakeId) -> string! +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.ReadAndDelete(string! filePath) -> System.Collections.Generic.IReadOnlyDictionary? +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.TryDelete(string! filePath) -> void +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.TryGetHandshakeId(System.Collections.Generic.IReadOnlyList! arguments) -> string? +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.TryGetTestHostControllerPid(System.Collections.Generic.IReadOnlyList! arguments) -> string? +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.Write(string! filePath, System.Collections.Generic.IEnumerable>! entries) -> void +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackReader.ReadActivationArgumentsAndApplyConnectBack(string! activationArguments, string? activationPayloadLocalStateDirectory, string! appBaseDirectory, System.Func! getPackageLocalStateDirectory, System.Action! setEnvironmentVariable) -> string![]! +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackReader.ReadActivationArgumentsAndApplyConnectBack(string! activationArguments) -> string![]! +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackReader.TryApplyConnectBackEnvironment(System.Collections.Generic.IReadOnlyList! commandLineArguments, string! appBaseDirectory, System.Func! getPackageLocalStateDirectory, System.Action! setEnvironmentVariable) -> void +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackReader.TryApplyConnectBackEnvironment(System.Collections.Generic.IReadOnlyList! commandLineArguments) -> void +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackReader.TryGetPackageLocalStateDirectory() -> string? +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.CreateActivationArguments(Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo! application, System.Collections.Generic.IReadOnlyList! arguments, string! localStateDirectory) -> Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationData! +static Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.GetConnectBackEnvironment(Microsoft.Testing.Platform.Extensions.TestHostControllers.TestHostLaunchContext! context) -> System.Collections.Generic.IEnumerable>! +static Microsoft.Testing.Platform.Helpers.PasteArguments.AppendArgument(System.Text.StringBuilder! stringBuilder, string! argument) -> void System.Runtime.CompilerServices.CompilerLoweringPreserveAttribute System.Runtime.CompilerServices.CompilerLoweringPreserveAttribute.CompilerLoweringPreserveAttribute() -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.PackagedApp/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.PackagedApp/InternalAPI/InternalAPI.Unshipped.txt index 73942f97be..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.PackagedApp/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.PackagedApp/InternalAPI/InternalAPI.Unshipped.txt @@ -1,57 +1 @@ #nullable enable -Microsoft.Testing.Platform.Helpers.PasteArguments -static Microsoft.Testing.Platform.Helpers.PasteArguments.AppendArgument(System.Text.StringBuilder! stringBuilder, string! argument) -> void -Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo -Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.AppUserModelId.get -> string! -Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.AppxApplicationInfo(string! id, string? executable, string! appUserModelId, bool usesLaunchActivationArguments) -> void -Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.Executable.get -> string? -Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.Id.get -> string! -Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.UsesLaunchActivationArguments.get -> bool -Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo -Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.Applications.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.PackageFamilyName.get -> string! -Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.PackageName.get -> string! -Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.Publisher.get -> string! -Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.ResolveApplication(string? executableFileName) -> Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo? -Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.ResolveApplication(string! manifestDirectory, string! executablePath) -> Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo? -const Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.AppxManifestFileName = "AppxManifest.xml" -> string! -static Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.ComputePublisherId(string! publisher) -> string! -static Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.FindManifestPath(string! startDirectory) -> string? -static Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.FindManifestPath(string! startDirectory, string! executablePath) -> string? -static Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.GetManifestPath(string! layoutDirectory) -> string? -static Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.ReadFromManifest(System.IO.Stream! manifestStream) -> Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo! -static Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo.ReadFromManifest(string! manifestPath) -> Microsoft.Testing.Extensions.PackagedApp.AppxManifestInfo! -Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake -Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackReader -Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationArguments -Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationData -Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationData.Arguments.get -> string! -Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationData.PackagedAppActivationData(string! arguments, string? payloadPath) -> void -Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationData.PayloadPath.get -> string? -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationArguments.Create(System.Collections.Generic.IReadOnlyList! arguments, string! localStateDirectory) -> Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationData! -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationArguments.Read(string! activationArguments, string? localStateDirectory) -> string![]! -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationArguments.TryDeletePayload(string? payloadPath) -> void -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationArguments.TryDeleteStalePayloads(string! localStateDirectory, System.DateTime utcNow) -> void -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.GetHandshakeDirectory(string! packageFamilyName) -> string! -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.GetHandshakeFileName(string! handshakeId) -> string! -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.GetHandshakeFilePath(string! packageFamilyName, string! handshakeId) -> string! -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.ReadAndDelete(string! filePath) -> System.Collections.Generic.IReadOnlyDictionary? -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.TryDelete(string! filePath) -> void -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.TryGetHandshakeId(System.Collections.Generic.IReadOnlyList! arguments) -> string? -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.TryGetTestHostControllerPid(System.Collections.Generic.IReadOnlyList! arguments) -> string? -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackHandshake.Write(string! filePath, System.Collections.Generic.IEnumerable>! entries) -> void -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackReader.TryApplyConnectBackEnvironment(System.Collections.Generic.IReadOnlyList! commandLineArguments) -> void -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackReader.TryApplyConnectBackEnvironment(System.Collections.Generic.IReadOnlyList! commandLineArguments, string! appBaseDirectory, System.Func! getPackageLocalStateDirectory, System.Action! setEnvironmentVariable) -> void -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackReader.ReadActivationArgumentsAndApplyConnectBack(string! activationArguments) -> string![]! -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackReader.ReadActivationArgumentsAndApplyConnectBack(string! activationArguments, string? activationPayloadLocalStateDirectory, string! appBaseDirectory, System.Func! getPackageLocalStateDirectory, System.Action! setEnvironmentVariable) -> string![]! -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppConnectBackReader.TryGetPackageLocalStateDirectory() -> string? -Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.PackagedAppTestHostLauncher(string! testApplicationDirectory, System.Func! getEnvironmentVariable) -> void -const Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.LauncherModeEnvironmentVariable = "TESTINGPLATFORM_PACKAGEDAPP_LAUNCHER" -> string! -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.CreateActivationArguments(Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo! application, System.Collections.Generic.IReadOnlyList! arguments, string! localStateDirectory) -> Microsoft.Testing.Extensions.PackagedApp.PackagedAppActivationData! -static Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.GetConnectBackEnvironment(Microsoft.Testing.Platform.Extensions.TestHostControllers.TestHostLaunchContext! context) -> System.Collections.Generic.IEnumerable>! -Microsoft.Testing.Extensions.PackagedApp.AppContainerSecurityIdentifier -static Microsoft.Testing.Extensions.PackagedApp.AppContainerSecurityIdentifier.TryDerive(string? packageFamilyName) -> string? -Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.GetAuthorizedSecurityIdentitiesAsync(string! testHostFileName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!>! -const Microsoft.Testing.Extensions.PackagedApp.PackagedAppTestHostLauncher.PipeAuthorizationModeEnvironmentVariable = "TESTINGPLATFORM_PACKAGEDAPP_PIPEAUTHORIZATION" -> string! -Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.AppxApplicationInfo(string! id, string? executable, string! appUserModelId, bool usesLaunchActivationArguments, bool runsInAppContainer) -> void -Microsoft.Testing.Extensions.PackagedApp.AppxApplicationInfo.RunsInAppContainer.get -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.PackagedApp/PublicAPI/PublicAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.PackagedApp/PublicAPI/PublicAPI.Shipped.txt index 5801029989..904ee2ea65 100644 --- a/src/Platform/Microsoft.Testing.Extensions.PackagedApp/PublicAPI/PublicAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.PackagedApp/PublicAPI/PublicAPI.Shipped.txt @@ -1,5 +1,6 @@ #nullable enable -[TPEXP]Microsoft.Testing.Extensions.PackagedAppExtensions -[TPEXP]static Microsoft.Testing.Extensions.PackagedAppExtensions.AddPackagedAppDeployment(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder) -> void Microsoft.Testing.Extensions.PackagedApp.TestingPlatformBuilderHook +Microsoft.Testing.Extensions.PackagedAppExtensions static Microsoft.Testing.Extensions.PackagedApp.TestingPlatformBuilderHook.AddExtensions(Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! testApplicationBuilder, string![]! _) -> void +static Microsoft.Testing.Extensions.PackagedAppExtensions.AddPackagedAppDeployment(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder) -> void +static Microsoft.Testing.Extensions.PackagedAppExtensions.GetTestApplicationArguments(string! activationArguments) -> string![]! diff --git a/src/Platform/Microsoft.Testing.Extensions.PackagedApp/PublicAPI/PublicAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.PackagedApp/PublicAPI/PublicAPI.Unshipped.txt index 9b3d297c73..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.PackagedApp/PublicAPI/PublicAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.PackagedApp/PublicAPI/PublicAPI.Unshipped.txt @@ -1,6 +1 @@ #nullable enable -*REMOVED*[TPEXP]Microsoft.Testing.Extensions.PackagedAppExtensions -*REMOVED*[TPEXP]static Microsoft.Testing.Extensions.PackagedAppExtensions.AddPackagedAppDeployment(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder) -> void -Microsoft.Testing.Extensions.PackagedAppExtensions -static Microsoft.Testing.Extensions.PackagedAppExtensions.AddPackagedAppDeployment(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder) -> void -static Microsoft.Testing.Extensions.PackagedAppExtensions.GetTestApplicationArguments(string! activationArguments) -> string![]! diff --git a/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Shipped.txt index 3f8322ec87..309358acfb 100644 --- a/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Shipped.txt @@ -7,10 +7,14 @@ const Microsoft.Testing.Extensions.Policy.RetryCommandLineOptionsProvider.RetryF const Microsoft.Testing.Extensions.Policy.RetryCommandLineOptionsProvider.RetryFailedTestsMaxTestsOptionName = "retry-failed-tests-max-tests" -> string! const Microsoft.Testing.Extensions.Policy.RetryCommandLineOptionsProvider.RetryFailedTestsOptionName = "retry-failed-tests" -> string! const Microsoft.Testing.Extensions.Policy.RetryCommandLineOptionsProvider.RetryFailedTestsPipeNameOptionName = "internal-retry-pipename" -> string! +const Microsoft.Testing.Platform.CommandLine.FlakyTestsReportingOptions.ShowFlakyTestsOptionName = "show-flaky-tests" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_CLI_TELEMETRY_OPTOUT = "DOTNET_CLI_TELEMETRY_OPTOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORY = "DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORY" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_NOLOGO = "DOTNET_NOLOGO" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_WATCH = "DOTNET_WATCH" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT = "TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC = "TESTINGPLATFORM_DIAGNOSTIC" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX = "TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX" -> string! @@ -19,6 +23,7 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX = "TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE = "TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY = "TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER = "TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_EXECUTIONID = "TESTINGPLATFORM_DOTNETTEST_EXECUTIONID" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION = "TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_EXITCODE_IGNORE = "TESTINGPLATFORM_EXITCODE_IGNORE" -> string! @@ -26,6 +31,7 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER = "TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_MESSAGEBUS_DRAINDATA_ATTEMPTS = "TESTINGPLATFORM_MESSAGEBUS_DRAINDATA_ATTEMPTS" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_NOBANNER = "TESTINGPLATFORM_NOBANNER" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TELEMETRY_OPTOUT = "TESTINGPLATFORM_TELEMETRY_OPTOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID = "TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID = "TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID" -> string! @@ -66,11 +72,15 @@ const Microsoft.Testing.Platform.IPC.DisplayMessageFieldsId.Text = 4 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.ErrorMessage = 1 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.ErrorType = 2 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.StackTrace = 3 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Actual = 11 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Duration = 4 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.ErrorOutput = 8 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.ExceptionMessageList = 6 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Expected = 10 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.IsSuperseded = 13 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Reason = 5 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.RetryAttemptNumber = 12 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.SessionUid = 9 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.StandardOutput = 7 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.State = 3 -> ushort @@ -78,6 +88,8 @@ const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Uid = 1 -> const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Description = 3 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.FullPath = 1 -> ushort +const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.InputArtifactPaths = 8 -> ushort +const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Kind = 7 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.SessionUid = 6 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.TestDisplayName = 5 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.TestUid = 4 -> ushort @@ -86,12 +98,15 @@ const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.FileArtifactMe const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.InstanceId = 2 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.MessagesSerializerId = 7 -> int const Microsoft.Testing.Platform.IPC.HandshakeMessageFieldsId.MessagesSerializerId = 9 -> int +const Microsoft.Testing.Platform.IPC.NamedPipeServer.MaxUnixDomainSocketPathLengthInBytes = 103 -> int const Microsoft.Testing.Platform.IPC.ServerControlMessageFieldsId.Kind = 1 -> ushort const Microsoft.Testing.Platform.IPC.ServerControlMessageFieldsId.MessagesSerializerId = 14 -> int const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.Duration = 4 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.ErrorOutput = 7 -> ushort +const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.IsSuperseded = 10 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.Reason = 5 -> ushort +const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.RetryAttemptNumber = 9 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.SessionUid = 8 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.StandardOutput = 6 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.State = 3 -> ushort @@ -120,6 +135,13 @@ const Microsoft.Testing.Platform.IPC.WaitForServerControlRequestFieldsId.Message Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void Microsoft.Testing.Extensions.Policy.RetryArgumentsBuilder +Microsoft.Testing.Extensions.Policy.RetryArtifactProcessor +Microsoft.Testing.Extensions.Policy.RetryAttemptArtifact +Microsoft.Testing.Extensions.Policy.RetryAttemptArtifact.Attempt.get -> int +Microsoft.Testing.Extensions.Policy.RetryAttemptArtifact.DestinationPath.get -> string? +Microsoft.Testing.Extensions.Policy.RetryAttemptArtifact.Kind.get -> string? +Microsoft.Testing.Extensions.Policy.RetryAttemptArtifact.Path.get -> string! +Microsoft.Testing.Extensions.Policy.RetryAttemptArtifact.RetryAttemptArtifact(string! path, string? kind, int attempt, string? destinationPath) -> void Microsoft.Testing.Extensions.Policy.RetryCommandLineOptionsProvider Microsoft.Testing.Extensions.Policy.RetryCommandLineOptionsProvider.RetryCommandLineOptionsProvider() -> void Microsoft.Testing.Extensions.Policy.RetryDataConsumer @@ -135,10 +157,15 @@ Microsoft.Testing.Extensions.Policy.RetryDataConsumer.RetryDataConsumer(System.I Microsoft.Testing.Extensions.Policy.RetryDataConsumer.Uid.get -> string! Microsoft.Testing.Extensions.Policy.RetryDataConsumer.Version.get -> string! Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer +Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.Artifacts.get -> System.Collections.Generic.List! +Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.CountsReported.get -> bool Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.Dispose() -> void -Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.FailedUID.get -> System.Collections.Generic.List? +Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.FailedTestResults.get -> int +Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.FailedTests.get -> System.Collections.Generic.Dictionary! Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.PipeName.get -> string! +Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.RecoveredTests.get -> System.Collections.Generic.IReadOnlyList! Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.RetryFailedTestsPipeServer(System.IServiceProvider! serviceProvider, string![]! failedTests, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void +Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.SkippedTests.get -> int Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.TotalTestRan.get -> int Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.WaitForConnectionAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.Policy.RetryLifecycleCallbacks @@ -171,11 +198,21 @@ Microsoft.Testing.Extensions.Policy.RetryRunSummary.ExitCodes.get -> System.Coll Microsoft.Testing.Extensions.Policy.RetryRunSummary.ExitCodes.init -> void Microsoft.Testing.Extensions.Policy.RetryRunSummary.FinalFailedTests.get -> int Microsoft.Testing.Extensions.Policy.RetryRunSummary.FinalFailedTests.init -> void -Microsoft.Testing.Extensions.Policy.RetryRunSummary.FirstAttemptFailedTests.get -> int -Microsoft.Testing.Extensions.Policy.RetryRunSummary.FirstAttemptFailedTests.init -> void +Microsoft.Testing.Extensions.Policy.RetryRunSummary.FlakyTests.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.Policy.RetryRunSummary.FlakyTests.init -> void Microsoft.Testing.Extensions.Policy.RetryRunSummary.RetriedExecutions.get -> int Microsoft.Testing.Extensions.Policy.RetryRunSummary.RetriedExecutions.init -> void +Microsoft.Testing.Extensions.Policy.RetryRunSummary.RetriedTests.get -> int +Microsoft.Testing.Extensions.Policy.RetryRunSummary.RetriedTests.init -> void Microsoft.Testing.Extensions.Policy.RetryRunSummary.RetryRunSummary() -> void +Microsoft.Testing.Extensions.Policy.RetryRunSummary.ShowFlakyTests.get -> bool +Microsoft.Testing.Extensions.Policy.RetryRunSummary.ShowFlakyTests.init -> void +Microsoft.Testing.Extensions.Policy.RetryRunSummary.StoppedEarly.get -> bool +Microsoft.Testing.Extensions.Policy.RetryRunSummary.StoppedEarly.init -> void +Microsoft.Testing.Extensions.Policy.RetryRunSummary.SuiteCountsKnown.get -> bool +Microsoft.Testing.Extensions.Policy.RetryRunSummary.SuiteCountsKnown.init -> void +Microsoft.Testing.Extensions.Policy.RetryRunSummary.SuiteSkippedTests.get -> int +Microsoft.Testing.Extensions.Policy.RetryRunSummary.SuiteSkippedTests.init -> void Microsoft.Testing.Extensions.Policy.RetryRunSummary.SuiteTotalTests.get -> int Microsoft.Testing.Extensions.Policy.RetryRunSummary.SuiteTotalTests.init -> void Microsoft.Testing.Extensions.Policy.RetryRunSummary.UserMaxRetryCount.get -> int @@ -190,8 +227,16 @@ Microsoft.Testing.Extensions.Policy.RetryTestHostRunner.AttemptResult.ExitedBefo Microsoft.Testing.Extensions.Policy.RetryTestHostRunner.AttemptResult.ExitedBeforeConnect.init -> void Microsoft.Testing.Extensions.Policy.RetryThresholdPolicy Microsoft.Testing.Extensions.RandomId +Microsoft.Testing.Platform.CommandLine.FlakyTestsReportingOptions +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequest +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequest.ArtifactRequest(string! path, string? kind) -> void +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequest.Kind.get -> string? +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequest.Path.get -> string! +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequestSerializer +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequestSerializer.ArtifactRequestSerializer() -> void Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.FailedTestRequest -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.FailedTestRequest.FailedTestRequest(string! uid) -> void +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.FailedTestRequest.DisplayName.get -> string! +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.FailedTestRequest.FailedTestRequest(string! uid, string! displayName) -> void Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.FailedTestRequest.Uid.get -> string! Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.FailedTestRequestSerializer Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.FailedTestRequestSerializer.FailedTestRequestSerializer() -> void @@ -204,15 +249,22 @@ Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.GetListOfFail Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.GetListOfFailedTestsResponse.GetListOfFailedTestsResponse(string![]! failedTestIds) -> void Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.GetListOfFailedTestsResponseSerializer Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.GetListOfFailedTestsResponseSerializer.GetListOfFailedTestsResponseSerializer() -> void -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TotalTestsRunRequest -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TotalTestsRunRequest.TotalTests.get -> int -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TotalTestsRunRequest.TotalTestsRunRequest(int totalTests) -> void -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TotalTestsRunRequestSerializer -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TotalTestsRunRequestSerializer.TotalTestsRunRequestSerializer() -> void +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.ExecutedTests.get -> int +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.FailedTests.get -> int +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.PassedTests.get -> int +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.RecoveredTestUids.get -> string![]! +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.SkippedTests.get -> int +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.TestRunCountsRequest(int passedTests, int failedTests, int skippedTests, string![]! recoveredTestUids) -> void +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.TotalTests.get -> int +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequestSerializer +Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequestSerializer.TestRunCountsRequestSerializer() -> void Microsoft.Testing.Platform.Helpers.ApplicationStateGuard +Microsoft.Testing.Platform.Helpers.ArgumentGuard Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.AtLeastOneTestFailed = 2 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.DependentProcessExited = 11 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.GenericFailure = 1 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.IncompatibleProtocolVersion = 12 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -221,10 +273,12 @@ Microsoft.Testing.Platform.Helpers.ExitCode.InvalidPlatformSetup = 4 -> Microsof Microsoft.Testing.Platform.Helpers.ExitCode.MinimumExpectedTestsPolicyViolation = 9 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.Success = 0 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestAdapterTestSessionFailure = 10 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedForMaxFailedTests = 13 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestHostProcessExitedNonGracefully = 7 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestSessionAborted = 3 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.ZeroTests = 8 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.PasteArguments Microsoft.Testing.Platform.Helpers.TimeoutHelper Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit.Days = 4 -> Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit @@ -276,13 +330,15 @@ Microsoft.Testing.Platform.IPC.NamedPipeClient.RequestReplyAsync void Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.NamedPipeConnectionBase() -> void -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Pipes.PipeStream! stream, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Pipes.PipeStream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Stream! stream, System.Threading.CancellationToken cancellationToken, int maximumFrameSize = 2147483647) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Stream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.IPC.NamedPipeServer Microsoft.Testing.Platform.IPC.NamedPipeServer.Dispose() -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.DisposeAsync() -> System.Threading.Tasks.ValueTask +Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken) -> void +Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.PipeName.get -> Microsoft.Testing.Platform.IPC.PipeNameDescription! Microsoft.Testing.Platform.IPC.NamedPipeServer.WaitConnectionAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! @@ -313,27 +369,36 @@ Microsoft.Testing.Platform.Resources.PlatformResources Microsoft.Testing.Platform.RoslynString override Microsoft.Testing.Extensions.Policy.RetryCommandLineOptionsProvider.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! override Microsoft.Testing.Extensions.Policy.RetryCommandLineOptionsProvider.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! +override Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequestSerializer.Id.get -> int override Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.FailedTestRequestSerializer.Id.get -> int override Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.GetListOfFailedTestsRequestSerializer.Id.get -> int override Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.GetListOfFailedTestsResponseSerializer.Id.get -> int -override Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TotalTestsRunRequestSerializer.Id.get -> int +override Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequestSerializer.Id.get -> int override Microsoft.Testing.Platform.IPC.Serializers.VoidResponseSerializer.Id.get -> int Polyfills.Polyfill Polyfills.Polyfill.extension(System.OperatingSystem) static Microsoft.Testing.Extensions.Policy.RetryArgumentsBuilder.BuildAttemptArgumentsAsync(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, string![]! executableArguments, System.Collections.Generic.List! indexToCleanup, string! currentTryResultFolder, string! retryRootFolder, string! pipeName, string![]? lastListOfFailedId, int attemptCount) -> System.Threading.Tasks.Task!>! static Microsoft.Testing.Extensions.Policy.RetryArgumentsBuilder.ComputeIndicesToCleanup(string![]! executableArguments) -> System.Collections.Generic.List! +static Microsoft.Testing.Extensions.Policy.RetryArtifactProcessor.ProcessAsync(System.IServiceProvider! serviceProvider, Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer! producer, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Logging.ILogger! logger, System.Collections.Generic.IReadOnlyList! artifacts, int attemptCount, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary? runSummary, string! outputDirectory, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!>! +static Microsoft.Testing.Extensions.Policy.RetryArtifactProcessor.ProcessAsync(System.IServiceProvider! serviceProvider, Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer! producer, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Logging.ILogger! logger, System.Collections.Generic.IReadOnlyList! artifacts, int attemptCount, string! outputDirectory, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!>! +static Microsoft.Testing.Extensions.Policy.RetryArtifactProcessor.PublishExternalArtifacts(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, System.Collections.Generic.IReadOnlyList! artifacts, int finalAttempt, System.Collections.Generic.IReadOnlyDictionary! replacements) -> void +static Microsoft.Testing.Extensions.Policy.RetryArtifactProcessor.SnapshotAttemptArtifacts(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, System.Collections.Generic.IReadOnlyList! artifacts, int attempt, string! attemptDirectory, string! retryRootDirectory) -> System.Collections.Generic.IReadOnlyList! static Microsoft.Testing.Extensions.Policy.RetryOrchestratorHelper.FormatDelay(System.TimeSpan delay) -> string! static Microsoft.Testing.Extensions.Policy.RetryOrchestratorHelper.FormatDuration(System.TimeSpan duration) -> string! static Microsoft.Testing.Extensions.Policy.RetryOrchestratorHelper.GetOptionArgumentIndex(string! optionName, string![]! executableArgs) -> int static Microsoft.Testing.Extensions.Policy.RetryOrchestratorHelper.RemoveOption(System.Collections.Generic.List! arguments, string! optionName) -> void +static Microsoft.Testing.Extensions.Policy.RetrySummaryReporter.MoveArtifactsAsync(Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer! producer, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, string! currentTryResultFolder, string! resultDirectory, System.Collections.Generic.IReadOnlyDictionary! replacements, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.Policy.RetrySummaryReporter.MoveArtifactsAsync(Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer! producer, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, string! currentTryResultFolder, string! resultDirectory, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.Policy.RetrySummaryReporter.ReportSummaryAsync(Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer! producer, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Extensions.Policy.RetryRunSummary summary, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.Policy.RetryTestHostRunner.RunAttemptAsync(System.IServiceProvider! serviceProvider, Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer! producer, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer! retryFailedTestsPipeServer, Microsoft.Testing.Platform.Services.ExecutableInfo! executableInfo, System.Collections.Generic.List! finalArguments, int attemptCount, int userMaxRetryCount, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.Policy.RetryThresholdPolicy.EvaluateAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer! producer, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer! retryFailedTestsPipeServer, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.RandomId.Next() -> string! +static Microsoft.Testing.Platform.CommandLine.FlakyTestsReportingOptions.IsEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> bool static Microsoft.Testing.Platform.Helpers.ApplicationStateGuard.Ensure(bool condition, string! errorMessage) -> void static Microsoft.Testing.Platform.Helpers.ApplicationStateGuard.Ensure(bool condition, string? path = null, int line = 0) -> void static Microsoft.Testing.Platform.Helpers.ApplicationStateGuard.Unreachable(string? path = null, int line = 0) -> System.Diagnostics.UnreachableException! +static Microsoft.Testing.Platform.Helpers.ArgumentGuard.Ensure(bool condition, string! paramName, string! errorMessage) -> void +static Microsoft.Testing.Platform.Helpers.PasteArguments.AppendArgument(System.Text.StringBuilder! stringBuilder, string! argument) -> void static Microsoft.Testing.Platform.Helpers.TimeoutHelper.DefaultHangTimeoutSeconds.get -> double static Microsoft.Testing.Platform.Helpers.TimeoutHelper.DefaultHangTimeSpanTimeout.get -> System.TimeSpan static Microsoft.Testing.Platform.Helpers.TimeSpanParser.Parse(string? time, Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit defaultUnit) -> System.TimeSpan @@ -342,20 +407,26 @@ static Microsoft.Testing.Platform.Helpers.TimeSpanParser.ParseRequireSuffix(stri static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParse(string? time, Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit defaultUnit, out System.TimeSpan result) -> bool static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParse(string? time, out System.TimeSpan result) -> bool static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParseRequireSuffix(string? time, out System.TimeSpan result) -> bool +static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsureDirectoryIsWritable(string! directory) -> void +static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsurePathLengthWithinLimit(string! path) -> void static Microsoft.Testing.Platform.IPC.NamedPipeServer.GetPipeName(string! name) -> Microsoft.Testing.Platform.IPC.PipeNameDescription! +static Microsoft.Testing.Platform.IPC.NamedPipeServer.ResolvePipeDirectory(string? overrideDirectory, string? tempPath) -> (string! Directory, bool IsExplicitOverride) static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.DebugAssert(bool condition, string! message) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.IsNullOrEmpty(T[]? list) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadBool(System.IO.Stream! stream) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadByte(System.IO.Stream! stream) -> byte +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadFields(System.IO.Stream! stream, System.Func! tryReadField) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadInt(System.IO.Stream! stream) -> int static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadLong(System.IO.Stream! stream) -> long static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadString(System.IO.Stream! stream) -> string! static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadStringValue(System.IO.Stream! stream, int size) -> string! static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadUShort(System.IO.Stream! stream) -> ushort static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.SetPosition(System.IO.Stream! stream, long position) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.TryReadExecutionScopedField(System.IO.Stream! stream, ushort fieldId, int fieldSize, ref string? executionId, ref string? instanceId) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteAtPosition(System.IO.Stream! stream, int value, long position) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteBool(System.IO.Stream! stream, bool value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteByte(System.IO.Stream! stream, byte value) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteExecutionScopedHeader(System.IO.Stream! stream, string? executionId, string? instanceId, ushort payloadFieldCount) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, byte? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, string? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, bool? value) -> void @@ -364,12 +435,15 @@ static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(Syst static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, long? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, string? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteInt(System.IO.Stream! stream, int value) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteListPayload(System.IO.Stream! stream, ushort fieldId, T[]? list, System.Action! writeItem) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteLong(System.IO.Stream! stream, long value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteSize(System.IO.Stream! stream) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteString(System.IO.Stream! stream, string! str) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteUShort(System.IO.Stream! stream, ushort value) -> void static Microsoft.Testing.Platform.Resources.PlatformResources.GetResourceString(string! resourceKey) -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.InternalLoopAsyncDidNotExitSuccessfullyErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.ResourceManager.get -> System.Resources.ResourceManager! static Microsoft.Testing.Platform.RoslynString.IsNullOrEmpty(string? value) -> bool static Microsoft.Testing.Platform.RoslynString.IsNullOrWhiteSpace(string? value) -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt index b932d48f4c..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt @@ -1,99 +1 @@ #nullable enable -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER = "TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER" -> string! -const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.InputArtifactPaths = 8 -> ushort -const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Kind = 7 -> ushort -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string! -Microsoft.Testing.Platform.Helpers.ArgumentGuard -Microsoft.Testing.Platform.Helpers.PasteArguments -static Microsoft.Testing.Platform.Helpers.ArgumentGuard.Ensure(bool condition, string! paramName, string! errorMessage) -> void -static Microsoft.Testing.Platform.Helpers.PasteArguments.AppendArgument(System.Text.StringBuilder! stringBuilder, string! argument) -> void -const Microsoft.Testing.Platform.IPC.NamedPipeServer.MaxUnixDomainSocketPathLengthInBytes = 103 -> int -static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsureDirectoryIsWritable(string! directory) -> void -static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsurePathLengthWithinLimit(string! path) -> void -static Microsoft.Testing.Platform.IPC.NamedPipeServer.ResolvePipeDirectory(string? overrideDirectory, string? tempPath) -> (string! Directory, bool IsExplicitOverride) -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! -Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode -Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadFields(System.IO.Stream! stream, System.Func! tryReadField) -> void -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.TryReadExecutionScopedField(System.IO.Stream! stream, ushort fieldId, int fieldSize, ref string? executionId, ref string? instanceId) -> bool -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteExecutionScopedHeader(System.IO.Stream! stream, string? executionId, string? instanceId, ushort payloadFieldCount) -> void -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteListPayload(System.IO.Stream! stream, ushort fieldId, T[]? list, System.Action! writeItem) -> void -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Expected = 10 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Actual = 11 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.RetryAttemptNumber = 12 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.IsSuperseded = 13 -> ushort -const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.RetryAttemptNumber = 9 -> ushort -const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.IsSuperseded = 10 -> ushort -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Stream! stream, System.Threading.CancellationToken cancellationToken, int maximumFrameSize = 2147483647) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Stream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Pipes.PipeStream! stream, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Pipes.PipeStream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.CommandLine.FlakyTestsReportingOptions -const Microsoft.Testing.Platform.CommandLine.FlakyTestsReportingOptions.ShowFlakyTestsOptionName = "show-flaky-tests" -> string! -static Microsoft.Testing.Platform.CommandLine.FlakyTestsReportingOptions.IsEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> bool -Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.FailedTests.get -> System.Collections.Generic.Dictionary! -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.FailedTestRequest.FailedTestRequest(string! uid, string! displayName) -> void -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.FailedTestRequest.DisplayName.get -> string! -*REMOVED*Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.FailedUID.get -> System.Collections.Generic.List? -*REMOVED*Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.FailedTestRequest.FailedTestRequest(string! uid) -> void -Microsoft.Testing.Extensions.Policy.RetryRunSummary.RetriedTests.get -> int -Microsoft.Testing.Extensions.Policy.RetryRunSummary.RetriedTests.init -> void -Microsoft.Testing.Extensions.Policy.RetryRunSummary.FlakyTests.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.Policy.RetryRunSummary.FlakyTests.init -> void -Microsoft.Testing.Extensions.Policy.RetryRunSummary.ShowFlakyTests.get -> bool -Microsoft.Testing.Extensions.Policy.RetryRunSummary.ShowFlakyTests.init -> void -Microsoft.Testing.Extensions.Policy.RetryRunSummary.StoppedEarly.get -> bool -Microsoft.Testing.Extensions.Policy.RetryRunSummary.StoppedEarly.init -> void -*REMOVED*Microsoft.Testing.Extensions.Policy.RetryRunSummary.FirstAttemptFailedTests.get -> int -*REMOVED*Microsoft.Testing.Extensions.Policy.RetryRunSummary.FirstAttemptFailedTests.init -> void -Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.SkippedTests.get -> int -Microsoft.Testing.Extensions.Policy.RetryRunSummary.SuiteSkippedTests.get -> int -Microsoft.Testing.Extensions.Policy.RetryRunSummary.SuiteSkippedTests.init -> void -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.PassedTests.get -> int -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.FailedTests.get -> int -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.SkippedTests.get -> int -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.ExecutedTests.get -> int -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.TotalTests.get -> int -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequestSerializer -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequestSerializer.TestRunCountsRequestSerializer() -> void -override Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequestSerializer.Id.get -> int -*REMOVED*Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TotalTestsRunRequest -*REMOVED*Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TotalTestsRunRequest.TotalTests.get -> int -*REMOVED*Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TotalTestsRunRequest.TotalTestsRunRequest(int totalTests) -> void -*REMOVED*Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TotalTestsRunRequestSerializer -*REMOVED*Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TotalTestsRunRequestSerializer.TotalTestsRunRequestSerializer() -> void -*REMOVED*override Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TotalTestsRunRequestSerializer.Id.get -> int -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.RecoveredTestUids.get -> string![]! -Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.FailedTestResults.get -> int -Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.RecoveredTests.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.CountsReported.get -> bool -Microsoft.Testing.Extensions.Policy.RetryRunSummary.SuiteCountsKnown.get -> bool -Microsoft.Testing.Extensions.Policy.RetryRunSummary.SuiteCountsKnown.init -> void -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.TestRunCountsRequest.TestRunCountsRequest(int passedTests, int failedTests, int skippedTests, string![]! recoveredTestUids) -> void -Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void -Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void -Microsoft.Testing.Extensions.Policy.RetryFailedTestsPipeServer.Artifacts.get -> System.Collections.Generic.List! -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequest -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequest.ArtifactRequest(string! path, string? kind) -> void -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequest.Kind.get -> string? -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequest.Path.get -> string! -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequestSerializer -Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequestSerializer.ArtifactRequestSerializer() -> void -override Microsoft.Testing.Platform.Extensions.RetryFailedTests.Serializers.ArtifactRequestSerializer.Id.get -> int -Microsoft.Testing.Extensions.Policy.RetryArtifactProcessor -static Microsoft.Testing.Extensions.Policy.RetryArtifactProcessor.ProcessAsync(System.IServiceProvider! serviceProvider, Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer! producer, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Logging.ILogger! logger, System.Collections.Generic.IReadOnlyList! artifacts, int attemptCount, string! outputDirectory, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!>! -static Microsoft.Testing.Extensions.Policy.RetryArtifactProcessor.ProcessAsync(System.IServiceProvider! serviceProvider, Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer! producer, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Logging.ILogger! logger, System.Collections.Generic.IReadOnlyList! artifacts, int attemptCount, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary? runSummary, string! outputDirectory, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!>! -static Microsoft.Testing.Extensions.Policy.RetryArtifactProcessor.PublishExternalArtifacts(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, System.Collections.Generic.IReadOnlyList! artifacts, int finalAttempt, System.Collections.Generic.IReadOnlyDictionary! replacements) -> void -static Microsoft.Testing.Extensions.Policy.RetryArtifactProcessor.SnapshotAttemptArtifacts(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, System.Collections.Generic.IReadOnlyList! artifacts, int attempt, string! attemptDirectory, string! retryRootDirectory) -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.Policy.RetryAttemptArtifact -Microsoft.Testing.Extensions.Policy.RetryAttemptArtifact.RetryAttemptArtifact(string! path, string? kind, int attempt, string? destinationPath) -> void -Microsoft.Testing.Extensions.Policy.RetryAttemptArtifact.Attempt.get -> int -Microsoft.Testing.Extensions.Policy.RetryAttemptArtifact.DestinationPath.get -> string? -Microsoft.Testing.Extensions.Policy.RetryAttemptArtifact.Kind.get -> string? -Microsoft.Testing.Extensions.Policy.RetryAttemptArtifact.Path.get -> string! -static Microsoft.Testing.Extensions.Policy.RetrySummaryReporter.MoveArtifactsAsync(Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer! producer, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Logging.ILogger! logger, string! currentTryResultFolder, string! resultDirectory, System.Collections.Generic.IReadOnlyDictionary! replacements, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! diff --git a/src/Platform/Microsoft.Testing.Extensions.Telemetry/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.Telemetry/InternalAPI/InternalAPI.Shipped.txt index fe70aaf80a..89356afdcd 100644 --- a/src/Platform/Microsoft.Testing.Extensions.Telemetry/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.Telemetry/InternalAPI/InternalAPI.Shipped.txt @@ -21,15 +21,21 @@ Microsoft.Testing.Extensions.Telemetry.ITelemetryClientFactory.Create(string? cu Microsoft.Testing.Platform.Helpers.CIEnvironmentDetector Microsoft.Testing.Platform.Helpers.CIEnvironmentDetector.CIEnvironmentDetector(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> void Microsoft.Testing.Platform.Helpers.CIEnvironmentDetector.IsCIEnvironment() -> bool +Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.Complete() -> void Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.SingleConsumerUnboundedChannel() -> void Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.TryRead(out T item) -> bool +Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.WaitToRead() -> bool Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.WaitToReadAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.Write(T item) -> void +Microsoft.Testing.Platform.RoslynDebug Microsoft.Testing.Platform.RoslynString Polyfills.Polyfill Polyfills.Polyfill.extension(System.OperatingSystem) +static Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper.IsMultiThreaded.get -> bool +static Microsoft.Testing.Platform.RoslynDebug.Assert(bool b, string! message) -> void +static Microsoft.Testing.Platform.RoslynDebug.Assert(bool b) -> void static Microsoft.Testing.Platform.RoslynString.IsNullOrEmpty(string? value) -> bool static Microsoft.Testing.Platform.RoslynString.IsNullOrWhiteSpace(string? value) -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.Telemetry/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.Telemetry/InternalAPI/InternalAPI.Unshipped.txt index d77e7452c7..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.Telemetry/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.Telemetry/InternalAPI/InternalAPI.Unshipped.txt @@ -1,7 +1 @@ #nullable enable -Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper -Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.WaitToRead() -> bool -Microsoft.Testing.Platform.RoslynDebug -static Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper.IsMultiThreaded.get -> bool -static Microsoft.Testing.Platform.RoslynDebug.Assert(bool b) -> void -static Microsoft.Testing.Platform.RoslynDebug.Assert(bool b, string! message) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport.Abstractions/PublicAPI/PublicAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.TrxReport.Abstractions/PublicAPI/PublicAPI.Shipped.txt index 212e2a5244..8c34d1967e 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport.Abstractions/PublicAPI/PublicAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport.Abstractions/PublicAPI/PublicAPI.Shipped.txt @@ -27,6 +27,9 @@ Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMessagesProperty.TrxMessa Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxTestDefinitionName Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxTestDefinitionName.TestDefinitionName.get -> string! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxTestDefinitionName.TrxTestDefinitionName(string! testDefinitionName) -> void +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxWorkItemsProperty +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxWorkItemsProperty.TrxWorkItemsProperty(string![]! workItemIds) -> void +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxWorkItemsProperty.WorkItemIds.get -> string![]! override Microsoft.Testing.Extensions.TrxReport.Abstractions.DebugOrTraceTrxMessage.ToString() -> string! override Microsoft.Testing.Extensions.TrxReport.Abstractions.StandardErrorTrxMessage.ToString() -> string! override Microsoft.Testing.Extensions.TrxReport.Abstractions.StandardOutputTrxMessage.ToString() -> string! @@ -35,3 +38,4 @@ override Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxExceptionPropert override Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxFullyQualifiedTypeNameProperty.ToString() -> string! override Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMessagesProperty.ToString() -> string! override Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxTestDefinitionName.ToString() -> string! +override Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxWorkItemsProperty.ToString() -> string! diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport.Abstractions/PublicAPI/PublicAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.TrxReport.Abstractions/PublicAPI/PublicAPI.Unshipped.txt index 3e08f968e3..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport.Abstractions/PublicAPI/PublicAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport.Abstractions/PublicAPI/PublicAPI.Unshipped.txt @@ -1,5 +1 @@ #nullable enable -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxWorkItemsProperty -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxWorkItemsProperty.TrxWorkItemsProperty(string![]! workItemIds) -> void -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxWorkItemsProperty.WorkItemIds.get -> string![]! -override Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxWorkItemsProperty.ToString() -> string! diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Shipped.txt index a6ff4d635d..5064ce7fb0 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Shipped.txt @@ -14,6 +14,10 @@ const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxCompareTool.ToolNam const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxCompareToolCommandLine.BaselineTrxOptionName = "baseline-trx" -> string! const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxCompareToolCommandLine.TrxToCompareOptionName = "trx-to-compare" -> string! const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxEnvironmentVariableProvider.TRXNAMEDPIPENAME = "TRXNAMEDPIPENAME" -> string! +const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.ToolName = "merge-trx" -> string! +const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.InputOptionName = "input" -> string! +const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.OutputOptionName = "output-trx" -> string! +const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.TrxArtifactKind = "microsoft.testing.trx" -> string! const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportGeneratorCommandLine.TrxReportFileNameOptionName = "report-trx-filename" -> string! const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportGeneratorCommandLine.TrxReportOptionName = "report-trx" -> string! const Microsoft.Testing.Extensions.TrxReport.CrashDumpCommandLineOptions.CrashDumpFileNameOptionName = "crashdump-filename" -> string! @@ -26,6 +30,9 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_CLI const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORY = "DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORY" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_NOLOGO = "DOTNET_NOLOGO" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_WATCH = "DOTNET_WATCH" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT = "TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC = "TESTINGPLATFORM_DIAGNOSTIC" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX = "TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX" -> string! @@ -34,6 +41,7 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX = "TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE = "TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY = "TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER = "TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_EXECUTIONID = "TESTINGPLATFORM_DOTNETTEST_EXECUTIONID" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION = "TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_EXITCODE_IGNORE = "TESTINGPLATFORM_EXITCODE_IGNORE" -> string! @@ -41,6 +49,7 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER = "TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_MESSAGEBUS_DRAINDATA_ATTEMPTS = "TESTINGPLATFORM_MESSAGEBUS_DRAINDATA_ATTEMPTS" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_NOBANNER = "TESTINGPLATFORM_NOBANNER" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TELEMETRY_OPTOUT = "TESTINGPLATFORM_TELEMETRY_OPTOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID = "TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID = "TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID" -> string! @@ -81,11 +90,15 @@ const Microsoft.Testing.Platform.IPC.DisplayMessageFieldsId.Text = 4 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.ErrorMessage = 1 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.ErrorType = 2 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.StackTrace = 3 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Actual = 11 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Duration = 4 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.ErrorOutput = 8 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.ExceptionMessageList = 6 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Expected = 10 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.IsSuperseded = 13 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Reason = 5 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.RetryAttemptNumber = 12 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.SessionUid = 9 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.StandardOutput = 7 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.State = 3 -> ushort @@ -93,6 +106,8 @@ const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Uid = 1 -> const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Description = 3 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.FullPath = 1 -> ushort +const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.InputArtifactPaths = 8 -> ushort +const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Kind = 7 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.SessionUid = 6 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.TestDisplayName = 5 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.TestUid = 4 -> ushort @@ -101,12 +116,15 @@ const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.FileArtifactMe const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.InstanceId = 2 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.MessagesSerializerId = 7 -> int const Microsoft.Testing.Platform.IPC.HandshakeMessageFieldsId.MessagesSerializerId = 9 -> int +const Microsoft.Testing.Platform.IPC.NamedPipeServer.MaxUnixDomainSocketPathLengthInBytes = 103 -> int const Microsoft.Testing.Platform.IPC.ServerControlMessageFieldsId.Kind = 1 -> ushort const Microsoft.Testing.Platform.IPC.ServerControlMessageFieldsId.MessagesSerializerId = 14 -> int const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.Duration = 4 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.ErrorOutput = 7 -> ushort +const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.IsSuperseded = 10 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.Reason = 5 -> ushort +const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.RetryAttemptNumber = 9 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.SessionUid = 8 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.StandardOutput = 6 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.State = 3 -> ushort @@ -185,10 +203,13 @@ const System.IO.Hashing.XxHashShared.SecretSizeMin = 136 -> int const System.IO.Hashing.XxHashShared.StripeLengthBytes = 64 -> int Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void +Microsoft.Testing.Extensions.ArtifactPostProcessingHelper +Microsoft.Testing.Extensions.MergeOutputFileHelper +Microsoft.Testing.Extensions.NamedPipeServerFactory Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.EnvironmentVariableName.get -> string! Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.PipeName.get -> string! -Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.PipeNameEnvironmentVariableProviderBase(string! pipeName, string! environmentVariableName) -> void +Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.PipeNameEnvironmentVariableProviderBase(Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint, string! environmentVariableName) -> void Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.UpdateAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.ValidateTestHostEnvironmentVariablesAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.Version.get -> string! @@ -256,7 +277,9 @@ Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxResultStreaming Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxResultStreamingStore.Enqueue(Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxTestResult! result) -> void Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxResultStreamingStore.FilePath.get -> string! Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxResultStreamingStore.IsFaulted.get -> bool +Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxResultStreamingStore.IsInline.get -> bool Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxResultStreamingStore.ReadAll() -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxResultStreamingStore.TrxResultStreamingStore(string! filePath, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Logging.ILogger! logger, int batchSize, int flushIntervalMs, bool useBackgroundWriter) -> void Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxResultStreamingStore.TrxResultStreamingStore(string! filePath, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Logging.ILogger! logger, int batchSize, int flushIntervalMs) -> void Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxResultStreamingStore.TrxResultStreamingStore(string! filePath, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxResultStreamingStore.TryDelete() -> void @@ -336,6 +359,27 @@ Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxCompareFactory.IsEnab Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxCompareFactory.ToolTrxCompareFactory() -> void Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxCompareFactory.Uid.get -> string! Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxCompareFactory.Version.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory +Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.CreateCommandLine() -> Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine! +Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.CreateTool(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool! +Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.Description.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.DisplayName.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.ToolTrxMergeFactory() -> void +Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.Uid.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.Version.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.Description.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.DisplayName.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.ProcessAsync(System.Collections.Generic.IReadOnlyList! inputs, string! outputDirectory, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.SupportedFileExtensionsFallback.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.SupportedKinds.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.SupportedModes.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.SupportsTruncatedRuns.get -> bool +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.TrxArtifactPostProcessor() -> void +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.Uid.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.Version.get -> string! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxCompareTool Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxCompareTool.Description.get -> string! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxCompareTool.DisplayName.get -> string! @@ -357,7 +401,28 @@ Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxCompareToolCommandLine.Va Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxCompareToolCommandLine.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxCompareToolCommandLine.Version.get -> string! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxEnvironmentVariableProvider -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxEnvironmentVariableProvider.TrxEnvironmentVariableProvider(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, string! pipeName) -> void +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxEnvironmentVariableProvider.TrxEnvironmentVariableProvider(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint) -> void +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxLongPathHelper +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.Description.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.DisplayName.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.Name.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.RunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.TrxMergeTool(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Extensions.IExtension! extension) -> void +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.Uid.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.Version.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.Description.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.DisplayName.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.GetCommandLineOptions() -> System.Collections.Generic.IReadOnlyCollection! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.ToolName.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.TrxMergeToolCommandLine(Microsoft.Testing.Platform.Extensions.IExtension! extension) -> void +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.Uid.get -> string! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.Version.get -> string! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler.BeforeTestHostProcessStartAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! @@ -370,11 +435,12 @@ Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler.Di Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler.IsEnabledAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler.OnTestHostProcessExitedAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation! testHostProcessInformation, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler.OnTestHostProcessStartedAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation! testHostProcessInformation, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler.TrxProcessLifetimeHandler(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription) -> void +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler.TrxProcessLifetimeHandler(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, System.IServiceProvider! serviceProvider, Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint) -> void Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler.Uid.get -> string! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler.Version.get -> string! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.AddArtifactsAsync(System.IO.FileInfo! trxFile, System.Collections.Generic.Dictionary!>! artifacts) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.AttachmentWarnings.get -> System.Collections.Generic.IReadOnlyList! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.GenerateReportAsync(System.Collections.Generic.IReadOnlyList! testResults, string! testHostCrashInfo = "", bool isTestHostCrashed = false) -> System.Threading.Tasks.Task<(string! FileName, string? Warning)>! Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.TrxReportEngine(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptionsService, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IClock! clock, System.Collections.Generic.Dictionary!>! artifactsByExtension, Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! testFrameworkAdapter, System.DateTimeOffset testStartTime, int exitCode, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.TrxReportEngine(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptionsService, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IClock! clock, System.Collections.Generic.Dictionary!>! artifactsByExtension, Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! testFrameworkAdapter, System.DateTimeOffset testStartTime, int exitCode) -> void @@ -407,9 +473,11 @@ Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxTestApplicationLifecycleC Microsoft.Testing.Extensions.TrxReport.CrashDumpCommandLineOptions Microsoft.Testing.Extensions.TrxReport.TrxModeHelpers Microsoft.Testing.Platform.Helpers.ApplicationStateGuard +Microsoft.Testing.Platform.Helpers.DisposeHelper Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.AtLeastOneTestFailed = 2 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.DependentProcessExited = 11 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.GenericFailure = 1 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.IncompatibleProtocolVersion = 12 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -418,10 +486,12 @@ Microsoft.Testing.Platform.Helpers.ExitCode.InvalidPlatformSetup = 4 -> Microsof Microsoft.Testing.Platform.Helpers.ExitCode.MinimumExpectedTestsPolicyViolation = 9 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.Success = 0 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestAdapterTestSessionFailure = 10 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedForMaxFailedTests = 13 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestHostProcessExitedNonGracefully = 7 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestSessionAborted = 3 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.ZeroTests = 8 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper Microsoft.Testing.Platform.Helpers.TimeoutHelper Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit.Days = 4 -> Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit @@ -473,13 +543,15 @@ Microsoft.Testing.Platform.IPC.NamedPipeClient.RequestReplyAsync void Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.NamedPipeConnectionBase() -> void -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Pipes.PipeStream! stream, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Pipes.PipeStream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Stream! stream, System.Threading.CancellationToken cancellationToken, int maximumFrameSize = 2147483647) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Stream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.IPC.NamedPipeServer Microsoft.Testing.Platform.IPC.NamedPipeServer.Dispose() -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.DisposeAsync() -> System.Threading.Tasks.ValueTask +Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken) -> void +Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.PipeName.get -> Microsoft.Testing.Platform.IPC.PipeNameDescription! Microsoft.Testing.Platform.IPC.NamedPipeServer.WaitConnectionAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! @@ -533,6 +605,13 @@ readonly Microsoft.Testing.Extensions.ReportEngineBase._fileSystem -> Microsoft. readonly Microsoft.Testing.Extensions.ReportEngineBase._testApplicationModuleInfo -> Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! readonly Microsoft.Testing.Extensions.ReportEngineBase._testFramework -> Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! readonly Microsoft.Testing.Extensions.ReportEngineBase._testStartTime -> System.DateTimeOffset +static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.IsReparsePoint(string! path) -> bool +static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.OrderInputs(System.Collections.Generic.IEnumerable! inputs, bool includeModuleMetadata) -> System.Linq.IOrderedEnumerable! +static Microsoft.Testing.Extensions.MergeOutputFileHelper.BuildCaseFoldedProbePath(string! directory, string! probeFileName) -> string! +static Microsoft.Testing.Extensions.MergeOutputFileHelper.EnsureOutputDoesNotAliasInput(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath) -> void +static Microsoft.Testing.Extensions.MergeOutputFileHelper.WriteViaTemporarySiblingAsync(string! outputPath, System.Func! writeToTempAsync) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Extensions.NamedPipeServerFactory.CreateAndBind(Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.IServiceProvider! serviceProvider, System.Threading.CancellationToken cancellationToken) -> Microsoft.Testing.Platform.IPC.NamedPipeServer! +static Microsoft.Testing.Extensions.NamedPipeServerFactory.CreateEndpoint() -> Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! static Microsoft.Testing.Extensions.ReportEngineBase.BuildDefaultFileName(string! testApplicationModule, string! extension) -> string! static Microsoft.Testing.Extensions.ReportEngineBase.GetProvidedFileName(string![]? providedFileName) -> string! static Microsoft.Testing.Extensions.ReportEngineBase.ReplaceInvalidFileNameChars(string! fileName) -> string! @@ -548,10 +627,18 @@ static Microsoft.Testing.Extensions.TargetFrameworkMonikerHelper.GetTargetFramew static Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxTestResultExtractor.Extract(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage! message) -> (Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxTestResult! Result, bool WasTruncated) static Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxTestResultSerializer.ReadAll(System.IO.Stream! stream, Microsoft.Testing.Platform.Logging.ILogger? logger = null) -> System.Collections.Generic.IEnumerable! static Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxTestResultSerializer.Write(System.IO.BinaryWriter! writer, Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxTestResult! result) -> void +static Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxLongPathHelper.GetPathForFileSystemAccess(string! path) -> string! +static Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.CreateMergeRunId(System.Collections.Generic.IReadOnlyList! inputPaths, System.Collections.Generic.IReadOnlyList! executionIds) -> System.Guid +static Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.CreateMergeRunId(System.Collections.Generic.IReadOnlyList! inputPaths) -> System.Guid +static Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.Merge(System.Collections.Generic.IReadOnlyList! inputReports, System.Guid runId, string! runName) -> System.Xml.Linq.XDocument! +static Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.MergeToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, System.Guid runId, string! runName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Extensions.TrxReport.TrxModeHelpers.IsTestHostControllerSupported.get -> bool static Microsoft.Testing.Extensions.TrxReport.TrxModeHelpers.ShouldUseOutOfProcessTrxGeneration(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> bool static Microsoft.Testing.Platform.Helpers.ApplicationStateGuard.Ensure(bool condition, string! errorMessage) -> void static Microsoft.Testing.Platform.Helpers.ApplicationStateGuard.Ensure(bool condition, string? path = null, int line = 0) -> void static Microsoft.Testing.Platform.Helpers.ApplicationStateGuard.Unreachable(string? path = null, int line = 0) -> System.Diagnostics.UnreachableException! +static Microsoft.Testing.Platform.Helpers.DisposeHelper.DisposeAsync(object? obj) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper.IsMultiThreaded.get -> bool static Microsoft.Testing.Platform.Helpers.TimeoutHelper.DefaultHangTimeoutSeconds.get -> double static Microsoft.Testing.Platform.Helpers.TimeoutHelper.DefaultHangTimeSpanTimeout.get -> System.TimeSpan static Microsoft.Testing.Platform.Helpers.TimeSpanParser.Parse(string? time, Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit defaultUnit) -> System.TimeSpan @@ -560,20 +647,26 @@ static Microsoft.Testing.Platform.Helpers.TimeSpanParser.ParseRequireSuffix(stri static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParse(string? time, Microsoft.Testing.Platform.Helpers.TimeSpanDefaultUnit defaultUnit, out System.TimeSpan result) -> bool static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParse(string? time, out System.TimeSpan result) -> bool static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParseRequireSuffix(string? time, out System.TimeSpan result) -> bool +static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsureDirectoryIsWritable(string! directory) -> void +static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsurePathLengthWithinLimit(string! path) -> void static Microsoft.Testing.Platform.IPC.NamedPipeServer.GetPipeName(string! name) -> Microsoft.Testing.Platform.IPC.PipeNameDescription! +static Microsoft.Testing.Platform.IPC.NamedPipeServer.ResolvePipeDirectory(string? overrideDirectory, string? tempPath) -> (string! Directory, bool IsExplicitOverride) static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.DebugAssert(bool condition, string! message) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.IsNullOrEmpty(T[]? list) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadBool(System.IO.Stream! stream) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadByte(System.IO.Stream! stream) -> byte +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadFields(System.IO.Stream! stream, System.Func! tryReadField) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadInt(System.IO.Stream! stream) -> int static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadLong(System.IO.Stream! stream) -> long static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadString(System.IO.Stream! stream) -> string! static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadStringValue(System.IO.Stream! stream, int size) -> string! static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadUShort(System.IO.Stream! stream) -> ushort static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.SetPosition(System.IO.Stream! stream, long position) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.TryReadExecutionScopedField(System.IO.Stream! stream, ushort fieldId, int fieldSize, ref string? executionId, ref string? instanceId) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteAtPosition(System.IO.Stream! stream, int value, long position) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteBool(System.IO.Stream! stream, bool value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteByte(System.IO.Stream! stream, byte value) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteExecutionScopedHeader(System.IO.Stream! stream, string? executionId, string? instanceId, ushort payloadFieldCount) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, byte? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, string? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, bool? value) -> void @@ -582,6 +675,7 @@ static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(Syst static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, long? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, string? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteInt(System.IO.Stream! stream, int value) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteListPayload(System.IO.Stream! stream, ushort fieldId, T[]? list, System.Action! writeItem) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteLong(System.IO.Stream! stream, long value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteSize(System.IO.Stream! stream) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteString(System.IO.Stream! stream, string! str) -> void @@ -592,10 +686,13 @@ static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetShortTar static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetTargetPlatformName(System.Reflection.Assembly? entryAssembly) -> string? static Microsoft.Testing.Platform.Resources.PlatformResources.GetResourceString(string! resourceKey) -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.InternalLoopAsyncDidNotExitSuccessfullyErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.ResourceManager.get -> System.Resources.ResourceManager! static Microsoft.Testing.Platform.RoslynString.IsNullOrEmpty(string? value) -> bool static Microsoft.Testing.Platform.RoslynString.IsNullOrWhiteSpace(string? value) -> bool static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.GetStandardReplacements(string! processName, string! processId, System.DateTimeOffset timestamp) -> System.Collections.Generic.Dictionary! +static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveTemplate(string! template, System.Collections.Generic.IDictionary? replacements = null) -> string! static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsBrowser() -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Unshipped.txt index e5699d1b75..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Unshipped.txt @@ -1,108 +1 @@ #nullable enable -Microsoft.Testing.Extensions.NamedPipeServerFactory -static Microsoft.Testing.Extensions.NamedPipeServerFactory.CreateAndBind(Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.IServiceProvider! serviceProvider, System.Threading.CancellationToken cancellationToken) -> Microsoft.Testing.Platform.IPC.NamedPipeServer! -static Microsoft.Testing.Extensions.NamedPipeServerFactory.CreateEndpoint() -> Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! -Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.PipeNameEnvironmentVariableProviderBase(Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint, string! environmentVariableName) -> void -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxEnvironmentVariableProvider.TrxEnvironmentVariableProvider(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint) -> void -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler.TrxProcessLifetimeHandler(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, System.IServiceProvider! serviceProvider, Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint! endpoint) -> void -*REMOVED*Microsoft.Testing.Extensions.PipeNameEnvironmentVariableProviderBase.PipeNameEnvironmentVariableProviderBase(string! pipeName, string! environmentVariableName) -> void -*REMOVED*Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxEnvironmentVariableProvider.TrxEnvironmentVariableProvider(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, string! pipeName) -> void -*REMOVED*Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxProcessLifetimeHandler.TrxProcessLifetimeHandler(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription) -> void -Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper -static Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper.IsMultiThreaded.get -> bool -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER = "TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER" -> string! -const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.TrxArtifactKind = "microsoft.testing.trx" -> string! -const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.InputArtifactPaths = 8 -> ushort -const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Kind = 7 -> ushort -static Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.Merge(System.Collections.Generic.IReadOnlyList! inputReports, System.Guid runId, string! runName) -> System.Xml.Linq.XDocument! -static Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.MergeToFileAsync(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath, System.Guid runId, string! runName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory -Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.CreateCommandLine() -> Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine! -Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.CreateTool(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool! -Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.Description.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.DisplayName.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.ToolTrxMergeFactory() -> void -Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.Uid.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.ToolTrxMergeFactory.Version.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.Description.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.DisplayName.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.ProcessAsync(System.Collections.Generic.IReadOnlyList! inputs, string! outputDirectory, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.SupportedModes.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.SupportsTruncatedRuns.get -> bool -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.SupportedFileExtensionsFallback.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.SupportedKinds.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.TrxArtifactPostProcessor() -> void -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.Uid.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxArtifactPostProcessor.Version.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.Description.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.DisplayName.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.Name.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.RunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.TrxMergeTool(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Extensions.IExtension! extension) -> void -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.Uid.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.Version.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.Description.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.DisplayName.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.GetCommandLineOptions() -> System.Collections.Generic.IReadOnlyCollection! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.ToolName.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.TrxMergeToolCommandLine(Microsoft.Testing.Platform.Extensions.IExtension! extension) -> void -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.Uid.get -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.Version.get -> string! -const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeTool.ToolName = "merge-trx" -> string! -const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.InputOptionName = "input" -> string! -const Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxMergeToolCommandLine.OutputOptionName = "output-trx" -> string! -static Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.CreateMergeRunId(System.Collections.Generic.IReadOnlyList! inputPaths) -> System.Guid -static Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.CreateMergeRunId(System.Collections.Generic.IReadOnlyList! inputPaths, System.Collections.Generic.IReadOnlyList! executionIds) -> System.Guid -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string! -Microsoft.Testing.Platform.Helpers.DisposeHelper -static Microsoft.Testing.Platform.Helpers.DisposeHelper.DisposeAsync(object? obj) -> System.Threading.Tasks.Task! -const Microsoft.Testing.Platform.IPC.NamedPipeServer.MaxUnixDomainSocketPathLengthInBytes = 103 -> int -static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsureDirectoryIsWritable(string! directory) -> void -static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsurePathLengthWithinLimit(string! path) -> void -static Microsoft.Testing.Platform.IPC.NamedPipeServer.ResolvePipeDirectory(string? overrideDirectory, string? tempPath) -> (string! Directory, bool IsExplicitOverride) -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! -Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode -Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode -static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadFields(System.IO.Stream! stream, System.Func! tryReadField) -> void -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.TryReadExecutionScopedField(System.IO.Stream! stream, ushort fieldId, int fieldSize, ref string? executionId, ref string? instanceId) -> bool -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteExecutionScopedHeader(System.IO.Stream! stream, string? executionId, string? instanceId, ushort payloadFieldCount) -> void -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteListPayload(System.IO.Stream! stream, ushort fieldId, T[]? list, System.Action! writeItem) -> void -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Expected = 10 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Actual = 11 -> ushort -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.RetryAttemptNumber = 12 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.IsSuperseded = 13 -> ushort -const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.RetryAttemptNumber = 9 -> ushort -const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.IsSuperseded = 10 -> ushort -Microsoft.Testing.Extensions.MergeOutputFileHelper -static Microsoft.Testing.Extensions.MergeOutputFileHelper.BuildCaseFoldedProbePath(string! directory, string! probeFileName) -> string! -static Microsoft.Testing.Extensions.MergeOutputFileHelper.EnsureOutputDoesNotAliasInput(System.Collections.Generic.IReadOnlyList! inputPaths, string! outputPath) -> void -static Microsoft.Testing.Extensions.MergeOutputFileHelper.WriteViaTemporarySiblingAsync(string! outputPath, System.Func! writeToTempAsync) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.ArtifactPostProcessingHelper -static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.IsReparsePoint(string! path) -> bool -static Microsoft.Testing.Extensions.ArtifactPostProcessingHelper.OrderInputs(System.Collections.Generic.IEnumerable! inputs, bool includeModuleMetadata) -> System.Linq.IOrderedEnumerable! -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Stream! stream, System.Threading.CancellationToken cancellationToken, int maximumFrameSize = 2147483647) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Stream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Pipes.PipeStream! stream, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Pipes.PipeStream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxLongPathHelper -static Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxLongPathHelper.GetPathForFileSystemAccess(string! path) -> string! -Microsoft.Testing.Extensions.TrxReport.Abstractions.TrxReportEngine.AttachmentWarnings.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxResultStreamingStore.IsInline.get -> bool -Microsoft.Testing.Extensions.TrxReport.Abstractions.Streaming.TrxResultStreamingStore.TrxResultStreamingStore(string! filePath, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Logging.ILogger! logger, int batchSize, int flushIntervalMs, bool useBackgroundWriter) -> void -Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void -Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void -static Microsoft.Testing.Extensions.TrxReport.TrxModeHelpers.IsTestHostControllerSupported.get -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.VSTestBridge/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.VSTestBridge/InternalAPI.Shipped.txt index 5cd2581cc5..e282b3fa53 100644 --- a/src/Platform/Microsoft.Testing.Extensions.VSTestBridge/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.VSTestBridge/InternalAPI.Shipped.txt @@ -1,4 +1,12 @@ #nullable enable +abstract Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.EnvironmentVariablesNotSupportedOnBrowserError.get -> string! +abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.DisplayName.get -> string! +abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.ReadRunSettings(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> string? +abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Uid.get -> string! +abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Version.get -> string! +const Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.RunSettingsOptionName = "settings" -> string! +const Microsoft.Testing.Extensions.TestCaseFilterCommandLineOptionsProviderBase.TestCaseFilterOptionName = "filter" -> string! +const Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase.TestRunParameterOptionName = "test-parameter" -> string! const Microsoft.Testing.Extensions.VSTestBridge.CommandLine.RunSettingsCommandLineOptionsProvider.RunSettingsOptionName = "settings" -> string! const Microsoft.Testing.Extensions.VSTestBridge.CommandLine.TestCaseFilterCommandLineOptionsProvider.TestCaseFilterOptionName = "filter" -> string! const Microsoft.Testing.Extensions.VSTestBridge.CommandLine.TestRunParametersCommandLineOptionsProvider.TestRunParameterOptionName = "test-parameter" -> string! @@ -6,6 +14,32 @@ const Microsoft.Testing.Extensions.VSTestBridge.Constants.ExecutorUri = "executo const Microsoft.Testing.Extensions.VSTestBridge.VSTestTestNodeProperties.OriginalExecutorUriPropertyName = "vstest.original-executor-uri" -> string! Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void +Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase +Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.RunSettingsCommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, string! optionDescription, string! fileDoesNotExistErrorFormat, string! fileCannotBeReadErrorFormat) -> void +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.BuildAsync(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Description.get -> string! +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.GetChildKeys(string? parentPath) -> System.Collections.Generic.IEnumerable! +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.LoadAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Order.get -> int +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.RunSettingsConfigurationProviderBase() -> void +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.TryGet(string! key, out string? value) -> bool +Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.TryGetScalar(string! key, out string? value) -> bool +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.Description.get -> string! +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.DisplayName.get -> string! +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.RunSettingsEnvironmentVariableProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> void +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.Uid.get -> string! +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.UpdateAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.ValidateTestHostEnvironmentVariablesAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.Version.get -> string! +Microsoft.Testing.Extensions.RunSettingsProviderHelper +Microsoft.Testing.Extensions.TestCaseFilterCommandLineOptionsProviderBase +Microsoft.Testing.Extensions.TestCaseFilterCommandLineOptionsProviderBase.TestCaseFilterCommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, string! optionDescription) -> void +Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase +Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase.TestRunParametersCommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, string! optionDescription, string! argumentIsNotParameterErrorFormat) -> void Microsoft.Testing.Extensions.VSTestBridge.Capabilities.IInternalVSTestBridgeTrxReportCapability Microsoft.Testing.Extensions.VSTestBridge.Capabilities.IInternalVSTestBridgeTrxReportCapability.IsTrxEnabled.get -> bool Microsoft.Testing.Extensions.VSTestBridge.CommandLine.RunSettingsCommandLineOptionsProvider @@ -35,10 +69,12 @@ Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.ClientCompatibilityService Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.ClientCompatibilityService.ClientCompatibilityService(Microsoft.Testing.Platform.Services.IClientInfo! clientInfo) -> void Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.ClientCompatibilityService.UseVSTestTestCaseLocationProperties.get -> bool Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.ContextAdapterBase +Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.ContextAdapterBase.ContextAdapterBase(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IRunSettings! runSettings, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter, bool useFullyQualifiedNameAsUid) -> void Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.ContextAdapterBase.ContextAdapterBase(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IRunSettings! runSettings, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter) -> void Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.ContextAdapterBase.GetTestCaseFilter(System.Collections.Generic.IEnumerable? supportedProperties, System.Func! propertyProvider) -> Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.ITestCaseFilterExpression? Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.ContextAdapterBase.RunSettings.get -> Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IRunSettings? Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.DiscoveryContextAdapter +Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.DiscoveryContextAdapter.DiscoveryContextAdapter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IRunSettings! runSettings, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter, bool useFullyQualifiedNameAsUid) -> void Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.DiscoveryContextAdapter.DiscoveryContextAdapter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IRunSettings! runSettings, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter) -> void Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.FrameworkHandlerAdapter Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.FrameworkHandlerAdapter.EnableShutdownAfterTestRun.get -> bool @@ -59,6 +95,7 @@ Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.RunContextAdapter.InIsolat Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.RunContextAdapter.IsBeingDebugged.get -> bool Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.RunContextAdapter.IsDataCollectionEnabled.get -> bool Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.RunContextAdapter.KeepAlive.get -> bool +Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.RunContextAdapter.RunContextAdapter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IRunSettings! runSettings, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter, bool useFullyQualifiedNameAsUid) -> void Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.RunContextAdapter.RunContextAdapter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IRunSettings! runSettings, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter) -> void Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.RunContextAdapter.SolutionDirectory.get -> string? Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.RunContextAdapter.TestRunDirectory.get -> string? @@ -99,12 +136,25 @@ Microsoft.Testing.Extensions.VSTestBridge.TestHostControllers.RunSettingsEnviron Microsoft.Testing.Extensions.VSTestBridge.TestHostControllers.RunSettingsEnvironmentVariableProvider.ValidateTestHostEnvironmentVariablesAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.VSTestBridge.TestHostControllers.RunSettingsEnvironmentVariableProvider.Version.get -> string! Microsoft.Testing.Extensions.VSTestBridge.VSTestTestNodeProperties +Microsoft.Testing.Platform.RoslynDebug Microsoft.Testing.Platform.RoslynString +override Microsoft.Testing.Extensions.VSTestBridge.CommandLine.RunSettingsCommandLineOptionsProvider.EnvironmentVariablesNotSupportedOnBrowserError.get -> string! override Microsoft.Testing.Extensions.VSTestBridge.CommandLine.RunSettingsCommandLineOptionsProvider.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! override Microsoft.Testing.Extensions.VSTestBridge.CommandLine.TestRunParametersCommandLineOptionsProvider.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! +override Microsoft.Testing.Extensions.VSTestBridge.Configurations.RunSettingsConfigurationProvider.DisplayName.get -> string! +override Microsoft.Testing.Extensions.VSTestBridge.Configurations.RunSettingsConfigurationProvider.Uid.get -> string! +override Microsoft.Testing.Extensions.VSTestBridge.Configurations.RunSettingsConfigurationProvider.Version.get -> string! override Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.VSTestException.StackTrace.get -> string? +override sealed Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! +override sealed Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! +override sealed Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! Polyfills.Polyfill Polyfills.Polyfill.extension(System.OperatingSystem) +static Microsoft.Testing.Extensions.RunSettingsProviderHelper.ApplyEnvironmentVariables(System.Xml.Linq.XDocument! runSettings, Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables! environmentVariables) -> void +static Microsoft.Testing.Extensions.RunSettingsProviderHelper.CanReadFile(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, string! filePath) -> bool +static Microsoft.Testing.Extensions.RunSettingsProviderHelper.FindInvalidTestParameter(string![]! arguments) -> string? +static Microsoft.Testing.Extensions.RunSettingsProviderHelper.HasEnvironmentVariables(System.Xml.Linq.XDocument! runSettings) -> bool +static Microsoft.Testing.Extensions.RunSettingsProviderHelper.TryLoadRunSettingsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, string! runSettingsOptionName) -> System.Threading.Tasks.Task! static Microsoft.Testing.Extensions.VSTestBridge.Helpers.DebugUtils.LaunchAttachDebugger() -> void static Microsoft.Testing.Extensions.VSTestBridge.Helpers.RunSettingsHelpers.ReadRunSettings(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem) -> string! static Microsoft.Testing.Extensions.VSTestBridge.Helpers.RunSettingsHelpers.ReadRunSettings(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem) -> string! @@ -116,6 +166,8 @@ static Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.RunSettingsPatcher. static Microsoft.Testing.Extensions.VSTestBridge.Requests.VSTestDiscoverTestExecutionRequestFactory.CreateRequest(Microsoft.Testing.Platform.Requests.DiscoverTestExecutionRequest! discoverTestExecutionRequest, Microsoft.Testing.Extensions.VSTestBridge.VSTestBridgedTestFrameworkBase! adapterExtension, string![]! testAssemblyPaths, System.Threading.CancellationToken cancellationToken) -> Microsoft.Testing.Extensions.VSTestBridge.Requests.VSTestDiscoverTestExecutionRequest! static Microsoft.Testing.Extensions.VSTestBridge.Requests.VSTestRunTestExecutionRequestFactory.CreateRequest(Microsoft.Testing.Platform.Requests.RunTestExecutionRequest! runTestExecutionRequest, Microsoft.Testing.Extensions.VSTestBridge.VSTestBridgedTestFrameworkBase! adapterExtension, string![]! testAssemblyPaths, System.Threading.CancellationToken cancellationToken) -> Microsoft.Testing.Extensions.VSTestBridge.Requests.VSTestRunTestExecutionRequest! static Microsoft.Testing.Extensions.VSTestBridge.SynchronizedSingleSessionVSTestBridgedTestFramework.GetAssemblyPath(System.Reflection.Assembly! assembly) -> string! +static Microsoft.Testing.Platform.RoslynDebug.Assert(bool b, string! message) -> void +static Microsoft.Testing.Platform.RoslynDebug.Assert(bool b) -> void static Microsoft.Testing.Platform.RoslynString.IsNullOrEmpty(string? value) -> bool static Microsoft.Testing.Platform.RoslynString.IsNullOrWhiteSpace(string? value) -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.VSTestBridge/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.VSTestBridge/InternalAPI.Unshipped.txt index dec27bfc70..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.VSTestBridge/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.VSTestBridge/InternalAPI.Unshipped.txt @@ -1,53 +1 @@ #nullable enable -abstract Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.EnvironmentVariablesNotSupportedOnBrowserError.get -> string! -abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.DisplayName.get -> string! -abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.ReadRunSettings(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> string? -abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Uid.get -> string! -abstract Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Version.get -> string! -const Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.RunSettingsOptionName = "settings" -> string! -Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase -Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.RunSettingsCommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, string! optionDescription, string! fileDoesNotExistErrorFormat, string! fileCannotBeReadErrorFormat) -> void -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.BuildAsync(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Description.get -> string! -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.GetChildKeys(string? parentPath) -> System.Collections.Generic.IEnumerable! -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.LoadAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.Order.get -> int -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.RunSettingsConfigurationProviderBase() -> void -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.TryGet(string! key, out string? value) -> bool -Microsoft.Testing.Extensions.RunSettingsConfigurationProviderBase.TryGetScalar(string! key, out string? value) -> bool -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.Description.get -> string! -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.DisplayName.get -> string! -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.RunSettingsEnvironmentVariableProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> void -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.Uid.get -> string! -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.UpdateAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.ValidateTestHostEnvironmentVariablesAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.RunSettingsEnvironmentVariableProviderBase.Version.get -> string! -Microsoft.Testing.Extensions.RunSettingsProviderHelper -const Microsoft.Testing.Extensions.TestCaseFilterCommandLineOptionsProviderBase.TestCaseFilterOptionName = "filter" -> string! -Microsoft.Testing.Extensions.TestCaseFilterCommandLineOptionsProviderBase -Microsoft.Testing.Extensions.TestCaseFilterCommandLineOptionsProviderBase.TestCaseFilterCommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, string! optionDescription) -> void -const Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase.TestRunParameterOptionName = "test-parameter" -> string! -Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase -Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase.TestRunParametersCommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, string! optionDescription, string! argumentIsNotParameterErrorFormat) -> void -override sealed Microsoft.Testing.Extensions.TestRunParametersCommandLineOptionsProviderBase.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.ContextAdapterBase.ContextAdapterBase(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IRunSettings! runSettings, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter, bool useFullyQualifiedNameAsUid) -> void -Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.DiscoveryContextAdapter.DiscoveryContextAdapter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IRunSettings! runSettings, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter, bool useFullyQualifiedNameAsUid) -> void -Microsoft.Testing.Extensions.VSTestBridge.ObjectModel.RunContextAdapter.RunContextAdapter(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IRunSettings! runSettings, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter, bool useFullyQualifiedNameAsUid) -> void -Microsoft.Testing.Platform.RoslynDebug -override Microsoft.Testing.Extensions.VSTestBridge.CommandLine.RunSettingsCommandLineOptionsProvider.EnvironmentVariablesNotSupportedOnBrowserError.get -> string! -override Microsoft.Testing.Extensions.VSTestBridge.Configurations.RunSettingsConfigurationProvider.DisplayName.get -> string! -override Microsoft.Testing.Extensions.VSTestBridge.Configurations.RunSettingsConfigurationProvider.Uid.get -> string! -override Microsoft.Testing.Extensions.VSTestBridge.Configurations.RunSettingsConfigurationProvider.Version.get -> string! -override sealed Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! -override sealed Microsoft.Testing.Extensions.RunSettingsCommandLineOptionsProviderBase.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Extensions.RunSettingsProviderHelper.ApplyEnvironmentVariables(System.Xml.Linq.XDocument! runSettings, Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables! environmentVariables) -> void -static Microsoft.Testing.Extensions.RunSettingsProviderHelper.CanReadFile(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, string! filePath) -> bool -static Microsoft.Testing.Extensions.RunSettingsProviderHelper.FindInvalidTestParameter(string![]! arguments) -> string? -static Microsoft.Testing.Extensions.RunSettingsProviderHelper.HasEnvironmentVariables(System.Xml.Linq.XDocument! runSettings) -> bool -static Microsoft.Testing.Extensions.RunSettingsProviderHelper.TryLoadRunSettingsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, string! runSettingsOptionName) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.RoslynDebug.Assert(bool b) -> void -static Microsoft.Testing.Platform.RoslynDebug.Assert(bool b, string! message) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/InternalAPI/InternalAPI.Shipped.txt index 46c5393bf1..31b20eeb01 100644 --- a/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/InternalAPI/InternalAPI.Shipped.txt @@ -27,6 +27,17 @@ Microsoft.Testing.Extensions.VideoRecorder.FfmpegVideoRecorder.SegmentDirectory. Microsoft.Testing.Extensions.VideoRecorder.FfmpegVideoRecorder.SegmentExtension.get -> string! Microsoft.Testing.Extensions.VideoRecorder.FfmpegVideoRecorder.Start() -> void Microsoft.Testing.Extensions.VideoRecorder.FfmpegVideoRecorder.StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder +Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.ConcatAsync(System.Collections.Generic.IReadOnlyList! segments, string! outputFileName, string? ffmetadataPath, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.DescribeLastFfmpegError() -> string! +Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.FfmpegPath.get -> string? +Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.IsAvailable.get -> bool +Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.ReadSegments() -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.RecordingStartUtc.get -> System.DateTimeOffset? +Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.SegmentDirectory.get -> string? +Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.SegmentExtension.get -> string! +Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.Start() -> void +Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderCommandLineProvider Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderCommandLineProvider.VideoRecorderCommandLineProvider() -> void Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderSessionHandler @@ -40,6 +51,7 @@ Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderSessionHandler.OnTestSes Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderSessionHandler.OnTestSessionStartingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderSessionHandler.Uid.get -> string! Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderSessionHandler.Version.get -> string! +Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderSessionHandler.VideoRecorderSessionHandler(Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderOptions! options, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder? recorder) -> void Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderSessionHandler.VideoRecorderSessionHandler(Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderOptions! options, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void Microsoft.Testing.Extensions.VideoRecorder.VideoSegment Microsoft.Testing.Extensions.VideoRecorder.VideoSegment.EndSeconds.get -> double @@ -67,10 +79,13 @@ static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetShortTar static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetTargetPlatformName(System.Reflection.Assembly? entryAssembly) -> string? static Microsoft.Testing.Platform.Resources.PlatformResources.GetResourceString(string! resourceKey) -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.InternalLoopAsyncDidNotExitSuccessfullyErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! +static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! static Microsoft.Testing.Platform.Resources.PlatformResources.ResourceManager.get -> System.Resources.ResourceManager! static Microsoft.Testing.Platform.RoslynString.IsNullOrEmpty(string? value) -> bool static Microsoft.Testing.Platform.RoslynString.IsNullOrWhiteSpace(string? value) -> bool static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.GetStandardReplacements(string! processName, string! processId, System.DateTimeOffset timestamp) -> System.Collections.Generic.Dictionary! +static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveTemplate(string! template, System.Collections.Generic.IDictionary? replacements = null) -> string! static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsBrowser() -> bool diff --git a/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/InternalAPI/InternalAPI.Unshipped.txt index 924c8e1cc4..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/InternalAPI/InternalAPI.Unshipped.txt @@ -1,16 +1 @@ #nullable enable -Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder -Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.ConcatAsync(System.Collections.Generic.IReadOnlyList! segments, string! outputFileName, string? ffmetadataPath, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.DescribeLastFfmpegError() -> string! -Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.FfmpegPath.get -> string? -Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.IsAvailable.get -> bool -Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.ReadSegments() -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.RecordingStartUtc.get -> System.DateTimeOffset? -Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.SegmentDirectory.get -> string? -Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.SegmentExtension.get -> string! -Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.Start() -> void -Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder.StopAsync(System.Threading.CancellationToken cancellationToken = default(System.Threading.CancellationToken)) -> System.Threading.Tasks.Task! -Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderSessionHandler.VideoRecorderSessionHandler(Microsoft.Testing.Extensions.VideoRecorder.VideoRecorderOptions! options, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Extensions.VideoRecorder.IVideoRecorder? recorder) -> void -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipeDirectoryNotWritableErrorMessage.get -> string! -static Microsoft.Testing.Platform.Resources.PlatformResources.NamedPipePathTooLongErrorMessage.get -> string! -static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! diff --git a/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Shipped.txt index 227095275f..a52a8dc8eb 100644 --- a/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Shipped.txt @@ -1,7 +1,9 @@ #nullable enable [TPEXP]const Microsoft.Testing.Platform.Requests.TreeNodeFilter.AllNodesBelowRegexString = ".*.*" -> string! +[TPEXP]Microsoft.Testing.Platform.Builder.TestApplicationBuilder.ArtifactPostProcessing.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessingManager! [TPEXP]Microsoft.Testing.Platform.Builder.TestApplicationBuilder.Configuration.get -> Microsoft.Testing.Platform.Configurations.IConfigurationManager! [TPEXP]Microsoft.Testing.Platform.Builder.TestApplicationBuilder.Logging.get -> Microsoft.Testing.Platform.Logging.ILoggingManager! +[TPEXP]Microsoft.Testing.Platform.Builder.TestApplicationBuilder.Tools.get -> Microsoft.Testing.Platform.Tools.IToolsManager! [TPEXP]Microsoft.Testing.Platform.CommandLine.CommandLineParseResult.CommandLine.get -> string! [TPEXP]Microsoft.Testing.Platform.CommandLine.CommandLineParseResult.CommandLineParseResult(string? toolName, System.Collections.Generic.IReadOnlyList! options, System.Collections.Generic.IReadOnlyList! errors, System.Collections.Generic.IReadOnlyList! arguments) -> void [TPEXP]Microsoft.Testing.Platform.Requests.TreeNodeFilter.ContainsPropertyFilters.get -> bool @@ -15,7 +17,7 @@ abstract Microsoft.Testing.Platform.Configurations.ConfigurationSourceBase.BuildAsync(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> System.Threading.Tasks.Task! abstract Microsoft.Testing.Platform.Configurations.ConfigurationSourceBase.Order.get -> int abstract Microsoft.Testing.Platform.Configurations.ConfigurationSourceBase.Uid.get -> string! -abstract Microsoft.Testing.Platform.Hosts.CommonHost.InternalRunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +abstract Microsoft.Testing.Platform.Hosts.CommonHost.InternalRunAsync(System.Threading.CancellationToken cancellationToken, System.Collections.Generic.List! alreadyDisposed) -> System.Threading.Tasks.Task! abstract Microsoft.Testing.Platform.Hosts.CommonHost.RunTestApplicationLifeCycleCallbacks.get -> bool abstract Microsoft.Testing.Platform.IPC.Serializers.NamedPipeSerializer.DeserializeCore(System.IO.Stream! stream) -> T abstract Microsoft.Testing.Platform.IPC.Serializers.NamedPipeSerializer.Id.get -> int @@ -34,6 +36,7 @@ abstract Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBa abstract Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.ResetColor() -> void abstract Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.SetColor(Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalColor color) -> void abstract Microsoft.Testing.Platform.ServerMode.RpcMessage.$() -> Microsoft.Testing.Platform.ServerMode.RpcMessage! +const Microsoft.Testing.Platform.CommandLine.FlakyTestsReportingOptions.ShowFlakyTestsOptionName = "show-flaky-tests" -> string! const Microsoft.Testing.Platform.CommandLine.MaxFailedTestsCommandLineOptionsProvider.MaxFailedTestsOptionKey = "maximum-failed-tests" -> string! const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.ClientHostOptionKey = "client-host" -> string! const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.ClientPortOptionKey = "client-port" -> string! @@ -48,7 +51,13 @@ const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.Discove const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DiscoverTestsOptionKey = "list-tests" -> string! const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DiscoverTestsTextArgument = "text" -> string! const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DotnetTestCliProtocolName = "dotnettestcli" -> string! +const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DotNetTestHttpEndpointOptionKey = "dotnet-test-http-endpoint" -> string! +const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DotNetTestHttpTokenOptionKey = "dotnet-test-http-token" -> string! const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DotNetTestPipeOptionKey = "dotnet-test-pipe" -> string! +const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DotNetTestTransportHttpArgument = "http" -> string! +const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DotNetTestTransportOptionKey = "dotnet-test-transport" -> string! +const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DotNetTestTransportPipeArgument = "pipe" -> string! +const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.EnableDynamicExtensionsOptionKey = "enable-dynamic-extensions" -> string! const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.ExitOnProcessExitOptionKey = "exit-on-process-exit" -> string! const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.FilterUidOptionKey = "filter-uid" -> string! const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.HelpOptionKey = "help" -> string! @@ -68,6 +77,7 @@ const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.ZeroTes const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.ZeroTestsPolicyStrictArgument = "strict" -> string! const Microsoft.Testing.Platform.CommandLine.TreeNodeFilterCommandLineOptionsProvider.TreenodeFilter = "treenode-filter" -> string! const Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.DefaultTestResultFolderName = "TestResults" -> string! +const Microsoft.Testing.Platform.Configurations.PlatformConfigurationConstants.CommandLineOptionDefaultsSectionName = "commandLineOptionDefaults" -> string! const Microsoft.Testing.Platform.Configurations.PlatformConfigurationConstants.CommandLineOptionsSectionName = "commandLineOptions" -> string! const Microsoft.Testing.Platform.Configurations.PlatformConfigurationConstants.KeyDelimiter = ":" -> string! const Microsoft.Testing.Platform.Configurations.PlatformConfigurationConstants.PlatformConfigSuffixFileName = ".testconfig.json" -> string! @@ -78,10 +88,25 @@ const Microsoft.Testing.Platform.Configurations.PlatformConfigurationConstants.P const Microsoft.Testing.Platform.Configurations.PlatformConfigurationConstants.PlatformTestHostControllersManagerNamedPipeClientConnectTimeoutSeconds = "platformOptions:testHostControllersManager:namedPipeClient:connectTimeoutSeconds" -> string! const Microsoft.Testing.Platform.Configurations.PlatformConfigurationConstants.PlatformTestHostControllersManagerSingleConnectionNamedPipeServerWaitConnectionTimeoutSeconds = "platformOptions:testHostControllersManager:singleConnectionNamedPipeServer:waitConnectionTimeoutSeconds" -> string! const Microsoft.Testing.Platform.Configurations.PlatformConfigurationConstants.PlatformTestHostWorkingDirectory = "platformOptions:testHostWorkingDirectory" -> string! +const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.AssemblyPathPropertyName = "assemblyPath" -> string! +const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.DisplayNamePropertyName = "displayName" -> string! +const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.EnabledPropertyName = "enabled" -> string! +const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.ExtensionsPropertyName = "extensions" -> string! +const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.HookMethodName = "AddExtensions" -> string! +const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.IdPropertyName = "id" -> string! +const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.ManifestFileSuffix = ".testingplatformextensions.json" -> string! +const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.ManifestSearchPattern = "*.testingplatformextensions.json" -> string! +const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.SharedPlatformAssemblyName = "Microsoft.Testing.Platform" -> string! +const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.TypeFullNamePropertyName = "typeFullName" -> string! +const Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.ToolName = "internal-merge-artifacts" -> string! +const Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.ManifestOptionName = "manifest" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_CLI_TELEMETRY_OPTOUT = "DOTNET_CLI_TELEMETRY_OPTOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORY = "DOTNET_CLI_TEST_COMMAND_WORKING_DIRECTORY" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_NOLOGO = "DOTNET_NOLOGO" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.DOTNET_WATCH = "DOTNET_WATCH" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT = "TESTINGPLATFORM_DEFAULT_HANG_TIMEOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC = "TESTINGPLATFORM_DIAGNOSTIC" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX = "TESTINGPLATFORM_DIAGNOSTIC_FILE_PREFIX" -> string! @@ -90,6 +115,7 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX = "TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE = "TESTINGPLATFORM_DIAGNOSTIC_SYNCHRONOUS_WRITE" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY = "TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER = "TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_EXECUTIONID = "TESTINGPLATFORM_DOTNETTEST_EXECUTIONID" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION = "TESTINGPLATFORM_EXIT_PROCESS_ON_UNHANDLED_EXCEPTION" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_EXITCODE_IGNORE = "TESTINGPLATFORM_EXITCODE_IGNORE" -> string! @@ -97,8 +123,10 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER = "TESTINGPLATFORM_LAUNCH_ATTACH_DEBUGGER" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_MESSAGEBUS_DRAINDATA_ATTEMPTS = "TESTINGPLATFORM_MESSAGEBUS_DRAINDATA_ATTEMPTS" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_NOBANNER = "TESTINGPLATFORM_NOBANNER" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TELEMETRY_OPTOUT = "TESTINGPLATFORM_TELEMETRY_OPTOUT" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID = "TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID" -> string! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_FINALIZATION_TIMEOUT_SECONDS = "TESTINGPLATFORM_TESTHOSTCONTROLLER_FINALIZATION_TIMEOUT_SECONDS" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID = "TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_PIPENAME = "TESTINGPLATFORM_TESTHOSTCONTROLLER_PIPENAME" -> string! const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_SKIPEXTENSION = "TESTINGPLATFORM_TESTHOSTCONTROLLER_SKIPEXTENSION" -> string! @@ -142,11 +170,15 @@ const Microsoft.Testing.Platform.IPC.DisplayMessageLevels.Warning = 1 -> byte const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.ErrorMessage = 1 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.ErrorType = 2 -> ushort const Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId.StackTrace = 3 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Actual = 11 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Duration = 4 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.ErrorOutput = 8 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.ExceptionMessageList = 6 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Expected = 10 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.IsSuperseded = 13 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Reason = 5 -> ushort +const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.RetryAttemptNumber = 12 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.SessionUid = 9 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.StandardOutput = 7 -> ushort const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.State = 3 -> ushort @@ -154,6 +186,8 @@ const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Uid = 1 -> const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Description = 3 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.FullPath = 1 -> ushort +const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.InputArtifactPaths = 8 -> ushort +const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Kind = 7 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.SessionUid = 6 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.TestDisplayName = 5 -> ushort const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.TestUid = 4 -> ushort @@ -164,12 +198,15 @@ const Microsoft.Testing.Platform.IPC.FileArtifactMessagesFieldsId.MessagesSerial const Microsoft.Testing.Platform.IPC.HandshakeMessageExecutionModes.Discover = "discover" -> string! const Microsoft.Testing.Platform.IPC.HandshakeMessageExecutionModes.Help = "help" -> string! const Microsoft.Testing.Platform.IPC.HandshakeMessageExecutionModes.Run = "run" -> string! +const Microsoft.Testing.Platform.IPC.HandshakeMessageExecutionModes.Tool = "tool" -> string! const Microsoft.Testing.Platform.IPC.HandshakeMessageFieldsId.MessagesSerializerId = 9 -> int +const Microsoft.Testing.Platform.IPC.HandshakeMessageHostTypes.ArtifactPostProcessor = "ArtifactPostProcessor" -> string! const Microsoft.Testing.Platform.IPC.HandshakeMessageHostTypes.ServerTestHost = "ServerTestHost" -> string! const Microsoft.Testing.Platform.IPC.HandshakeMessageHostTypes.TestHost = "TestHost" -> string! const Microsoft.Testing.Platform.IPC.HandshakeMessageHostTypes.TestHostController = "TestHostController" -> string! const Microsoft.Testing.Platform.IPC.HandshakeMessageHostTypes.TestHostOrchestrator = "TestHostOrchestrator" -> string! const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.Architecture = 1 -> byte +const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.AttemptNumber = 13 -> byte const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.ExecutionId = 7 -> byte const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.ExecutionMode = 10 -> byte const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.Framework = 2 -> byte @@ -180,8 +217,15 @@ const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.ModulePath = const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.OrchestratorFeature = 11 -> byte const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.OS = 3 -> byte const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.PID = 0 -> byte +const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.RequiredPostProcessingSupported = 19 -> byte +const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.RequiredPostProcessorKinds = 18 -> byte const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.ServerControlPipeName = 12 -> byte +const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.SupportedPostProcessorExtensionsLegacy = 15 -> byte +const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.SupportedPostProcessorKinds = 14 -> byte const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.SupportedProtocolVersions = 4 -> byte +const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.SupportedTruncatedRunPostProcessorExtensionsLegacy = 17 -> byte +const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.SupportedTruncatedRunPostProcessorKinds = 16 -> byte +const Microsoft.Testing.Platform.IPC.NamedPipeServer.MaxUnixDomainSocketPathLengthInBytes = 103 -> int const Microsoft.Testing.Platform.IPC.ProtocolConstants.SupportedVersions = "1.0.0;1.1.0;1.2.0;1.3.0;1.4.0" -> string! const Microsoft.Testing.Platform.IPC.ServerControlKinds.CancelSession = 1 -> byte const Microsoft.Testing.Platform.IPC.ServerControlMessageFieldsId.Kind = 1 -> ushort @@ -191,7 +235,9 @@ const Microsoft.Testing.Platform.IPC.SessionEventTypes.TestSessionStart = 0 -> b const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.DisplayName = 2 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.Duration = 4 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.ErrorOutput = 7 -> ushort +const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.IsSuperseded = 10 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.Reason = 5 -> ushort +const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.RetryAttemptNumber = 9 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.SessionUid = 8 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.StandardOutput = 6 -> ushort const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.State = 3 -> ushort @@ -229,6 +275,8 @@ const Microsoft.Testing.Platform.OutputDevice.AzureDevOpsLogIssueFormatter.Sever const Microsoft.Testing.Platform.OutputDevice.AzureDevOpsLogIssueFormatter.SeverityWarning = "warning" -> string! const Microsoft.Testing.Platform.OutputDevice.DiscoveredTestsJsonSerializer.SchemaVersion = 1 -> int const Microsoft.Testing.Platform.OutputDevice.OutputDeviceBannerHelper.TESTINGPLATFORM_CONSOLEOUTPUTDEVICE_SKIP_BANNER = "TESTINGPLATFORM_CONSOLEOUTPUTDEVICE_SKIP_BANNER" -> string! +const Microsoft.Testing.Platform.OutputDevice.ProgressReportingConfiguration.MTP_PROGRESS_SILENCE_SECONDS = "MTP_PROGRESS_SILENCE_SECONDS" -> string! +const Microsoft.Testing.Platform.OutputDevice.ProgressReportingConfiguration.MTP_PROGRESS_SLOW_TEST_SECONDS = "MTP_PROGRESS_SLOW_TEST_SECONDS" -> string! const Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiCodes.CSI = "\u001b[" -> string! const Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiCodes.CsiEraseInDisplay = "\u001b[J" -> string! const Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiCodes.CsiEraseInLine = "\u001b[K" -> string! @@ -259,13 +307,23 @@ const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterComma const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.NoProgressOption = "no-progress" -> string! const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.OutputOption = "output" -> string! const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.OutputOptionDetailedArgument = "detailed" -> string! +const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.OutputOptionMinimalArgument = "minimal" -> string! const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.OutputOptionNormalArgument = "normal" -> string! const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ProgressOption = "progress" -> string! +const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowFlakyTestsOption = "show-flaky-tests" -> string! const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowOutputAllArgument = "all" -> string! const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowOutputFailedArgument = "failed" -> string! const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowOutputNoneArgument = "none" -> string! +const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowSlowestTestsOption = "show-slowest-tests" -> string! const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowStderrOption = "show-stderr" -> string! const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowStdoutOption = "show-stdout" -> string! +const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsAllArgument = "all" -> string! +const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsFailedArgument = "failed" -> string! +const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsNoneArgument = "none" -> string! +const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsOption = "show-test-results" -> string! +const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsPassedArgument = "passed" -> string! +const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsSkippedArgument = "skipped" -> string! +const Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.MaximumVisibleProgressMessages = 5 -> int const Microsoft.Testing.Platform.ServerMode.JsonRpcMethods.CancelRequest = "$/cancelRequest" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcMethods.ClientLog = "client/log" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcMethods.Exit = "exit" -> string! @@ -275,6 +333,7 @@ const Microsoft.Testing.Platform.ServerMode.JsonRpcMethods.TestingDiscoverTests const Microsoft.Testing.Platform.ServerMode.JsonRpcMethods.TestingRunTests = "testing/runTests" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcMethods.TestingTestUpdatesAttachments = "testing/testUpdates/attachments" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcMethods.TestingTestUpdatesTests = "testing/testUpdates/tests" -> string! +const Microsoft.Testing.Platform.ServerMode.JsonRpcProtocolVersions.V1 = "1.0.0" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Args = "Args" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Attachments = "attachments" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.AttachmentsSupport = "attachmentsSupport" -> string! @@ -292,6 +351,7 @@ const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.EventName = "eventNam const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Filter = "filter" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Id = "id" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.InvalidRunIdErrorMessage = "'runId' field is not a valid Guid" -> string! +const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.IsStateful = "isStateful" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.JsonRpc = "jsonrpc" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Level = "level" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Message = "message" -> string! @@ -306,10 +366,13 @@ const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Parent = "parent" -> const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.ProcessId = "processId" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Producer = "producer" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Program = "Program" -> string! +const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.ProtocolVersion = "protocolVersion" -> string! +const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.ProtocolVersions = "protocolVersions" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Result = "result" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.RunId = "runId" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.ServerInfo = "serverInfo" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.SupportsDiscovery = "supportsDiscovery" -> string! +const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.SupportsTestCoverageMessages = "supportsTestCoverageMessages" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Testing = "testing" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Tests = "tests" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Type = "type" -> string! @@ -318,6 +381,7 @@ const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Uri = "uri" -> string const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.Version = "version" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.VSTestProviderSupport = "vstestProvider" -> string! const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.WorkingDirectory = "WorkingDirectory" -> string! +const Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.DefaultAttributeValueLengthLimit = 8192 -> int const Microsoft.Testing.Platform.Telemetry.TelemetryEvents.ConsoleTestHostExitEventName = "dotnet/testingplatform/host/consoletesthostexit" -> string! const Microsoft.Testing.Platform.Telemetry.TelemetryEvents.TestHostBuiltEventName = "dotnet/testingplatform/host/testhostbuilt" -> string! const Microsoft.Testing.Platform.Telemetry.TelemetryEvents.TestHostControllersTestHostExitEventName = "dotnet/testingplatform/host/testhostcontrollerstesthostexit" -> string! @@ -369,6 +433,82 @@ const Microsoft.Testing.Platform.Telemetry.TelemetryProperties.SessionId = "sess const Microsoft.Testing.Platform.Telemetry.TelemetryProperties.True = "true" -> string! const Microsoft.Testing.Platform.Telemetry.TelemetryProperties.VersionPropertyName = "telemetry version" -> string! const Microsoft.Testing.Platform.Telemetry.TelemetryProperties.VersionValue = "20" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Activities.TestFramework = "TestFramework" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Activities.TestHostBuilder = "TestHostBuilder" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.CodeFilePath = "code.file.path" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.CodeFunctionName = "code.function.name" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.CodeLineNumber = "code.line.number" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.CodeStacktrace = "code.stacktrace" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.ErrorType = "error.type" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestAssembly = "test.assembly" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestClass = "test.class" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestDuration = "test.duration.ms" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestFilePath = "test.file.path" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestId = "test.id" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestLineEnd = "test.line.end" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestLineStart = "test.line.start" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestMetadataPrefix = "test.metadataProperty." -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestMethod = "test.method" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestName = "test.name" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestNamespace = "test.namespace" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestParentId = "test.parent.id" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestResult = "test.result" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestResultExceptionMessage = "test.result.exception.message" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestResultExceptionStackTrace = "test.result.exception.stacktrace" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestResultExceptionType = "test.result.exception.type" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestResultExplanation = "test.result.explanation" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestResultTimeout = "test.result.timeout.ms" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestStderr = "test.stderr" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestStdout = "test.stdout" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestAssemblyName = "test.assembly.name" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseDurationMilliseconds = "test.case.duration_ms" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseId = "test.case.id" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseName = "test.case.name" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseParentId = "test.case.parent.id" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseResultExplanation = "test.case.result.explanation" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseResultStatus = "test.case.result.status" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseRetryAttempt = "test.case.retry.attempt" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseTimeoutMilliseconds = "test.case.timeout" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestExtensionDisplayName = "test.extension.display_name" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestExtensionUid = "test.extension.uid" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestExtensionVersion = "test.extension.version" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestFrameworkName = "test.framework.name" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestFrameworkVersion = "test.framework.version" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestHostType = "test.host.type" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestMetadataPrefix = "test.metadata." -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestOutputStderr = "test.output.stderr" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestOutputStdout = "test.output.stdout" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestRunExitCode = "test.run.exit_code" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestRunFailedCount = "test.run.failed" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestRunRequestType = "test.run.request_type" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestRunResultStatus = "test.run.result.status" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestRunSkippedCount = "test.run.skipped" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestRunTotalCount = "test.run.total" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestSessionId = "test.session.id" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestStepPrefix = "test.step." -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestSuiteName = "test.suite.name" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsCompleted = "tests.completed" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsDiscovered = "tests.discovered" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsDuration = "tests.duration" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsFailed = "tests.failed" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsPassed = "tests.passed" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsSkipped = "tests.skipped" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsStarted = "tests.started" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsUnknown = "tests.unknown" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.TestCaseDuration = "test.case.duration" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.TestCaseResultCount = "test.case.result.count" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.TestRetryCount = "test.case.retry.count" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.TestRunActiveCases = "test.case.active" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.TestRunDuration = "test.run.duration" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Cancelled = "cancelled" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Error = "error" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Fail = "fail" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Pass = "pass" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Skipped = "skipped" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Timeout = "timeout" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Unknown = "unknown" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Units.Count = "{test}" -> string! +const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Units.Seconds = "s" -> string! const Microsoft.Testing.Platform.TestHostControllers.TestConfigurationEnvironmentVariableProvider.EnvironmentVariablesSectionName = "environmentVariables" -> string! Microsoft.CodeAnalysis.EmbeddedAttribute Microsoft.CodeAnalysis.EmbeddedAttribute.EmbeddedAttribute() -> void @@ -403,6 +543,7 @@ Microsoft.Testing.Platform.Capabilities.TestFramework.INamedFeatureCapability Microsoft.Testing.Platform.Capabilities.TestFramework.INamedFeatureCapability.IsSupported(string! featureName) -> bool Microsoft.Testing.Platform.Capabilities.TestFramework.ITestNodesTreeFilterTestFrameworkCapability Microsoft.Testing.Platform.Capabilities.TestFramework.ITestNodesTreeFilterTestFrameworkCapability.IsSupported.get -> bool +Microsoft.Testing.Platform.CommandLine.CommandLineArgumentsRedactor Microsoft.Testing.Platform.CommandLine.CommandLineHandler Microsoft.Testing.Platform.CommandLine.CommandLineHandler.CommandLineHandler(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! parseResult, System.Collections.Generic.IReadOnlyCollection! extensionsCommandLineOptionsProviders, System.Collections.Generic.IReadOnlyCollection! systemCommandLineOptionsProviders, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Configurations.IConfiguration? configuration) -> void Microsoft.Testing.Platform.CommandLine.CommandLineHandler.CommandLineHandler(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! parseResult, System.Collections.Generic.IReadOnlyCollection! extensionsCommandLineOptionsProviders, System.Collections.Generic.IReadOnlyCollection! systemCommandLineOptionsProviders, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature) -> void @@ -428,15 +569,6 @@ Microsoft.Testing.Platform.CommandLine.CommandLineManager.AddProvider(System.Fun Microsoft.Testing.Platform.CommandLine.CommandLineManager.BuildAsync(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! parseResult, System.IServiceProvider! serviceProvider, Microsoft.Testing.Platform.Configurations.IConfiguration! configuration) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.CommandLine.CommandLineManager.CommandLineManager(Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo) -> void Microsoft.Testing.Platform.CommandLine.CommandLineOptionArgumentValidator -Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase -Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.CommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, System.Collections.Generic.IReadOnlyCollection! commandLineOptions) -> void -Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.CommandLineOptionsProviderBase(string! uid, string! version, string! displayName, string! description, System.Collections.Generic.IReadOnlyCollection! commandLineOptions) -> void -Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.Description.get -> string! -Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.DisplayName.get -> string! -Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.GetCommandLineOptions() -> System.Collections.Generic.IReadOnlyCollection! -Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.Uid.get -> string! -Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.Version.get -> string! Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderCache Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderCache.CommandLineOptionsProviderCache() -> void Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderCache.CommandLineOptionsProviderCache(Microsoft.Testing.Platform.Extensions.CommandLine.ICommandLineOptionsProvider! commandLineOptionsProvider) -> void @@ -455,9 +587,12 @@ Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProxy.SetCommandLineOpt Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProxy.TryGetOptionArgumentList(string! optionName, out string![]? arguments) -> bool Microsoft.Testing.Platform.CommandLine.CommandLineOptionsValidator Microsoft.Testing.Platform.CommandLine.CommandLineParser +Microsoft.Testing.Platform.CommandLine.FlakyTestsReportingOptions Microsoft.Testing.Platform.CommandLine.ICommandLineHandler Microsoft.Testing.Platform.CommandLine.ICommandLineHandler.IsHelpInvoked() -> bool Microsoft.Testing.Platform.CommandLine.ICommandLineHandler.PrintHelpAsync(Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, System.Collections.Generic.IReadOnlyList? availableTools, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.CommandLine.ICommandLineOptionsWithDefaults +Microsoft.Testing.Platform.CommandLine.ICommandLineOptionsWithDefaults.TryGetOptionArgumentListOrDefault(string! optionName, out string![]? arguments) -> bool Microsoft.Testing.Platform.CommandLine.InformativeCommandLineHost Microsoft.Testing.Platform.CommandLine.InformativeCommandLineHost.Dispose() -> void Microsoft.Testing.Platform.CommandLine.InformativeCommandLineHost.InformativeCommandLineHost(int returnValue, System.IServiceProvider! serviceProvider) -> void @@ -486,29 +621,49 @@ Microsoft.Testing.Platform.CommandLine.ZeroTestsPolicy.Strict = 1 -> Microsoft.T Microsoft.Testing.Platform.Configurations.AggregatedConfiguration Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.AggregatedConfiguration(Microsoft.Testing.Platform.Configurations.IConfigurationProvider![]! configurationProviders, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> void Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.CheckTestResultsDirectoryOverrideAndCreateItAsync(Microsoft.Testing.Platform.Logging.IFileLoggerProvider? fileLoggerProvider) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.EnumerateJsonCommandLineOptionDefaults() -> System.Collections.Generic.IReadOnlyList! Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.EnumerateJsonCommandLineOptions() -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.GetChildren() -> System.Collections.Generic.IEnumerable! +Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.GetChildren(string? parentPath) -> System.Collections.Generic.IEnumerable! +Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.GetSection(string! key) -> Microsoft.Testing.Platform.Configurations.IConfigurationSection! Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.GetTestConfigJsonSection(string! sectionName) -> System.Collections.Generic.IReadOnlyList>! Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.NormalizeJsonCommandLineOptionScalars(System.Collections.Generic.IReadOnlyDictionary! optionByName) -> void Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.SetCurrentWorkingDirectory(string! workingDirectory) -> void Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.this[string! key].get -> string? +Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.TryGetCommandLineOptionDefaultFromProviders(string! optionName, out string![]! arguments) -> bool Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.TryGetCommandLineOptionFromProviders(string! optionName, out bool isSet, out string![]! arguments) -> bool +Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.TryGetSectionValue(string! key, out string? value) -> bool Microsoft.Testing.Platform.Configurations.CommandLineConfigurationProvider Microsoft.Testing.Platform.Configurations.CommandLineConfigurationProvider.CommandLineConfigurationProvider(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> void +Microsoft.Testing.Platform.Configurations.CommandLineConfigurationProvider.GetChildKeys(string? parentPath) -> System.Collections.Generic.IEnumerable! Microsoft.Testing.Platform.Configurations.CommandLineConfigurationProvider.LoadAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Configurations.CommandLineConfigurationProvider.TryGet(string! key, out string? value) -> bool +Microsoft.Testing.Platform.Configurations.CommandLineConfigurationProvider.TryGetScalar(string! key, out string? value) -> bool Microsoft.Testing.Platform.Configurations.CommandLineConfigurationSource Microsoft.Testing.Platform.Configurations.CommandLineConfigurationSource.CommandLineConfigurationSource() -> void Microsoft.Testing.Platform.Configurations.ConfigurationManager Microsoft.Testing.Platform.Configurations.ConfigurationManager.AddConfigurationSource(System.Func! source) -> void Microsoft.Testing.Platform.Configurations.ConfigurationManager.BuildAsync(Microsoft.Testing.Platform.Logging.IFileLoggerProvider? syncFileLoggerProvider, Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Configurations.ConfigurationManager.ConfigurationManager(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> void +Microsoft.Testing.Platform.Configurations.ConfigurationProviderHelpers +Microsoft.Testing.Platform.Configurations.ConfigurationSection +Microsoft.Testing.Platform.Configurations.ConfigurationSection.ConfigurationSection(Microsoft.Testing.Platform.Configurations.AggregatedConfiguration! root, string! path) -> void +Microsoft.Testing.Platform.Configurations.ConfigurationSection.GetChildren() -> System.Collections.Generic.IEnumerable! +Microsoft.Testing.Platform.Configurations.ConfigurationSection.GetSection(string! key) -> Microsoft.Testing.Platform.Configurations.IConfigurationSection! +Microsoft.Testing.Platform.Configurations.ConfigurationSection.HasValue.get -> bool +Microsoft.Testing.Platform.Configurations.ConfigurationSection.Key.get -> string! +Microsoft.Testing.Platform.Configurations.ConfigurationSection.Path.get -> string! +Microsoft.Testing.Platform.Configurations.ConfigurationSection.this[string! key].get -> string? +Microsoft.Testing.Platform.Configurations.ConfigurationSection.Value.get -> string? Microsoft.Testing.Platform.Configurations.ConfigurationSourceBase Microsoft.Testing.Platform.Configurations.ConfigurationSourceBase.ConfigurationSourceBase() -> void Microsoft.Testing.Platform.Configurations.EnvironmentVariablesConfigurationProvider Microsoft.Testing.Platform.Configurations.EnvironmentVariablesConfigurationProvider.EnvironmentVariablesConfigurationProvider(Microsoft.Testing.Platform.Helpers.IEnvironment! environmentVariables, string! prefix) -> void Microsoft.Testing.Platform.Configurations.EnvironmentVariablesConfigurationProvider.EnvironmentVariablesConfigurationProvider(Microsoft.Testing.Platform.Helpers.IEnvironment! environmentVariables) -> void +Microsoft.Testing.Platform.Configurations.EnvironmentVariablesConfigurationProvider.GetChildKeys(string? parentPath) -> System.Collections.Generic.IEnumerable! Microsoft.Testing.Platform.Configurations.EnvironmentVariablesConfigurationProvider.LoadAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Configurations.EnvironmentVariablesConfigurationProvider.TryGet(string! key, out string? value) -> bool +Microsoft.Testing.Platform.Configurations.EnvironmentVariablesConfigurationProvider.TryGetScalar(string! key, out string? value) -> bool Microsoft.Testing.Platform.Configurations.EnvironmentVariablesConfigurationSource Microsoft.Testing.Platform.Configurations.EnvironmentVariablesConfigurationSource.EnvironmentVariablesConfigurationSource(Microsoft.Testing.Platform.Helpers.IEnvironment! environmentVariables) -> void Microsoft.Testing.Platform.Configurations.IConfigurationBuilder @@ -522,7 +677,9 @@ Microsoft.Testing.Platform.Configurations.JsonConfigurationFileParser Microsoft.Testing.Platform.Configurations.JsonConfigurationSource Microsoft.Testing.Platform.Configurations.JsonConfigurationSource.JsonConfigurationProvider Microsoft.Testing.Platform.Configurations.JsonConfigurationSource.JsonConfigurationProvider.ConfigurationFile.get -> string? +Microsoft.Testing.Platform.Configurations.JsonConfigurationSource.JsonConfigurationProvider.EnumerateCommandLineOptionDefaults() -> System.Collections.Generic.IReadOnlyList! Microsoft.Testing.Platform.Configurations.JsonConfigurationSource.JsonConfigurationProvider.EnumerateCommandLineOptions() -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Platform.Configurations.JsonConfigurationSource.JsonConfigurationProvider.GetChildKeys(string? parentPath) -> System.Collections.Generic.IEnumerable! Microsoft.Testing.Platform.Configurations.JsonConfigurationSource.JsonConfigurationProvider.GetSection(string! sectionName) -> System.Collections.Generic.IReadOnlyList>! Microsoft.Testing.Platform.Configurations.JsonConfigurationSource.JsonConfigurationProvider.JsonConfigurationProvider(Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult, Microsoft.Testing.Platform.Logging.ILogger? logger) -> void Microsoft.Testing.Platform.Configurations.JsonConfigurationSource.JsonConfigurationProvider.LoadAsync() -> System.Threading.Tasks.Task! @@ -533,6 +690,7 @@ Microsoft.Testing.Platform.Configurations.PlatformConfigurationConstants Microsoft.Testing.Platform.DotnetTestConnection Microsoft.Testing.Platform.DotnetTestConnection.AfterCommonServiceSetupAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.DotnetTestConnection.Dispose() -> void +Microsoft.Testing.Platform.DotnetTestConnection.DotnetTestConnection(Microsoft.Testing.Platform.CommandLine.CommandLineHandler! commandLineHandler, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource! cancellationTokenSource, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void Microsoft.Testing.Platform.DotnetTestConnection.DotnetTestConnection(Microsoft.Testing.Platform.CommandLine.CommandLineHandler! commandLineHandler, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource! cancellationTokenSource) -> void Microsoft.Testing.Platform.DotnetTestConnection.GetDataConsumerAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.DotnetTestConnection.HelpInvokedAsync() -> System.Threading.Tasks.Task! @@ -540,12 +698,86 @@ Microsoft.Testing.Platform.DotnetTestConnection.IsCompatibleProtocolAsync(string Microsoft.Testing.Platform.DotnetTestConnection.IsDisplayMessageForwardingSupported.get -> bool Microsoft.Testing.Platform.DotnetTestConnection.IsIDE.get -> bool Microsoft.Testing.Platform.DotnetTestConnection.IsLogForwardingSupported.get -> bool +Microsoft.Testing.Platform.DotnetTestConnection.IsRequiredArtifactPostProcessingSupported.get -> bool Microsoft.Testing.Platform.DotnetTestConnection.IsServerControlChannelSupported.get -> bool Microsoft.Testing.Platform.DotnetTestConnection.IsServerMode.get -> bool Microsoft.Testing.Platform.DotnetTestConnection.OnExitAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.DotnetTestConnection.SendMessageAsync(Microsoft.Testing.Platform.IPC.IRequest! message) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.DotnetTestConnection.StartServerControlChannelAsync(System.Func! onCancelSessionRequestedAsync) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.DotnetTestHelper +Microsoft.Testing.Platform.DotnetTestTransportKind +Microsoft.Testing.Platform.DotnetTestTransportKind.Http = 1 -> Microsoft.Testing.Platform.DotnetTestTransportKind +Microsoft.Testing.Platform.DotnetTestTransportKind.NamedPipe = 0 -> Microsoft.Testing.Platform.DotnetTestTransportKind +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionAssemblyLoader +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionAssemblyLoader.DynamicExtensionAssemblyLoader(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem) -> void +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionAssemblyLoader.IsIsolated.get -> bool +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionAssemblyLoader.LoadAssembly(string! assemblyPath) -> System.Reflection.Assembly! +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.AssemblyPath.get -> string! +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.DeduplicationKey.get -> string! +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.DisplayName.get -> string! +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.DynamicExtensionEntry(string! manifestPath, int index, string! id, bool hasExplicitId, string! displayName, string! assemblyPath, string! resolvedAssemblyPath, string! typeFullName, bool isEnabled) -> void +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.HasExplicitId.get -> bool +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.Id.get -> string! +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.Index.get -> int +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.IsEnabled.get -> bool +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.ManifestPath.get -> string! +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.ResolvedAssemblyPath.get -> string! +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.TypeFullName.get -> string! +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionJsonReader +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionLoader +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionLoader.DynamicExtensionLoader(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.DynamicExtensions.IDynamicExtensionAssemblyLoader! assemblyLoader, Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult, Microsoft.Testing.Platform.Logging.ILogger? logger) -> void +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionLoader.LoadAsync(Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder, string![]! args) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifest +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifest.DynamicExtensionManifest(string! manifestPath, System.Collections.Generic.IReadOnlyList! extensions, System.Collections.Generic.IReadOnlyList! unknownProperties) -> void +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifest.Extensions.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifest.ManifestPath.get -> string! +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifest.UnknownProperties.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifestParser +Microsoft.Testing.Platform.DynamicExtensions.IDynamicExtensionAssemblyLoader +Microsoft.Testing.Platform.DynamicExtensions.IDynamicExtensionAssemblyLoader.IsIsolated.get -> bool +Microsoft.Testing.Platform.DynamicExtensions.IDynamicExtensionAssemblyLoader.LoadAssembly(string! assemblyPath) -> System.Reflection.Assembly! +Microsoft.Testing.Platform.DynamicExtensions.IDynamicExtensionRegistrationGuard +Microsoft.Testing.Platform.DynamicExtensions.IDynamicExtensionRegistrationGuard.EnterDynamicExtensionScope(string! displayName, string! manifestPath) -> System.IDisposable! +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.AssemblyPath.get -> string? +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.AssemblyPath.set -> void +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.DisplayName.get -> string? +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.DisplayName.set -> void +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.DuplicateProperties.get -> System.Collections.Generic.List! +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.Enabled.get -> bool? +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.Enabled.set -> void +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.Id.get -> string? +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.Id.set -> void +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.InvalidProperties.get -> System.Collections.Generic.List! +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.RawExtensionEntry() -> void +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.TypeFullName.get -> string? +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.TypeFullName.set -> void +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.UnknownProperties.get -> System.Collections.Generic.List! +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.DuplicateProperties.get -> System.Collections.Generic.List! +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.Entries.get -> System.Collections.Generic.List! +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.HasExtensionsProperty.get -> bool +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.HasExtensionsProperty.set -> void +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.IsExtensionsPropertyAnArray.get -> bool +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.IsExtensionsPropertyAnArray.set -> void +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.RawExtensionManifest() -> void +Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.UnknownProperties.get -> System.Collections.Generic.List! +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.AbortAtDeadlineExtension(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionCapability? capability, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService, Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource! cancellationTokenSource, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, System.TimeSpan? reportTimeout = null, bool isHangDumpEnabled = false) -> void +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.DataTypesConsumed.get -> System.Type![]! +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.Description.get -> string! +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.DisplayName.get -> string! +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.Dispose() -> void +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.NotifyTestExecutionCompleted() -> void +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.OnTestSessionFinishingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.OnTestSessionStartingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.Uid.get -> string! +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.Version.get -> string! +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.WaitForDeadlineHandlingAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Extensions.AbortForMaxFailedTestsExtension Microsoft.Testing.Platform.Extensions.AbortForMaxFailedTestsExtension.AbortForMaxFailedTestsExtension(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionCapability? capability, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService, Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource! testApplicationCancellationTokenSource) -> void Microsoft.Testing.Platform.Extensions.AbortForMaxFailedTestsExtension.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! @@ -555,11 +787,50 @@ Microsoft.Testing.Platform.Extensions.AbortForMaxFailedTestsExtension.DisplayNam Microsoft.Testing.Platform.Extensions.AbortForMaxFailedTestsExtension.IsEnabledAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Extensions.AbortForMaxFailedTestsExtension.Uid.get -> string! Microsoft.Testing.Platform.Extensions.AbortForMaxFailedTestsExtension.Version.get -> string! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.ArtifactPostProcessingDispatcherTool(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, System.Collections.Generic.IReadOnlyList! processors, Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol? protocol, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice) -> void +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.Description.get -> string! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.DisplayName.get -> string! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.Name.get -> string! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.RunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.Uid.get -> string! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.Version.get -> string! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.ArtifactPostProcessingDispatcherToolCommandLine() -> void +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.Description.get -> string! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.DisplayName.get -> string! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.GetCommandLineOptions() -> System.Collections.Generic.IReadOnlyCollection! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.ToolName.get -> string! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.Uid.get -> string! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.Version.get -> string! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingHandshakeProperties +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManager +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManager.AddArtifactPostProcessor(System.Func! factory) -> void +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManager.ArtifactPostProcessingManager() -> void +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManager.BuildAsync(System.IServiceProvider! serviceProvider) -> System.Threading.Tasks.Task!>! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest.ArtifactPostProcessingManifest(string! outputDirectory, System.Collections.Generic.IReadOnlyList! inputs, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! context) -> void +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest.Context.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest.Inputs.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest.OutputDirectory.get -> string! Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.CommandLineOption(string! name, string! description, Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity arity, bool isHidden, bool isBuiltIn) -> void Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.IsBuiltIn.get -> bool Microsoft.Testing.Platform.Extensions.ICompositeExtensionFactory Microsoft.Testing.Platform.Extensions.ICompositeExtensionFactory.GetInstance(System.IServiceProvider? serviceProvider = null) -> object! Microsoft.Testing.Platform.Extensions.InitializableExtension +Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts +Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts.CoverableCount.get -> long +Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts.CoverageCounts() -> void +Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts.CoverageCounts(long coveredCount, long coverableCount) -> void +Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts.CoveredCount.get -> long +Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts.HasCoverableData.get -> bool +Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts.Percentage.get -> double +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetricHelper +Microsoft.Testing.Platform.Extensions.Messages.CoverageReportHelper Microsoft.Testing.Platform.Extensions.Messages.PropertyBag._property -> Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.Property? Microsoft.Testing.Platform.Extensions.Messages.PropertyBag._testNodeStateProperty -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.GetStructEnumerator() -> Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.PropertyBagEnumerator @@ -589,11 +860,13 @@ Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.PropertyBagEnumerator Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.PropertyDebugView Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.PropertyDebugView.Items.get -> Microsoft.Testing.Platform.Extensions.Messages.IProperty![]! Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.PropertyDebugView.PropertyDebugView(Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.Property! property) -> void +Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptPropertyExtensions Microsoft.Testing.Platform.Extensions.Messages.SerializableKeyValuePairStringProperty Microsoft.Testing.Platform.Extensions.Messages.SerializableKeyValuePairStringProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.SerializableKeyValuePairStringProperty? other) -> bool Microsoft.Testing.Platform.Extensions.Messages.SerializableKeyValuePairStringProperty.Key.get -> string! Microsoft.Testing.Platform.Extensions.Messages.SerializableKeyValuePairStringProperty.SerializableKeyValuePairStringProperty(string! key, string! value) -> void Microsoft.Testing.Platform.Extensions.Messages.SerializableKeyValuePairStringProperty.Value.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestNodeExecutionCompletedProperty Microsoft.Testing.Platform.Extensions.Messages.TestRequestExecutionTimeInfo Microsoft.Testing.Platform.Extensions.Messages.TestRequestExecutionTimeInfo.Description.get -> string? Microsoft.Testing.Platform.Extensions.Messages.TestRequestExecutionTimeInfo.DisplayName.get -> string! @@ -631,10 +904,12 @@ Microsoft.Testing.Platform.Helpers.CIEnvironmentDetector Microsoft.Testing.Platform.Helpers.CIEnvironmentDetector.CIEnvironmentDetector(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> void Microsoft.Testing.Platform.Helpers.CIEnvironmentDetector.IsCIEnvironment() -> bool Microsoft.Testing.Platform.Helpers.CountDownEventExtensions +Microsoft.Testing.Platform.Helpers.DeadlineHelper Microsoft.Testing.Platform.Helpers.DisposeHelper Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.AtLeastOneTestFailed = 2 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.DependentProcessExited = 11 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.GenericFailure = 1 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.IncompatibleProtocolVersion = 12 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -643,6 +918,7 @@ Microsoft.Testing.Platform.Helpers.ExitCode.InvalidPlatformSetup = 4 -> Microsof Microsoft.Testing.Platform.Helpers.ExitCode.MinimumExpectedTestsPolicyViolation = 9 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.Success = 0 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestAdapterTestSessionFailure = 10 -> Microsoft.Testing.Platform.Helpers.ExitCode +Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedForMaxFailedTests = 13 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestHostProcessExitedNonGracefully = 7 -> Microsoft.Testing.Platform.Helpers.ExitCode Microsoft.Testing.Platform.Helpers.ExitCode.TestSessionAborted = 3 -> Microsoft.Testing.Platform.Helpers.ExitCode @@ -655,8 +931,6 @@ Microsoft.Testing.Platform.Helpers.IAsyncMonitor.LockAsync(System.Threading.Canc Microsoft.Testing.Platform.Helpers.IAsyncMonitor.LockAsync(System.TimeSpan timeout) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Helpers.IAsyncMonitorFactory Microsoft.Testing.Platform.Helpers.IAsyncMonitorFactory.Create() -> Microsoft.Testing.Platform.Helpers.IAsyncMonitor! -Microsoft.Testing.Platform.Helpers.IClock -Microsoft.Testing.Platform.Helpers.IClock.UtcNow.get -> System.DateTimeOffset Microsoft.Testing.Platform.Helpers.IConsole Microsoft.Testing.Platform.Helpers.IConsole.BufferHeight.get -> int Microsoft.Testing.Platform.Helpers.IConsole.BufferWidth.get -> int @@ -669,8 +943,10 @@ Microsoft.Testing.Platform.Helpers.IConsole.WindowHeight.get -> int Microsoft.Testing.Platform.Helpers.IConsole.WindowWidth.get -> int Microsoft.Testing.Platform.Helpers.IConsole.Write(char value) -> void Microsoft.Testing.Platform.Helpers.IConsole.Write(string? value) -> void +Microsoft.Testing.Platform.Helpers.IConsole.Write(System.Text.StringBuilder! value) -> void Microsoft.Testing.Platform.Helpers.IConsole.WriteLine() -> void Microsoft.Testing.Platform.Helpers.IConsole.WriteLine(string? value) -> void +Microsoft.Testing.Platform.Helpers.IdentityKeyBuilder Microsoft.Testing.Platform.Helpers.IEnvironment Microsoft.Testing.Platform.Helpers.IEnvironment.CommandLine.get -> string! Microsoft.Testing.Platform.Helpers.IEnvironment.Exit(int exitCode) -> void @@ -703,6 +979,7 @@ Microsoft.Testing.Platform.Helpers.IFileSystem.NewFileStream(string! path, Syste Microsoft.Testing.Platform.Helpers.IFileSystem.NewFileStream(string! path, System.IO.FileMode mode) -> Microsoft.Testing.Platform.Helpers.IFileStream! Microsoft.Testing.Platform.Helpers.IFileSystem.ReadAllText(string! path) -> string! Microsoft.Testing.Platform.Helpers.IFileSystem.ReadAllTextAsync(string! path) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Helpers.IFileSystem.ReplaceFile(string! sourceFileName, string! destFileName) -> void Microsoft.Testing.Platform.Helpers.IMainModule Microsoft.Testing.Platform.Helpers.IMainModule.FileName.get -> string! Microsoft.Testing.Platform.Helpers.IMonitor @@ -754,6 +1031,7 @@ Microsoft.Testing.Platform.Helpers.ObjectPool.Allocate() -> T! Microsoft.Testing.Platform.Helpers.ObjectPool.Factory Microsoft.Testing.Platform.Helpers.ObjectPool.Free(T! obj, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.Helpers.PasteArguments +Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper Microsoft.Testing.Platform.Helpers.Sha256Hasher Microsoft.Testing.Platform.Helpers.StackTraceHelper Microsoft.Testing.Platform.Helpers.StackTraceRegexHelper @@ -779,6 +1057,7 @@ Microsoft.Testing.Platform.Helpers.SystemConsole.WindowHeight.get -> int Microsoft.Testing.Platform.Helpers.SystemConsole.WindowWidth.get -> int Microsoft.Testing.Platform.Helpers.SystemConsole.Write(char value) -> void Microsoft.Testing.Platform.Helpers.SystemConsole.Write(string? value) -> void +Microsoft.Testing.Platform.Helpers.SystemConsole.Write(System.Text.StringBuilder! value) -> void Microsoft.Testing.Platform.Helpers.SystemConsole.WriteLine() -> void Microsoft.Testing.Platform.Helpers.SystemConsole.WriteLine(string? value) -> void Microsoft.Testing.Platform.Helpers.SystemEnvironment @@ -819,6 +1098,7 @@ Microsoft.Testing.Platform.Helpers.SystemFileSystem.NewFileStream(string! path, Microsoft.Testing.Platform.Helpers.SystemFileSystem.NewFileStream(string! path, System.IO.FileMode mode) -> Microsoft.Testing.Platform.Helpers.IFileStream! Microsoft.Testing.Platform.Helpers.SystemFileSystem.ReadAllText(string! path) -> string! Microsoft.Testing.Platform.Helpers.SystemFileSystem.ReadAllTextAsync(string! path) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Helpers.SystemFileSystem.ReplaceFile(string! sourceFileName, string! destFileName) -> void Microsoft.Testing.Platform.Helpers.SystemFileSystem.SystemFileSystem() -> void Microsoft.Testing.Platform.Helpers.SystemMainModule Microsoft.Testing.Platform.Helpers.SystemMainModule.FileName.get -> string! @@ -869,6 +1149,7 @@ Microsoft.Testing.Platform.Helpers.SystemTask.SystemTask() -> void Microsoft.Testing.Platform.Helpers.SystemTask.WhenAll(params System.Threading.Tasks.Task![]! tasks) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Helpers.TaskExtensions Microsoft.Testing.Platform.Helpers.TestHostHandleToProcessAdapter +Microsoft.Testing.Platform.Helpers.TestHostHandleToProcessAdapter.DeferDisposalUntilExit() -> void Microsoft.Testing.Platform.Helpers.TestHostHandleToProcessAdapter.Dispose() -> void Microsoft.Testing.Platform.Helpers.TestHostHandleToProcessAdapter.ExitCode.get -> int Microsoft.Testing.Platform.Helpers.TestHostHandleToProcessAdapter.Exited -> System.EventHandler? @@ -900,8 +1181,11 @@ Microsoft.Testing.Platform.Helpers.UnhandledExceptionsPolicy.UnhandledExceptions Microsoft.Testing.Platform.Hosts.CommonHost Microsoft.Testing.Platform.Hosts.CommonHost.CommonHost(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider) -> void Microsoft.Testing.Platform.Hosts.CommonHost.PushOnlyProtocol.get -> Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol? +Microsoft.Testing.Platform.Hosts.CommonHost.RegisterActiveGracefulStopCapabilityAsync(Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionCapability! capability) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Hosts.CommonHost.RequestGracefulSessionStopAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Hosts.CommonHost.RunAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Hosts.CommonHost.ServiceProvider.get -> Microsoft.Testing.Platform.Services.ServiceProvider! +Microsoft.Testing.Platform.Hosts.CommonHost.UnregisterActiveGracefulStopCapability(Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionCapability! capability) -> void Microsoft.Testing.Platform.Hosts.ConsoleTestHost Microsoft.Testing.Platform.Hosts.ConsoleTestHost.ConsoleTestHost(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, System.Func!>! buildTestFrameworkAsync, Microsoft.Testing.Internal.Framework.TestFrameworkManager! testFrameworkManager, Microsoft.Testing.Platform.TestHost.TestHostManager! testHostManager) -> void Microsoft.Testing.Platform.Hosts.IHost @@ -911,6 +1195,7 @@ Microsoft.Testing.Platform.Hosts.IServerTestHost.PushDataAsync(Microsoft.Testing Microsoft.Testing.Platform.Hosts.IServerTestHost.SendTelemetryEventUpdateAsync(Microsoft.Testing.Platform.ServerMode.TelemetryEventArgs! args, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Hosts.IServerTestHost.SendTestUpdateAsync(Microsoft.Testing.Platform.ServerMode.TestNodeStateChangedEventArgs! update, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Hosts.ITestHostBuilder +Microsoft.Testing.Platform.Hosts.ITestHostBuilder.ArtifactPostProcessing.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessingManager! Microsoft.Testing.Platform.Hosts.ITestHostBuilder.BuildAsync(Microsoft.Testing.Platform.Logging.ApplicationLoggingState! loggingState, Microsoft.Testing.Platform.Builder.TestApplicationOptions! testApplicationOptions, Microsoft.Testing.Platform.Helpers.IUnhandledExceptionsHandler! unhandledExceptionsHandler, System.DateTimeOffset createBuilderStart) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Hosts.ITestHostBuilder.CommandLine.get -> Microsoft.Testing.Platform.CommandLine.ICommandLineManager! Microsoft.Testing.Platform.Hosts.ITestHostBuilder.Configuration.get -> Microsoft.Testing.Platform.Configurations.IConfigurationManager! @@ -944,6 +1229,7 @@ Microsoft.Testing.Platform.Hosts.ServerTestHost.Uid.get -> string! Microsoft.Testing.Platform.Hosts.ServerTestHost.Version.get -> string! Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.IsForDiscoveryRequest.get -> bool +Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.IsServerRequest.get -> bool Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.MessageBusProxy.get -> Microsoft.Testing.Platform.Messages.MessageBusProxy! Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.PlatformOutputDisplayService.get -> Microsoft.Testing.Platform.OutputDevice.IPlatformOutputDevice! Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.ServerPerCallConsumers.get -> System.Collections.Generic.IEnumerable! @@ -951,6 +1237,7 @@ Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.ServiceProvider.get -> Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.TestExecutionFilterFactory.get -> Microsoft.Testing.Platform.Requests.ITestExecutionFilterFactory! Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.TestExecutionRequestFactory.get -> Microsoft.Testing.Platform.Requests.ITestExecutionRequestFactory! Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.TestExecutionRequestInvoker.get -> Microsoft.Testing.Platform.Requests.ITestFrameworkInvoker! +Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.TestFrameworkBuilderData(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, Microsoft.Testing.Platform.Requests.ITestExecutionRequestFactory! testExecutionRequestFactory, Microsoft.Testing.Platform.Requests.ITestFrameworkInvoker! testExecutionRequestInvoker, Microsoft.Testing.Platform.Requests.ITestExecutionFilterFactory! testExecutionFilterFactory, Microsoft.Testing.Platform.OutputDevice.IPlatformOutputDevice! platformOutputDisplayService, System.Collections.Generic.IEnumerable! serverPerCallConsumers, Microsoft.Testing.Internal.Framework.TestFrameworkManager! testFrameworkManager, Microsoft.Testing.Platform.TestHost.TestHostManager! testSessionManager, Microsoft.Testing.Platform.Messages.MessageBusProxy! messageBusProxy, bool isForDiscoveryRequest, bool isServerRequest) -> void Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.TestFrameworkBuilderData(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, Microsoft.Testing.Platform.Requests.ITestExecutionRequestFactory! testExecutionRequestFactory, Microsoft.Testing.Platform.Requests.ITestFrameworkInvoker! testExecutionRequestInvoker, Microsoft.Testing.Platform.Requests.ITestExecutionFilterFactory! testExecutionFilterFactory, Microsoft.Testing.Platform.OutputDevice.IPlatformOutputDevice! platformOutputDisplayService, System.Collections.Generic.IEnumerable! serverPerCallConsumers, Microsoft.Testing.Internal.Framework.TestFrameworkManager! testFrameworkManager, Microsoft.Testing.Platform.TestHost.TestHostManager! testSessionManager, Microsoft.Testing.Platform.Messages.MessageBusProxy! messageBusProxy, bool isForDiscoveryRequest) -> void Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.TestFrameworkManager.get -> Microsoft.Testing.Internal.Framework.TestFrameworkManager! Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.TestSessionManager.get -> Microsoft.Testing.Platform.TestHost.TestHostManager! @@ -965,6 +1252,7 @@ Microsoft.Testing.Platform.Hosts.TestFrameworkProxy.TestFrameworkProxy(Microsoft Microsoft.Testing.Platform.Hosts.TestFrameworkProxy.Uid.get -> string! Microsoft.Testing.Platform.Hosts.TestFrameworkProxy.Version.get -> string! Microsoft.Testing.Platform.Hosts.TestHostBuilder +Microsoft.Testing.Platform.Hosts.TestHostBuilder.ArtifactPostProcessing.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessingManager! Microsoft.Testing.Platform.Hosts.TestHostBuilder.BuildAsync(Microsoft.Testing.Platform.Logging.ApplicationLoggingState! loggingState, Microsoft.Testing.Platform.Builder.TestApplicationOptions! testApplicationOptions, Microsoft.Testing.Platform.Helpers.IUnhandledExceptionsHandler! unhandledExceptionsHandler, System.DateTimeOffset createBuilderStart) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Hosts.TestHostBuilder.ChatClientManager.get -> Microsoft.Testing.Platform.AI.IChatClientManager! Microsoft.Testing.Platform.Hosts.TestHostBuilder.CommandLine.get -> Microsoft.Testing.Platform.CommandLine.ICommandLineManager! @@ -981,6 +1269,7 @@ Microsoft.Testing.Platform.Hosts.TestHostBuilder.Tools.get -> Microsoft.Testing. Microsoft.Testing.Platform.Hosts.TestHostControlledHost Microsoft.Testing.Platform.Hosts.TestHostControlledHost.Dispose() -> void Microsoft.Testing.Platform.Hosts.TestHostControlledHost.RunAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Hosts.TestHostControlledHost.TestHostControlledHost(Microsoft.Testing.Platform.IPC.NamedPipeClient! testHostControllerPipeClient, Microsoft.Testing.Platform.Hosts.IHost! innerHost, System.Threading.CancellationToken cancellationToken, Microsoft.Testing.Platform.Services.TestApplicationResult? testApplicationResult = null) -> void Microsoft.Testing.Platform.Hosts.TestHostControlledHost.TestHostControlledHost(Microsoft.Testing.Platform.IPC.NamedPipeClient! testHostControllerPipeClient, Microsoft.Testing.Platform.Hosts.IHost! innerHost, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.Description.get -> string! @@ -1019,27 +1308,42 @@ Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.OnTestSessionFinishingAsyn Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.OnTestSessionStartingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.$() -> Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails! +Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Actual.get -> string? +Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Actual.init -> void Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Artifacts.get -> Microsoft.Testing.Platform.Extensions.Messages.FileArtifactProperty![]! Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Artifacts.init -> void -Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Deconstruct(out byte? State, out long? Duration, out string? Reason, out Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, out string? StandardOutput, out string? StandardError, out Microsoft.Testing.Platform.Extensions.Messages.FileArtifactProperty![]! Artifacts, out Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty![]! Traits) -> void +Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Deconstruct(out byte? State, out long? Duration, out string? Reason, out Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, out string? StandardOutput, out string? StandardError, out Microsoft.Testing.Platform.Extensions.Messages.FileArtifactProperty![]! Artifacts, out Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty![]! Traits, out string? Expected, out string? Actual, out int? RetryAttemptNumber, out bool? IsSuperseded) -> void Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Duration.get -> long? Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Duration.init -> void Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Equals(Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails? other) -> bool Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Exceptions.get -> Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Exceptions.init -> void +Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Expected.get -> string? +Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Expected.init -> void +Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.IsSuperseded.get -> bool? +Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.IsSuperseded.init -> void Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Reason.get -> string? Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Reason.init -> void +Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.RetryAttemptNumber.get -> int? +Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.RetryAttemptNumber.init -> void Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.StandardError.get -> string? Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.StandardError.init -> void Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.StandardOutput.get -> string? Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.StandardOutput.init -> void Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.State.get -> byte? Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.State.init -> void -Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.TestNodeDetails(byte? State, long? Duration, string? Reason, Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, string? StandardOutput, string? StandardError, Microsoft.Testing.Platform.Extensions.Messages.FileArtifactProperty![]! Artifacts, Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty![]! Traits) -> void +Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.TestNodeDetails(byte? State, long? Duration, string? Reason, Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, string? StandardOutput, string? StandardError, Microsoft.Testing.Platform.Extensions.Messages.FileArtifactProperty![]! Artifacts, Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty![]! Traits, string? Expected, string? Actual, int? RetryAttemptNumber, bool? IsSuperseded) -> void Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Traits.get -> Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty![]! Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Traits.init -> void Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.Uid.get -> string! Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.Version.get -> string! +Microsoft.Testing.Platform.IPC.DotnetTestHttpClient +Microsoft.Testing.Platform.IPC.DotnetTestHttpClient.ConnectAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.IPC.DotnetTestHttpClient.Dispose() -> void +Microsoft.Testing.Platform.IPC.DotnetTestHttpClient.DotnetTestHttpClient(System.Uri! endpoint, string! authToken, System.Net.Http.HttpClient! httpClient, bool disposeHttpClient) -> void +Microsoft.Testing.Platform.IPC.DotnetTestHttpClient.DotnetTestHttpClient(System.Uri! endpoint, string! authToken) -> void +Microsoft.Testing.Platform.IPC.DotnetTestHttpClient.IsConnected.get -> bool +Microsoft.Testing.Platform.IPC.DotnetTestHttpClient.RequestReplyAsync(TRequest request, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.IPC.ExceptionMessageFieldsId Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId @@ -1154,7 +1458,9 @@ Microsoft.Testing.Platform.IPC.Models.ExceptionMessage.StackTrace.get -> string? Microsoft.Testing.Platform.IPC.Models.ExceptionMessage.StackTrace.init -> void Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.$() -> Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage! -Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Deconstruct(out string? Uid, out string? DisplayName, out byte? State, out long? Duration, out string? Reason, out Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, out string? StandardOutput, out string? ErrorOutput, out string? SessionUid) -> void +Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Actual.get -> string? +Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Actual.init -> void +Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Deconstruct(out string? Uid, out string? DisplayName, out byte? State, out long? Duration, out string? Reason, out Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, out string? StandardOutput, out string? ErrorOutput, out string? SessionUid, out string? Expected, out string? Actual, out int? RetryAttemptNumber, out bool? IsSuperseded) -> void Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.DisplayName.get -> string? Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.DisplayName.init -> void Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Duration.get -> long? @@ -1164,9 +1470,15 @@ Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.ErrorOutput.get -> Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.ErrorOutput.init -> void Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Exceptions.get -> Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Exceptions.init -> void -Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.FailedTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, string? StandardOutput, string? ErrorOutput, string? SessionUid) -> void +Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Expected.get -> string? +Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Expected.init -> void +Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.FailedTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, string? StandardOutput, string? ErrorOutput, string? SessionUid, string? Expected, string? Actual, int? RetryAttemptNumber = null, bool? IsSuperseded = null) -> void +Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.IsSuperseded.get -> bool? +Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.IsSuperseded.init -> void Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Reason.get -> string? Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Reason.init -> void +Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.RetryAttemptNumber.get -> int? +Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.RetryAttemptNumber.init -> void Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.SessionUid.get -> string? Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.SessionUid.init -> void Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.StandardOutput.get -> string? @@ -1177,15 +1489,19 @@ Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Uid.get -> string? Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Uid.init -> void Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.$() -> Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage! -Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.Deconstruct(out string? FullPath, out string? DisplayName, out string? Description, out string? TestUid, out string? TestDisplayName, out string? SessionUid) -> void +Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.Deconstruct(out string? FullPath, out string? DisplayName, out string? Description, out string? TestUid, out string? TestDisplayName, out string? SessionUid, out string? Kind, out string![]? InputArtifactPaths) -> void Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.Description.get -> string? Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.Description.init -> void Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.DisplayName.get -> string? Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.DisplayName.init -> void Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.Equals(Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage? other) -> bool -Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.FileArtifactMessage(string? FullPath, string? DisplayName, string? Description, string? TestUid, string? TestDisplayName, string? SessionUid) -> void +Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.FileArtifactMessage(string? FullPath, string? DisplayName, string? Description, string? TestUid, string? TestDisplayName, string? SessionUid, string? Kind, string![]? InputArtifactPaths = null) -> void Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.FullPath.get -> string? Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.FullPath.init -> void +Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.InputArtifactPaths.get -> string![]? +Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.InputArtifactPaths.init -> void +Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.Kind.get -> string? +Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.Kind.init -> void Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.SessionUid.get -> string? Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.SessionUid.init -> void Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.TestDisplayName.get -> string? @@ -1219,7 +1535,7 @@ Microsoft.Testing.Platform.IPC.Models.ServerControlMessage.Kind.init -> void Microsoft.Testing.Platform.IPC.Models.ServerControlMessage.ServerControlMessage(byte Kind) -> void Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.$() -> Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage! -Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.Deconstruct(out string? Uid, out string? DisplayName, out byte? State, out long? Duration, out string? Reason, out string? StandardOutput, out string? ErrorOutput, out string? SessionUid) -> void +Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.Deconstruct(out string? Uid, out string? DisplayName, out byte? State, out long? Duration, out string? Reason, out string? StandardOutput, out string? ErrorOutput, out string? SessionUid, out int? RetryAttemptNumber, out bool? IsSuperseded) -> void Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.DisplayName.get -> string? Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.DisplayName.init -> void Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.Duration.get -> long? @@ -1227,20 +1543,26 @@ Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.Duration.init Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.Equals(Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage? other) -> bool Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.ErrorOutput.get -> string? Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.ErrorOutput.init -> void +Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.IsSuperseded.get -> bool? +Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.IsSuperseded.init -> void Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.Reason.get -> string? Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.Reason.init -> void +Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.RetryAttemptNumber.get -> int? +Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.RetryAttemptNumber.init -> void Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.SessionUid.get -> string? Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.SessionUid.init -> void Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.StandardOutput.get -> string? Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.StandardOutput.init -> void Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.State.get -> byte? Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.State.init -> void -Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.SuccessfulTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, string? StandardOutput, string? ErrorOutput, string? SessionUid) -> void +Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.SuccessfulTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, string? StandardOutput, string? ErrorOutput, string? SessionUid, int? RetryAttemptNumber = null, bool? IsSuperseded = null) -> void Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.Uid.get -> string? Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.Uid.init -> void Microsoft.Testing.Platform.IPC.Models.TestHostCompletedRequest Microsoft.Testing.Platform.IPC.Models.TestHostCompletedRequest.ExitCode.get -> int +Microsoft.Testing.Platform.IPC.Models.TestHostCompletedRequest.TestHostCompletedRequest(int returnCode, int unfilteredReturnCode) -> void Microsoft.Testing.Platform.IPC.Models.TestHostCompletedRequest.TestHostCompletedRequest(int returnCode) -> void +Microsoft.Testing.Platform.IPC.Models.TestHostCompletedRequest.UnfilteredExitCode.get -> int Microsoft.Testing.Platform.IPC.Models.TestHostProcessPIDRequest Microsoft.Testing.Platform.IPC.Models.TestHostProcessPIDRequest.PID.get -> int Microsoft.Testing.Platform.IPC.Models.TestHostProcessPIDRequest.TestHostProcessPIDRequest(int pid) -> void @@ -1318,12 +1640,14 @@ Microsoft.Testing.Platform.IPC.NamedPipeClient.RequestReplyAsync void Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.NamedPipeConnectionBase() -> void -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Pipes.PipeStream! stream, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Pipes.PipeStream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Stream! stream, System.Threading.CancellationToken cancellationToken, int maximumFrameSize = 2147483647) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Stream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.IPC.NamedPipeServer Microsoft.Testing.Platform.IPC.NamedPipeServer.Dispose() -> void +Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken) -> void +Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.IPC.NamedPipeServer.PipeName.get -> Microsoft.Testing.Platform.IPC.PipeNameDescription! Microsoft.Testing.Platform.IPC.NamedPipeServer.WaitConnectionAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! @@ -1390,9 +1714,10 @@ Microsoft.Testing.Platform.Logging.ApplicationLoggingState.IsSynchronousWrite.ge Microsoft.Testing.Platform.Logging.ApplicationLoggingState.LogLevel.get -> Microsoft.Testing.Platform.Logging.LogLevel Microsoft.Testing.Platform.Logging.FileLogger Microsoft.Testing.Platform.Logging.FileLogger.Dispose() -> void -Microsoft.Testing.Platform.Logging.FileLogger.FileLogger(Microsoft.Testing.Platform.Logging.FileLoggerOptions! options, Microsoft.Testing.Platform.Logging.LogLevel logLevel, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IFileStreamFactory! fileStreamFactory) -> void +Microsoft.Testing.Platform.Logging.FileLogger.FileLogger(Microsoft.Testing.Platform.Logging.FileLoggerOptions! options, Microsoft.Testing.Platform.Logging.LogLevel logLevel, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IFileStreamFactory! fileStreamFactory, System.TimeSpan? flushTimeout = null) -> void Microsoft.Testing.Platform.Logging.FileLogger.FileName.get -> string! Microsoft.Testing.Platform.Logging.FileLogger.IsEnabled(Microsoft.Testing.Platform.Logging.LogLevel logLevel) -> bool +Microsoft.Testing.Platform.Logging.FileLogger.IsFileHandleReleased.get -> bool Microsoft.Testing.Platform.Logging.FileLogger.Log(Microsoft.Testing.Platform.Logging.LogLevel logLevel, TState state, System.Exception? exception, System.Func! formatter, string! category) -> void Microsoft.Testing.Platform.Logging.FileLogger.LogAsync(Microsoft.Testing.Platform.Logging.LogLevel logLevel, TState state, System.Exception? exception, System.Func! formatter, string! category) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Logging.FileLoggerCategory @@ -1467,11 +1792,13 @@ Microsoft.Testing.Platform.Logging.ServerLogMessage.Message.get -> string! Microsoft.Testing.Platform.Logging.ServerLogMessage.ServerLogMessage(Microsoft.Testing.Platform.Logging.LogLevel level, string! message) -> void Microsoft.Testing.Platform.Logging.TypeNameHelper Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor +Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.AsyncConsumerDataProcessor(Microsoft.Testing.Platform.Extensions.IDataConsumer! dataConsumer, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken, System.TimeSpan canceledShutdownTimeout) -> void Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.AsyncConsumerDataProcessor(Microsoft.Testing.Platform.Extensions.IDataConsumer! dataConsumer, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.CompleteAddingAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.DataConsumer.get -> Microsoft.Testing.Platform.Extensions.IDataConsumer! Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.Dispose() -> void Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.DrainDataAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.IsConsumerRunning.get -> bool Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.PublishAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! data) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.ReceivedCount.get -> long Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessorMessage @@ -1485,26 +1812,31 @@ Microsoft.Testing.Platform.Messages.AsynchronousMessageBus.AsynchronousMessageBu Microsoft.Testing.Platform.Messages.BaseMessageBus Microsoft.Testing.Platform.Messages.BaseMessageBus.BaseMessageBus() -> void Microsoft.Testing.Platform.Messages.BlockingConsumerDataProcessor +Microsoft.Testing.Platform.Messages.BlockingConsumerDataProcessor.BlockingConsumerDataProcessor(Microsoft.Testing.Platform.Extensions.IDataConsumer! dataConsumer, System.Threading.CancellationToken cancellationToken, System.TimeSpan canceledShutdownTimeout) -> void Microsoft.Testing.Platform.Messages.BlockingConsumerDataProcessor.BlockingConsumerDataProcessor(Microsoft.Testing.Platform.Extensions.IDataConsumer! dataConsumer, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.Messages.BlockingConsumerDataProcessor.CompleteAddingAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Messages.BlockingConsumerDataProcessor.DataConsumer.get -> Microsoft.Testing.Platform.Extensions.IDataConsumer! Microsoft.Testing.Platform.Messages.BlockingConsumerDataProcessor.Dispose() -> void Microsoft.Testing.Platform.Messages.BlockingConsumerDataProcessor.DrainDataAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Messages.BlockingConsumerDataProcessor.IsConsumerRunning.get -> bool Microsoft.Testing.Platform.Messages.BlockingConsumerDataProcessor.PublishAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! data) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Messages.BlockingConsumerDataProcessor.ReceivedCount.get -> long Microsoft.Testing.Platform.Messages.IAsyncConsumerDataProcessor Microsoft.Testing.Platform.Messages.IAsyncConsumerDataProcessor.CompleteAddingAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Messages.IAsyncConsumerDataProcessor.DataConsumer.get -> Microsoft.Testing.Platform.Extensions.IDataConsumer! Microsoft.Testing.Platform.Messages.IAsyncConsumerDataProcessor.DrainDataAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Messages.IAsyncConsumerDataProcessor.IsConsumerRunning.get -> bool Microsoft.Testing.Platform.Messages.IAsyncConsumerDataProcessor.PublishAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! data) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Messages.IAsyncConsumerDataProcessor.ReceivedCount.get -> long Microsoft.Testing.Platform.Messages.MessageBusProxy Microsoft.Testing.Platform.Messages.MessageBusProxy.MessageBusProxy() -> void Microsoft.Testing.Platform.Messages.MessageBusProxy.SetBuiltMessageBus(Microsoft.Testing.Platform.Messages.BaseMessageBus! messageBus) -> void +Microsoft.Testing.Platform.Messages.ShutdownTimeouts Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.Complete() -> void Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.SingleConsumerUnboundedChannel() -> void Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.TryRead(out T item) -> bool +Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.WaitToRead() -> bool Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.WaitToReadAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.Write(T item) -> void Microsoft.Testing.Platform.Messages.TestNodePropertiesCategories @@ -1519,6 +1851,14 @@ Microsoft.Testing.Platform.Messages.TestNodeStateStatistics.TotalFailedRetries.g Microsoft.Testing.Platform.Messages.TestNodeStateStatistics.TotalFailedRetries.set -> void Microsoft.Testing.Platform.Messages.TestNodeStateStatistics.TotalPassedRetries.get -> long Microsoft.Testing.Platform.Messages.TestNodeStateStatistics.TotalPassedRetries.set -> void +Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker +Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.ActiveTestTracker(System.TimeSpan slowTestThreshold, System.Func! createStopwatch) -> void +Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.Clear() -> void +Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.Complete(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! uid) -> void +Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.GetDueDiagnostics() -> Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic![]! +Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.IsActive(Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic! diagnostic) -> bool +Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.IsEnabled.get -> bool +Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.Start(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! uid, string! displayName) -> void Microsoft.Testing.Platform.OutputDevice.AzureDevOpsCommandOutputDeviceData Microsoft.Testing.Platform.OutputDevice.AzureDevOpsCommandOutputDeviceData.AzureDevOpsCommandOutputDeviceData(string! text) -> void Microsoft.Testing.Platform.OutputDevice.AzureDevOpsLogIssueFormatter @@ -1570,11 +1910,13 @@ Microsoft.Testing.Platform.OutputDevice.PlatformOutputDeviceManager Microsoft.Testing.Platform.OutputDevice.PlatformOutputDeviceManager.BuildAsync(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, bool useServerModeOutputDevice, bool isPipeProtocol) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.OutputDevice.PlatformOutputDeviceManager.PlatformOutputDeviceManager() -> void Microsoft.Testing.Platform.OutputDevice.PlatformOutputDeviceManager.SetPlatformOutputDevice(System.Func! platformOutputDeviceFactory) -> void +Microsoft.Testing.Platform.OutputDevice.ProgressReportingConfiguration Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice.DisplayAfterSessionEndRunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice.DisplayAsync(Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer! producer, Microsoft.Testing.Platform.OutputDevice.IOutputDeviceData! data, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice.DisplayBannerAsync(string? bannerMessage, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice.DisplayBeforeSessionStartAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice.Dispose() -> void Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice.HandleProcessRoleAsync(Microsoft.Testing.Platform.TestProcessRole processRole, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice.InitializeAsync(Microsoft.Testing.Platform.Hosts.ServerTestHost! serverTestHost) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice.OriginalOutputDevice.get -> Microsoft.Testing.Platform.OutputDevice.IPlatformOutputDevice! @@ -1591,9 +1933,20 @@ Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.Initia Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.IsEnabledAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.OnTestSessionFinishingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.OnTestSessionStartingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.ReportSlowTestsOnceAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.SimplifiedConsoleOutputDeviceBase(Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IAsyncMonitor! asyncMonitor, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService, System.TimeSpan slowTestThreshold, System.Func! createStopwatch, System.TimeSpan slowTestPollInterval) -> void Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.SimplifiedConsoleOutputDeviceBase(Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IAsyncMonitor! asyncMonitor, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService) -> void Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.Uid.get -> string! Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.Version.get -> string! +Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic +Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic.DisplayName.get -> string! +Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic.Elapsed.get -> System.TimeSpan +Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic.Generation.get -> long +Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic.SlowTestDiagnostic(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! uid, string! displayName, System.TimeSpan elapsed, long generation) -> void +Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic.Uid.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! +Microsoft.Testing.Platform.OutputDevice.SlowTestThresholdState +Microsoft.Testing.Platform.OutputDevice.SlowTestThresholdState.IsDue(System.TimeSpan elapsed) -> bool +Microsoft.Testing.Platform.OutputDevice.SlowTestThresholdState.SlowTestThresholdState(System.TimeSpan initialThreshold) -> void Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiCodes Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiDetector @@ -1613,7 +1966,7 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal.EraseProgress() -> Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal.Height.get -> int Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal.HideCursor() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal.MoveCursorUp(int lineCount) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal.RenderProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal.RenderProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]! messages) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal.ResetColor() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal.SetColor(Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalColor color) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal.SetCursorHorizontal(int position) -> void @@ -1629,7 +1982,7 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame.A Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame.AppendTestWorkerProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState! progress, Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame.RenderedProgressItem! currentLine, Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal! terminal) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame.Clear() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame.Height.get -> int -Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame.Render(Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame! previousFrame, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress, Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal! terminal) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame.Render(Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame! previousFrame, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]! messages, Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal! terminal) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame.RenderedLinesCount.get -> int Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame.RenderedProgressItem Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame.RenderedProgressItem.ProgressId.get -> long @@ -1644,8 +1997,8 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer.CursorProgressRenderer() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer.OnStart() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer.OnTestCompleted() -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer.OnTick(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer.OnWrite(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, System.Action! write) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer.OnTick(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]? messages = null) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer.OnWrite(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, System.Action! write, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]? messages = null) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer.TickInterval.get -> System.TimeSpan Microsoft.Testing.Platform.OutputDevice.Terminal.ExceptionFlattener Microsoft.Testing.Platform.OutputDevice.Terminal.ExceptionFlattener.ExceptionFlattener() -> void @@ -1665,8 +2018,8 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.HumanReadableDurationFormatter Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer.OnStart() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer.OnTestCompleted() -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer.OnTick(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer.OnWrite(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, System.Action! write) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer.OnTick(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]? messages = null) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer.OnWrite(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, System.Action! write, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]? messages = null) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer.TickInterval.get -> System.TimeSpan Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal.Append(char value) -> void @@ -1677,7 +2030,7 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal.AppendLink(string! pa Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal.EraseProgress() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal.Height.get -> int Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal.HideCursor() -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal.RenderProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal.RenderProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]! messages) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal.ResetColor() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal.SetColor(Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalColor color) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal.ShowCursor() -> void @@ -1696,11 +2049,16 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.OutputShowMode Microsoft.Testing.Platform.OutputDevice.Terminal.OutputShowMode.All = 0 -> Microsoft.Testing.Platform.OutputDevice.Terminal.OutputShowMode Microsoft.Testing.Platform.OutputDevice.Terminal.OutputShowMode.Failed = 1 -> Microsoft.Testing.Platform.OutputDevice.Terminal.OutputShowMode Microsoft.Testing.Platform.OutputDevice.Terminal.OutputShowMode.None = 2 -> Microsoft.Testing.Platform.OutputDevice.Terminal.OutputShowMode +Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError +Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError.AllOrNoneCombinedWithOtherValues = 3 -> Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError +Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError.EmptySelection = 2 -> Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError +Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError.None = 0 -> Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError +Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError.UnknownValue = 1 -> Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer.OnStart() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer.OnTestCompleted() -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer.OnTick(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer.OnWrite(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, System.Action! write) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer.OnTick(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]? messages = null) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer.OnWrite(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, System.Action! write, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]? messages = null) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer.SilenceDrivenHeartbeatRenderer(System.TimeSpan silenceThreshold, System.TimeSpan slowTestThreshold, System.Func! createStopwatch) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer.TickInterval.get -> System.TimeSpan Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleAnsiTerminal @@ -1713,7 +2071,7 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.Console.get -> M Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.EraseProgress() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.Height.get -> int Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.HideCursor() -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.RenderProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.RenderProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]! messages) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.ShowCursor() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.SimpleTerminal(Microsoft.Testing.Platform.Helpers.IConsole! console) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.StartBusyIndicator() -> void @@ -1739,13 +2097,21 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalColor.Magenta = 95 -> M Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalColor.Red = 91 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalColor Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalColor.White = 97 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalColor Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalColor.Yellow = 93 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalColor +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState.Id.get -> long +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState.TerminalProgressMessageState(long id, long version, string! text) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState.Text.get -> string! +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState.Version.get -> long Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalResources Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.AppendCoverageSummary(System.Collections.Generic.IReadOnlyList! scopes, System.Collections.Generic.IReadOnlyList! thresholds) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.AppendTestDiscoverySummary(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.ArtifactAdded(bool outOfProcess, string? assembly, string? targetFramework, string? architecture, string? executionId, string? testName, string! path) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.AssemblyRunCompleted(string! executionId, int exitCode, string? outputData, string? errorData) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.AssemblyRunCompleted(string! executionId) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.AssemblyRunStarted(string! assembly, string? targetFramework, string? architecture, string! executionId, string! instanceId, int attemptNumber) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.AssemblyRunStarted(string! assembly, string? targetFramework, string? architecture, string! executionId, string! instanceId) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.ClearProgressMessages() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.CreateStopwatch.get -> System.Func! Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.CreateStopwatch.set -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.Dispose() -> void @@ -1756,9 +2122,12 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.OnProgress Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.PrintOutOfProcessArtifacts() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.StartCancelling() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TerminalTestReporter(Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions! options) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TerminalTestReporter(Microsoft.Testing.Platform.Helpers.IConsole! console, System.Func! isCancellationRequested, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions! options, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TerminalTestReporter(Microsoft.Testing.Platform.Helpers.IConsole! console, System.Func! isCancellationRequested, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions! options) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TestCompleted(string! assembly, string? targetFramework, string? architecture, string! executionId, string! instanceId, string! testNodeUid, string! displayName, string? informativeMessage, Microsoft.Testing.Platform.OutputDevice.Terminal.TestOutcome outcome, System.TimeSpan? duration, Microsoft.Testing.Platform.OutputDevice.Terminal.FlatException![]? exceptions, string? expected, string? actual, string? standardOutput, string? errorOutput) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TestCompleted(string! executionId, string! testNodeUid, string! displayName, Microsoft.Testing.Platform.OutputDevice.Terminal.TestOutcome outcome, System.TimeSpan? duration, string? informativeMessage, string? errorMessage, System.Exception? exception, string? expected, string? actual, string? standardOutput, string? errorOutput, Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty? retryAttempt) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TestCompleted(string! executionId, string! testNodeUid, string! displayName, Microsoft.Testing.Platform.OutputDevice.Terminal.TestOutcome outcome, System.TimeSpan? duration, string? informativeMessage, string? errorMessage, System.Exception? exception, string? expected, string? actual, string? standardOutput, string? errorOutput) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TestCompletedWithoutResult(string! executionId, string! testNodeUid) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TestDiscovered(string! executionId, string! displayName) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TestDiscovered(string! executionId, string? displayName, string? uid, string? filePath, int? lineNumber) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TestExecutionCompleted(System.DateTimeOffset endTime, int? exitCode) -> void @@ -1766,6 +2135,7 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TestExecut Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TestInProgress(string! assembly, string? targetFramework, string? architecture, string! executionId, string! instanceId, string! testNodeUid, string! displayName) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TestInProgress(string! executionId, string! testNodeUid, string! displayName) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TotalTests.get -> int +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.UpdateProgressMessage(string! executionId, string! instanceId, string! producerUid, string! key, string? message) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.WriteErrorMessage(string! text, int? padding) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.WriteErrorMessage(System.Exception! exception) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.WriteMessage(string! text, Microsoft.Testing.Platform.OutputDevice.SystemConsoleColor? color = null, int? padding = null) -> void @@ -1785,14 +2155,20 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.Sho Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowAssembly.init -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowAssemblyStartAndComplete.get -> bool Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowAssemblyStartAndComplete.init -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowPassedTests.get -> System.Func! -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowPassedTests.init -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowFlakyTests.get -> bool +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowFlakyTests.init -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowProgress.get -> System.Func! Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowProgress.init -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowRunSummary.get -> bool +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowRunSummary.init -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowStderr.get -> Microsoft.Testing.Platform.OutputDevice.Terminal.OutputShowMode Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowStderr.init -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowStdout.get -> Microsoft.Testing.Platform.OutputDevice.Terminal.OutputShowMode Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowStdout.init -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowTestResults.get -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowTestResults.init -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.SlowestTestsCount.get -> int +Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.SlowestTestsCount.init -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.SlowTestThreshold.get -> System.TimeSpan Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.SlowTestThreshold.init -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.TerminalTestReporterOptions() -> void @@ -1830,15 +2206,28 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.DiscoveredTes Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.DiscoveredTests.get -> int Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.DiscoveredTests.set -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.FailedTests.get -> int +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.FlakyTests.get -> int +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.GetAttemptNumber(string! instanceId) -> int +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.GetFlakyTests() -> System.Collections.Generic.IReadOnlyList<(string! DisplayName, int Attempts)>! +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.GetOrCreateTestNodeResultsState(System.Func! factory) -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestNodeResultsState! +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.GetSlowestTests(int count) -> System.Collections.Generic.IReadOnlyList<(string! DisplayName, System.TimeSpan Duration)>! Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.Id.get -> long Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.Id.set -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.IsDiscovery.get -> bool +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.NotifyHandshake(string! instanceId, int attemptNumber) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.NotifyHandshake(string! instanceId) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.PassedTests.get -> int -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportFailedTest(string! testNodeUid, string! instanceId) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportPassingTest(string! testNodeUid, string! instanceId) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportSkippedTest(string! testNodeUid, string! instanceId) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.RecordTestDuration(string! testNodeUid, string! displayName, System.TimeSpan? duration) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportDiscoveredTest(string? displayName) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportFailedTest(string! testNodeUid, string! displayName, string! instanceId, int retryAttemptNumber) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportFailedTest(string! testNodeUid, string! displayName, string! instanceId) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportPassingTest(string! testNodeUid, string! displayName, string! instanceId, int retryAttemptNumber) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportPassingTest(string! testNodeUid, string! displayName, string! instanceId) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportSkippedTest(string! testNodeUid, string! displayName, string! instanceId, int retryAttemptNumber) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportSkippedTest(string! testNodeUid, string! displayName, string! instanceId) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.RetriedExecutions.get -> int Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.RetriedFailedTests.get -> int +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.RetriedTests.get -> int Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.SkippedTests.get -> int Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.SlotIndex.get -> int Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.SlotIndex.set -> void @@ -1855,6 +2244,7 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.Version.get - Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.Version.set -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.AddWorker(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState! testWorker) -> int +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.ClearProgressMessages() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.Dispose() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.NotifyTestCompleted() -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.OnProgressStartUpdate -> System.EventHandler? @@ -1862,9 +2252,17 @@ Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal. Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.RemoveWorker(int slotIndex) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.StartShowingProgress(int workerCount) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.StopShowingProgress() -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.TestProgressStateAwareTerminal(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, System.Func! showProgress, Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer! renderer, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.TestProgressStateAwareTerminal(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, System.Func! showProgress, Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer! renderer) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.UpdateProgressMessage(string! executionId, string! instanceId, string! producerUid, string! key, string? message) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.UpdateWorker(int slotIndex) -> void Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.WriteToTerminal(System.Action! write) -> void +Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility +Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility.All = 7 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility +Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility.Failed = 2 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility +Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility.None = 0 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility +Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility.Passed = 1 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility +Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility.Skipped = 4 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility Microsoft.Testing.Platform.OutputDevice.Terminal.TestRunArtifact Microsoft.Testing.Platform.OutputDevice.Terminal.TestRunArtifact.$() -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestRunArtifact! Microsoft.Testing.Platform.OutputDevice.Terminal.TestRunArtifact.Architecture.get -> string? @@ -1899,7 +2297,7 @@ Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.Dispose() -> void Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.HandleProcessRoleAsync(Microsoft.Testing.Platform.TestProcessRole processRole, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.InitializeAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.TerminalOutputDevice(Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.TestHostControllers.ITestHostControllerInfo! testHostControllerInfo, Microsoft.Testing.Platform.Helpers.IAsyncMonitor! asyncMonitor, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Logging.IFileLoggerInformation? fileLoggerInformation, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService, Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource! testApplicationCancellationTokenSource) -> void +Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.TerminalOutputDevice(Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.TestHostControllers.ITestHostControllerInfo! testHostControllerInfo, Microsoft.Testing.Platform.Helpers.IAsyncMonitor! asyncMonitor, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Logging.IFileLoggerInformation? fileLoggerInformation, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService, Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource! testApplicationCancellationTokenSource, Microsoft.Testing.Platform.Services.ITestCoverageResult! testCoverageResult) -> void Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.Uid.get -> string! Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.Version.get -> string! Microsoft.Testing.Platform.OutputDevice.TestRunSummaryHelper @@ -1914,8 +2312,8 @@ Microsoft.Testing.Platform.Requests.ConsoleTestExecutionFilterFactory.TryCreateA Microsoft.Testing.Platform.Requests.ConsoleTestExecutionFilterFactory.Uid.get -> string! Microsoft.Testing.Platform.Requests.ConsoleTestExecutionFilterFactory.Version.get -> string! Microsoft.Testing.Platform.Requests.ConsoleTestExecutionRequestFactory -Microsoft.Testing.Platform.Requests.ConsoleTestExecutionRequestFactory.ConsoleTestExecutionRequestFactory(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineService, Microsoft.Testing.Platform.Requests.ITestExecutionFilterFactory! testExecutionFilterFactory) -> void -Microsoft.Testing.Platform.Requests.ConsoleTestExecutionRequestFactory.CreateRequestAsync(Microsoft.Testing.Platform.TestHost.TestSessionContext! session) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Requests.ConsoleTestExecutionRequestFactory.ConsoleTestExecutionRequestFactory(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineService, Microsoft.Testing.Platform.Requests.ITestExecutionFilterFactory! testExecutionFilterFactory, System.Collections.Generic.IReadOnlyList! testExecutionFilterProviders) -> void +Microsoft.Testing.Platform.Requests.ConsoleTestExecutionRequestFactory.CreateRequestAsync(Microsoft.Testing.Platform.TestHost.TestSessionContext! session, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Requests.FilterExpression Microsoft.Testing.Platform.Requests.FilterExpression.FilterExpression() -> void Microsoft.Testing.Platform.Requests.FilterOperator @@ -1925,7 +2323,7 @@ Microsoft.Testing.Platform.Requests.FilterOperator.Or = 2 -> Microsoft.Testing.P Microsoft.Testing.Platform.Requests.ITestExecutionFilterFactory Microsoft.Testing.Platform.Requests.ITestExecutionFilterFactory.TryCreateAsync() -> System.Threading.Tasks.Task<(bool Success, Microsoft.Testing.Platform.Requests.ITestExecutionFilter? TestExecutionFilter)>! Microsoft.Testing.Platform.Requests.ITestExecutionRequestFactory -Microsoft.Testing.Platform.Requests.ITestExecutionRequestFactory.CreateRequestAsync(Microsoft.Testing.Platform.TestHost.TestSessionContext! session) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Requests.ITestExecutionRequestFactory.CreateRequestAsync(Microsoft.Testing.Platform.TestHost.TestSessionContext! session, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Requests.ITestFrameworkInvoker Microsoft.Testing.Platform.Requests.ITestFrameworkInvoker.ExecuteAsync(Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! testFramework, Microsoft.Testing.Platform.TestHost.ClientInfo! client, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Requests.NopExpression @@ -1962,8 +2360,9 @@ Microsoft.Testing.Platform.Requests.ServerTestExecutionFilterFactory.TryCreateAs Microsoft.Testing.Platform.Requests.ServerTestExecutionFilterFactory.Uid.get -> string! Microsoft.Testing.Platform.Requests.ServerTestExecutionFilterFactory.Version.get -> string! Microsoft.Testing.Platform.Requests.ServerTestExecutionRequestFactory -Microsoft.Testing.Platform.Requests.ServerTestExecutionRequestFactory.CreateRequestAsync(Microsoft.Testing.Platform.TestHost.TestSessionContext! session) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Requests.ServerTestExecutionRequestFactory.ServerTestExecutionRequestFactory(System.Func! factory) -> void +Microsoft.Testing.Platform.Requests.ServerTestExecutionRequestFactory.CreateRequestAsync(Microsoft.Testing.Platform.TestHost.TestSessionContext! session, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Requests.ServerTestExecutionRequestFactory.ServerTestExecutionRequestFactory(System.Func!>! factory) -> void +Microsoft.Testing.Platform.Requests.TestExecutionFilterComposer Microsoft.Testing.Platform.Requests.TestHostTestFrameworkInvoker Microsoft.Testing.Platform.Requests.TestHostTestFrameworkInvoker.DataTypesProduced.get -> System.Type![]! Microsoft.Testing.Platform.Requests.TestHostTestFrameworkInvoker.Description.get -> string! @@ -2019,13 +2418,17 @@ Microsoft.Testing.Platform.ServerMode.CancelRequestArgs.CancelRequestId.get -> i Microsoft.Testing.Platform.ServerMode.CancelRequestArgs.CancelRequestId.init -> void Microsoft.Testing.Platform.ServerMode.CancelRequestArgs.Deconstruct(out int CancelRequestId) -> void Microsoft.Testing.Platform.ServerMode.CancelRequestArgs.Equals(Microsoft.Testing.Platform.ServerMode.CancelRequestArgs? other) -> bool +Microsoft.Testing.Platform.ServerMode.CancelRequestArgs.StringId.get -> string? +Microsoft.Testing.Platform.ServerMode.CancelRequestArgs.StringId.init -> void Microsoft.Testing.Platform.ServerMode.ClientCapabilities Microsoft.Testing.Platform.ServerMode.ClientCapabilities.$() -> Microsoft.Testing.Platform.ServerMode.ClientCapabilities! -Microsoft.Testing.Platform.ServerMode.ClientCapabilities.ClientCapabilities(bool DebuggerProvider) -> void +Microsoft.Testing.Platform.ServerMode.ClientCapabilities.ClientCapabilities(bool DebuggerProvider, bool IsStateful) -> void Microsoft.Testing.Platform.ServerMode.ClientCapabilities.DebuggerProvider.get -> bool Microsoft.Testing.Platform.ServerMode.ClientCapabilities.DebuggerProvider.init -> void -Microsoft.Testing.Platform.ServerMode.ClientCapabilities.Deconstruct(out bool DebuggerProvider) -> void +Microsoft.Testing.Platform.ServerMode.ClientCapabilities.Deconstruct(out bool DebuggerProvider, out bool IsStateful) -> void Microsoft.Testing.Platform.ServerMode.ClientCapabilities.Equals(Microsoft.Testing.Platform.ServerMode.ClientCapabilities? other) -> bool +Microsoft.Testing.Platform.ServerMode.ClientCapabilities.IsStateful.get -> bool +Microsoft.Testing.Platform.ServerMode.ClientCapabilities.IsStateful.init -> void Microsoft.Testing.Platform.ServerMode.ClientInfo Microsoft.Testing.Platform.ServerMode.ClientInfo.$() -> Microsoft.Testing.Platform.ServerMode.ClientInfo! Microsoft.Testing.Platform.ServerMode.ClientInfo.ClientInfo(string! Name, string! Version) -> void @@ -2056,6 +2459,8 @@ Microsoft.Testing.Platform.ServerMode.ErrorMessage.Id.get -> int Microsoft.Testing.Platform.ServerMode.ErrorMessage.Id.init -> void Microsoft.Testing.Platform.ServerMode.ErrorMessage.Message.get -> string! Microsoft.Testing.Platform.ServerMode.ErrorMessage.Message.init -> void +Microsoft.Testing.Platform.ServerMode.ErrorMessage.StringId.get -> string? +Microsoft.Testing.Platform.ServerMode.ErrorMessage.StringId.init -> void Microsoft.Testing.Platform.ServerMode.ExitRequestArgs Microsoft.Testing.Platform.ServerMode.ExitRequestArgs.$() -> Microsoft.Testing.Platform.ServerMode.ExitRequestArgs! Microsoft.Testing.Platform.ServerMode.ExitRequestArgs.Equals(Microsoft.Testing.Platform.ServerMode.ExitRequestArgs? other) -> bool @@ -2091,6 +2496,8 @@ Microsoft.Testing.Platform.ServerMode.InitializeRequestArgs.Equals(Microsoft.Tes Microsoft.Testing.Platform.ServerMode.InitializeRequestArgs.InitializeRequestArgs(int ProcessId, Microsoft.Testing.Platform.ServerMode.ClientInfo! ClientInfo, Microsoft.Testing.Platform.ServerMode.ClientCapabilities! Capabilities) -> void Microsoft.Testing.Platform.ServerMode.InitializeRequestArgs.ProcessId.get -> int Microsoft.Testing.Platform.ServerMode.InitializeRequestArgs.ProcessId.init -> void +Microsoft.Testing.Platform.ServerMode.InitializeRequestArgs.ProtocolVersions.get -> string![]? +Microsoft.Testing.Platform.ServerMode.InitializeRequestArgs.ProtocolVersions.init -> void Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.$() -> Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs! Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.Capabilities.get -> Microsoft.Testing.Platform.ServerMode.ServerCapabilities! @@ -2100,6 +2507,8 @@ Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.Equals(Microsoft.Te Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.InitializeResponseArgs(int? ProcessId, Microsoft.Testing.Platform.ServerMode.ServerInfo! ServerInfo, Microsoft.Testing.Platform.ServerMode.ServerCapabilities! Capabilities) -> void Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.ProcessId.get -> int? Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.ProcessId.init -> void +Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.ProtocolVersion.get -> string? +Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.ProtocolVersion.init -> void Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.ServerInfo.get -> Microsoft.Testing.Platform.ServerMode.ServerInfo! Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.ServerInfo.init -> void Microsoft.Testing.Platform.ServerMode.InvalidRequestParamsArgs @@ -2119,10 +2528,12 @@ Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol.AfterCommonServiceSetupAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol.GetDataConsumerAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol.HelpInvokedAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol.InstanceId.get -> string! Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol.IsCompatibleProtocolAsync(string! testHostType, System.Collections.Generic.IReadOnlyDictionary? additionalHandshakeProperties = null) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol.IsServerControlChannelSupported.get -> bool Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol.IsServerMode.get -> bool Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol.OnExitAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol.SendMessageAsync(Microsoft.Testing.Platform.IPC.IRequest! message) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol.StartServerControlChannelAsync(System.Func! onCancelSessionRequestedAsync) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocolConsumer Microsoft.Testing.Platform.ServerMode.Json.JsoniteProperties @@ -2131,6 +2542,7 @@ Microsoft.Testing.Platform.ServerMode.JsonRpcException Microsoft.Testing.Platform.ServerMode.JsonRpcException.ErrorCode.get -> int Microsoft.Testing.Platform.ServerMode.JsonRpcException.JsonRpcException(int errorCode, string! message) -> void Microsoft.Testing.Platform.ServerMode.JsonRpcMethods +Microsoft.Testing.Platform.ServerMode.JsonRpcProtocolVersions Microsoft.Testing.Platform.ServerMode.JsonRpcStrings Microsoft.Testing.Platform.ServerMode.LogEventArgs Microsoft.Testing.Platform.ServerMode.LogEventArgs.$() -> Microsoft.Testing.Platform.ServerMode.LogEventArgs! @@ -2221,6 +2633,8 @@ Microsoft.Testing.Platform.ServerMode.RequestMessage.Method.init -> void Microsoft.Testing.Platform.ServerMode.RequestMessage.Params.get -> object? Microsoft.Testing.Platform.ServerMode.RequestMessage.Params.init -> void Microsoft.Testing.Platform.ServerMode.RequestMessage.RequestMessage(int Id, string! Method, object? Params) -> void +Microsoft.Testing.Platform.ServerMode.RequestMessage.StringId.get -> string? +Microsoft.Testing.Platform.ServerMode.RequestMessage.StringId.init -> void Microsoft.Testing.Platform.ServerMode.ResponseArgsBase Microsoft.Testing.Platform.ServerMode.ResponseArgsBase.ResponseArgsBase() -> void Microsoft.Testing.Platform.ServerMode.ResponseArgsBase.ResponseArgsBase(Microsoft.Testing.Platform.ServerMode.ResponseArgsBase! original) -> void @@ -2232,6 +2646,8 @@ Microsoft.Testing.Platform.ServerMode.ResponseMessage.Id.init -> void Microsoft.Testing.Platform.ServerMode.ResponseMessage.ResponseMessage(int Id, object? Result) -> void Microsoft.Testing.Platform.ServerMode.ResponseMessage.Result.get -> object? Microsoft.Testing.Platform.ServerMode.ResponseMessage.Result.init -> void +Microsoft.Testing.Platform.ServerMode.ResponseMessage.StringId.get -> string? +Microsoft.Testing.Platform.ServerMode.ResponseMessage.StringId.init -> void Microsoft.Testing.Platform.ServerMode.RpcMessage Microsoft.Testing.Platform.ServerMode.RpcMessage.RpcMessage() -> void Microsoft.Testing.Platform.ServerMode.RpcMessage.RpcMessage(Microsoft.Testing.Platform.ServerMode.RpcMessage! original) -> void @@ -2284,6 +2700,7 @@ Microsoft.Testing.Platform.ServerMode.ServerModeManager.MessageHandlerFactory.Cr Microsoft.Testing.Platform.ServerMode.ServerModeManager.MessageHandlerFactory.Description.get -> string! Microsoft.Testing.Platform.ServerMode.ServerModeManager.MessageHandlerFactory.DisplayName.get -> string! Microsoft.Testing.Platform.ServerMode.ServerModeManager.MessageHandlerFactory.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.ServerMode.ServerModeManager.MessageHandlerFactory.MessageHandlerFactory(string! host, int port, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void Microsoft.Testing.Platform.ServerMode.ServerModeManager.MessageHandlerFactory.MessageHandlerFactory(string! host, int port, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice) -> void Microsoft.Testing.Platform.ServerMode.ServerModeManager.MessageHandlerFactory.Uid.get -> string! Microsoft.Testing.Platform.ServerMode.ServerModeManager.MessageHandlerFactory.Version.get -> string! @@ -2295,6 +2712,7 @@ Microsoft.Testing.Platform.ServerMode.ServerModePerCallOutputDevice.DisplayAsync Microsoft.Testing.Platform.ServerMode.ServerModePerCallOutputDevice.DisplayBannerAsync(string? bannerMessage, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.ServerMode.ServerModePerCallOutputDevice.DisplayBeforeSessionStartAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.ServerMode.ServerModePerCallOutputDevice.DisplayName.get -> string! +Microsoft.Testing.Platform.ServerMode.ServerModePerCallOutputDevice.Dispose() -> void Microsoft.Testing.Platform.ServerMode.ServerModePerCallOutputDevice.HandleProcessRoleAsync(Microsoft.Testing.Platform.TestProcessRole processRole, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.ServerMode.ServerModePerCallOutputDevice.InitializeAsync(Microsoft.Testing.Platform.Hosts.ServerTestHost! serverTestHost) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.ServerMode.ServerModePerCallOutputDevice.IsEnabledAsync() -> System.Threading.Tasks.Task! @@ -2319,6 +2737,7 @@ Microsoft.Testing.Platform.ServerMode.ServerTestingCapabilities.VSTestProviderSu Microsoft.Testing.Platform.ServerMode.TcpMessageHandler Microsoft.Testing.Platform.ServerMode.TcpMessageHandler.Dispose() -> void Microsoft.Testing.Platform.ServerMode.TcpMessageHandler.ReadAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.ServerMode.TcpMessageHandler.TcpMessageHandler(System.Net.Sockets.TcpClient! client, System.IO.Stream! clientToServerStream, System.IO.Stream! serverToClientStream, Microsoft.Testing.Platform.ServerMode.IMessageFormatter! formatter, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void Microsoft.Testing.Platform.ServerMode.TcpMessageHandler.TcpMessageHandler(System.Net.Sockets.TcpClient! client, System.IO.Stream! clientToServerStream, System.IO.Stream! serverToClientStream, Microsoft.Testing.Platform.ServerMode.IMessageFormatter! formatter) -> void Microsoft.Testing.Platform.ServerMode.TcpMessageHandler.WriteRequestAsync(Microsoft.Testing.Platform.ServerMode.RpcMessage! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.ServerMode.TelemetryEventArgs @@ -2359,16 +2778,30 @@ Microsoft.Testing.Platform.ServerMode.TestsAttachments.Attachments.init -> void Microsoft.Testing.Platform.ServerMode.TestsAttachments.Deconstruct(out Microsoft.Testing.Platform.ServerMode.RunTestAttachment![]! Attachments) -> void Microsoft.Testing.Platform.ServerMode.TestsAttachments.Equals(Microsoft.Testing.Platform.ServerMode.TestsAttachments? other) -> bool Microsoft.Testing.Platform.ServerMode.TestsAttachments.TestsAttachments(Microsoft.Testing.Platform.ServerMode.RunTestAttachment![]! Attachments) -> void +Microsoft.Testing.Platform.Services.ArtifactFileNameSanitizer Microsoft.Testing.Platform.Services.ArtifactNamingHelper +Microsoft.Testing.Platform.Services.ArtifactNamingService +Microsoft.Testing.Platform.Services.ArtifactNamingService.ArtifactNamingService(Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IClock! clock) -> void +Microsoft.Testing.Platform.Services.ArtifactNamingService.ResolveFileName(string! template) -> string! +Microsoft.Testing.Platform.Services.ClientCapabilitiesService +Microsoft.Testing.Platform.Services.ClientCapabilitiesService.$() -> Microsoft.Testing.Platform.Services.ClientCapabilitiesService! +Microsoft.Testing.Platform.Services.ClientCapabilitiesService.ClientCapabilitiesService(bool IsStateful) -> void +Microsoft.Testing.Platform.Services.ClientCapabilitiesService.Deconstruct(out bool IsStateful) -> void +Microsoft.Testing.Platform.Services.ClientCapabilitiesService.Equals(Microsoft.Testing.Platform.Services.ClientCapabilitiesService? other) -> bool +Microsoft.Testing.Platform.Services.ClientCapabilitiesService.IsStateful.get -> bool +Microsoft.Testing.Platform.Services.ClientCapabilitiesService.IsStateful.init -> void Microsoft.Testing.Platform.Services.ClientInfoService Microsoft.Testing.Platform.Services.ClientInfoService.$() -> Microsoft.Testing.Platform.Services.ClientInfoService! -Microsoft.Testing.Platform.Services.ClientInfoService.ClientInfoService(string! Id, string! Version) -> void -Microsoft.Testing.Platform.Services.ClientInfoService.Deconstruct(out string! Id, out string! Version) -> void +Microsoft.Testing.Platform.Services.ClientInfoService.Capabilities.get -> Microsoft.Testing.Platform.Services.IClientCapabilities! +Microsoft.Testing.Platform.Services.ClientInfoService.Capabilities.init -> void +Microsoft.Testing.Platform.Services.ClientInfoService.ClientInfoService(string! Id, string! Version, Microsoft.Testing.Platform.Services.IClientCapabilities! Capabilities) -> void +Microsoft.Testing.Platform.Services.ClientInfoService.Deconstruct(out string! Id, out string! Version, out Microsoft.Testing.Platform.Services.IClientCapabilities! Capabilities) -> void Microsoft.Testing.Platform.Services.ClientInfoService.Equals(Microsoft.Testing.Platform.Services.ClientInfoService? other) -> bool Microsoft.Testing.Platform.Services.ClientInfoService.Id.get -> string! Microsoft.Testing.Platform.Services.ClientInfoService.Id.init -> void Microsoft.Testing.Platform.Services.ClientInfoService.Version.get -> string! Microsoft.Testing.Platform.Services.ClientInfoService.Version.init -> void +Microsoft.Testing.Platform.Services.CoverageThresholdExitCodePolicy Microsoft.Testing.Platform.Services.CTRLPlusCCancellationTokenSource Microsoft.Testing.Platform.Services.CTRLPlusCCancellationTokenSource.Cancel() -> void Microsoft.Testing.Platform.Services.CTRLPlusCCancellationTokenSource.CancelAfter(System.TimeSpan timeout) -> void @@ -2393,15 +2826,24 @@ Microsoft.Testing.Platform.Services.ExecutableInfo.Arguments.get -> System.Colle Microsoft.Testing.Platform.Services.ExecutableInfo.ExecutableInfo(string! filePath, System.Collections.Generic.IEnumerable! arguments, string! workspace) -> void Microsoft.Testing.Platform.Services.ExecutableInfo.FilePath.get -> string! Microsoft.Testing.Platform.Services.ExecutableInfo.Workspace.get -> string! +Microsoft.Testing.Platform.Services.ExitCodeIgnorePolicy Microsoft.Testing.Platform.Services.IShutdownProgressReporter Microsoft.Testing.Platform.Services.IShutdownProgressReporter.Track(string! uid, string! displayName, string! phase) -> System.IDisposable! Microsoft.Testing.Platform.Services.IStopPoliciesService Microsoft.Testing.Platform.Services.IStopPoliciesService.ExecuteAbortCallbacksAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Services.IStopPoliciesService.ExecuteDeadlineCallbacksAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Services.IStopPoliciesService.ExecuteMaxFailedTestsCallbacksAsync(int maxFailedTests, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Services.IStopPoliciesService.IsAbortTriggered.get -> bool +Microsoft.Testing.Platform.Services.IStopPoliciesService.IsDeadlineTriggered.get -> bool Microsoft.Testing.Platform.Services.IStopPoliciesService.IsMaxFailedTestsTriggered.get -> bool +Microsoft.Testing.Platform.Services.IStopPoliciesService.IsTestExecutionCompleted.get -> bool +Microsoft.Testing.Platform.Services.IStopPoliciesService.NotifyTestExecutionCompleted() -> void +Microsoft.Testing.Platform.Services.IStopPoliciesService.NotifyTestExecutionStarting() -> void +Microsoft.Testing.Platform.Services.IStopPoliciesService.RegisterDeadlineStopFallback(System.Func!>! callback) -> void Microsoft.Testing.Platform.Services.IStopPoliciesService.RegisterOnAbortCallbackAsync(System.Func! callback) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Services.IStopPoliciesService.RegisterOnDeadlineCallbackAsync(System.Func! callback) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Services.IStopPoliciesService.RegisterOnMaxFailedTestsCallbackAsync(System.Func! callback) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Services.IStopPoliciesService.TryExecuteDeadlineStopFallbackAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource.Cancel() -> void Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource.CancellationToken.get -> System.Threading.CancellationToken @@ -2440,6 +2882,8 @@ Microsoft.Testing.Platform.Services.ServiceProvider.GetServicesInternal(System.T Microsoft.Testing.Platform.Services.ServiceProvider.ReplaceService(T! newService) -> void Microsoft.Testing.Platform.Services.ServiceProvider.ServiceProvider() -> void Microsoft.Testing.Platform.Services.ServiceProvider.Services.get -> System.Collections.Generic.IReadOnlyCollection! +Microsoft.Testing.Platform.Services.ServiceProvider.TestHostControllerAuthorizedSecurityIdentities.get -> System.Collections.Generic.IReadOnlyList? +Microsoft.Testing.Platform.Services.ServiceProvider.TestHostControllerAuthorizedSecurityIdentities.set -> void Microsoft.Testing.Platform.Services.ServiceProvider.TryAddService(object! service) -> bool Microsoft.Testing.Platform.Services.ShutdownProgressReporter Microsoft.Testing.Platform.Services.ShutdownProgressReporter.Description.get -> string! @@ -2472,15 +2916,24 @@ Microsoft.Testing.Platform.Services.Statistics.TotalFailedTests.set -> void Microsoft.Testing.Platform.Services.Statistics.TotalRanTests.get -> int Microsoft.Testing.Platform.Services.Statistics.TotalRanTests.set -> void Microsoft.Testing.Platform.Services.StopPoliciesService +Microsoft.Testing.Platform.Services.StopPoliciesService.Dispose() -> void Microsoft.Testing.Platform.Services.StopPoliciesService.ExecuteAbortCallbacksAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Services.StopPoliciesService.ExecuteDeadlineCallbacksAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Services.StopPoliciesService.ExecuteMaxFailedTestsCallbacksAsync(int maxFailedTests, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Services.StopPoliciesService.IsAbortTriggered.get -> bool +Microsoft.Testing.Platform.Services.StopPoliciesService.IsDeadlineTriggered.get -> bool Microsoft.Testing.Platform.Services.StopPoliciesService.IsMaxFailedTestsTriggered.get -> bool +Microsoft.Testing.Platform.Services.StopPoliciesService.IsTestExecutionCompleted.get -> bool +Microsoft.Testing.Platform.Services.StopPoliciesService.NotifyTestExecutionCompleted() -> void +Microsoft.Testing.Platform.Services.StopPoliciesService.NotifyTestExecutionStarting() -> void Microsoft.Testing.Platform.Services.StopPoliciesService.ProcessRole.get -> Microsoft.Testing.Platform.TestProcessRole? Microsoft.Testing.Platform.Services.StopPoliciesService.ProcessRole.set -> void +Microsoft.Testing.Platform.Services.StopPoliciesService.RegisterDeadlineStopFallback(System.Func!>! callback) -> void Microsoft.Testing.Platform.Services.StopPoliciesService.RegisterOnAbortCallbackAsync(System.Func! callback) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Services.StopPoliciesService.RegisterOnDeadlineCallbackAsync(System.Func! callback) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Services.StopPoliciesService.RegisterOnMaxFailedTestsCallbackAsync(System.Func! callback) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Services.StopPoliciesService.StopPoliciesService(Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource! testApplicationCancellationTokenSource) -> void +Microsoft.Testing.Platform.Services.StopPoliciesService.TryExecuteDeadlineStopFallbackAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Services.TestApplicationResult Microsoft.Testing.Platform.Services.TestApplicationResult.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Services.TestApplicationResult.DataTypesConsumed.get -> System.Type![]! @@ -2488,18 +2941,44 @@ Microsoft.Testing.Platform.Services.TestApplicationResult.Description.get -> str Microsoft.Testing.Platform.Services.TestApplicationResult.DisplayName.get -> string! Microsoft.Testing.Platform.Services.TestApplicationResult.Dispose() -> void Microsoft.Testing.Platform.Services.TestApplicationResult.GetProcessExitCode() -> int +Microsoft.Testing.Platform.Services.TestApplicationResult.GetProcessExitCodeWithoutIgnore() -> int Microsoft.Testing.Platform.Services.TestApplicationResult.GetStatistics() -> Microsoft.Testing.Platform.Services.Statistics! Microsoft.Testing.Platform.Services.TestApplicationResult.HasTestAdapterTestSessionFailure.get -> bool Microsoft.Testing.Platform.Services.TestApplicationResult.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Services.TestApplicationResult.ReportRunTelemetry(Microsoft.Testing.Platform.Telemetry.IPlatformActivity? runActivity, int exitCode) -> void Microsoft.Testing.Platform.Services.TestApplicationResult.SetTestAdapterTestSessionFailureAsync(string! errorMessage, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Services.TestApplicationResult.TestAdapterTestSessionFailureErrorMessage.get -> string? +Microsoft.Testing.Platform.Services.TestApplicationResult.TestApplicationResult(Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputService, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService, Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService? otelService, Microsoft.Testing.Platform.Services.ITestCoverageResult? testCoverageResult) -> void Microsoft.Testing.Platform.Services.TestApplicationResult.TestApplicationResult(Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputService, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService, Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService? otelService) -> void Microsoft.Testing.Platform.Services.TestApplicationResult.Uid.get -> string! Microsoft.Testing.Platform.Services.TestApplicationResult.Version.get -> string! +Microsoft.Testing.Platform.Services.TestCoverageCapabilities +Microsoft.Testing.Platform.Services.TestCoverageCapabilities.EnabledProducerUids.get -> System.Collections.Generic.IReadOnlyCollection! +Microsoft.Testing.Platform.Services.TestCoverageCapabilities.RegisterProducer(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! producer) -> void +Microsoft.Testing.Platform.Services.TestCoverageCapabilities.RegisterProducers(System.Collections.Generic.IEnumerable! dataConsumers) -> void +Microsoft.Testing.Platform.Services.TestCoverageCapabilities.SupportsTestCoverageMessages.get -> bool +Microsoft.Testing.Platform.Services.TestCoverageCapabilities.TestCoverageCapabilities() -> void +Microsoft.Testing.Platform.Services.TestCoverageResult +Microsoft.Testing.Platform.Services.TestCoverageResult.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Services.TestCoverageResult.DataTypesConsumed.get -> System.Type![]! +Microsoft.Testing.Platform.Services.TestCoverageResult.Description.get -> string! +Microsoft.Testing.Platform.Services.TestCoverageResult.DisplayName.get -> string! +Microsoft.Testing.Platform.Services.TestCoverageResult.GetOverall(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid) -> Microsoft.Testing.Platform.Services.CoverageScopeSummary? +Microsoft.Testing.Platform.Services.TestCoverageResult.HasThresholdFailure.get -> bool +Microsoft.Testing.Platform.Services.TestCoverageResult.IsEnabledAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Services.TestCoverageResult.Reports.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Platform.Services.TestCoverageResult.Reset() -> void +Microsoft.Testing.Platform.Services.TestCoverageResult.Scopes.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Platform.Services.TestCoverageResult.TestCoverageResult() -> void +Microsoft.Testing.Platform.Services.TestCoverageResult.TestCoverageResult(Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void +Microsoft.Testing.Platform.Services.TestCoverageResult.Thresholds.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Platform.Services.TestCoverageResult.Uid.get -> string! +Microsoft.Testing.Platform.Services.TestCoverageResult.Version.get -> string! Microsoft.Testing.Platform.Services.TestSessionContext Microsoft.Testing.Platform.Services.TestSessionContext.CancellationToken.get -> System.Threading.CancellationToken Microsoft.Testing.Platform.Services.TestSessionContext.SessionUid.get -> Microsoft.Testing.Platform.TestHost.SessionUid Microsoft.Testing.Platform.Services.TestSessionContext.TestSessionContext(System.Threading.CancellationToken cancellationToken) -> void +Microsoft.Testing.Platform.Telemetry.EnvironmentTraceContext Microsoft.Testing.Platform.Telemetry.ExtensionInformation Microsoft.Testing.Platform.Telemetry.ExtensionInformation.Enabled.get -> bool Microsoft.Testing.Platform.Telemetry.ExtensionInformation.ExtensionInformation(string! id, string! version, bool enabled) -> void @@ -2507,17 +2986,31 @@ Microsoft.Testing.Platform.Telemetry.ExtensionInformation.Id.get -> string! Microsoft.Testing.Platform.Telemetry.ExtensionInformation.Version.get -> string! Microsoft.Testing.Platform.Telemetry.ExtensionInformationCollector Microsoft.Testing.Platform.Telemetry.ICounter +Microsoft.Testing.Platform.Telemetry.ICounter.Add(T delta, System.Collections.Generic.IEnumerable>? tags) -> void Microsoft.Testing.Platform.Telemetry.ICounter.Add(T delta) -> void Microsoft.Testing.Platform.Telemetry.IHistogram +Microsoft.Testing.Platform.Telemetry.IHistogram.Record(T value, System.Collections.Generic.IEnumerable>? tags) -> void Microsoft.Testing.Platform.Telemetry.IHistogram.Record(T value) -> void Microsoft.Testing.Platform.Telemetry.IOpenTelemetryProvider Microsoft.Testing.Platform.Telemetry.IPlatformActivity +Microsoft.Testing.Platform.Telemetry.IPlatformActivity.AddEvent(string! name, System.Collections.Generic.IEnumerable>? tags = null, System.DateTimeOffset timestamp = default(System.DateTimeOffset)) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! Microsoft.Testing.Platform.Telemetry.IPlatformActivity.Id.get -> string? +Microsoft.Testing.Platform.Telemetry.IPlatformActivity.IsRecording.get -> bool +Microsoft.Testing.Platform.Telemetry.IPlatformActivity.RecordException(System.Exception! exception, System.Collections.Generic.IEnumerable>? additionalTags = null) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! +Microsoft.Testing.Platform.Telemetry.IPlatformActivity.SetStatus(Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode statusCode, string? description = null) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! Microsoft.Testing.Platform.Telemetry.IPlatformActivity.SetTag(string! key, object? value) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! +Microsoft.Testing.Platform.Telemetry.IPlatformActivity.SpanId.get -> string? +Microsoft.Testing.Platform.Telemetry.IPlatformActivity.TraceId.get -> string? Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.CreateCounter(string! name, string? unit = null, string? description = null, System.Collections.Generic.IEnumerable>? tags = null) -> Microsoft.Testing.Platform.Telemetry.ICounter! Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.CreateHistogram(string! name, string? unit = null, string? description = null, System.Collections.Generic.IEnumerable>? tags = null) -> Microsoft.Testing.Platform.Telemetry.IHistogram! +Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.CreateObservableGauge(string! name, System.Func! observeValue, string? unit = null, string? description = null) -> void +Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.CreateUpDownCounter(string! name, string? unit = null, string? description = null, System.Collections.Generic.IEnumerable>? tags = null) -> Microsoft.Testing.Platform.Telemetry.IUpDownCounter! +Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.HasCurrentActivity.get -> bool +Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.RootTraceState.get -> string? +Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.RootTraceState.set -> void Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.StartActivity(string! name = "", System.Collections.Generic.IEnumerable>? tags = null, string? parentId = null, System.DateTimeOffset startTime = default(System.DateTimeOffset)) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity? +Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.StartNonAmbientActivity(string! name, System.Collections.Generic.IEnumerable>? tags = null, string? parentId = null) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity? Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.TestFrameworkActivity.get -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity? Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.TestFrameworkActivity.set -> void Microsoft.Testing.Platform.Telemetry.ITelemetryCollector @@ -2528,18 +3021,32 @@ Microsoft.Testing.Platform.Telemetry.ITelemetryInformation.Version.get -> string Microsoft.Testing.Platform.Telemetry.ITelemetryManager Microsoft.Testing.Platform.Telemetry.ITelemetryManager.AddOpenTelemetryProvider(System.Func! openTelemetryProviderFactory) -> void Microsoft.Testing.Platform.Telemetry.ITelemetryManager.AddTelemetryCollectorProvider(System.Func! telemetryCollectorFactory) -> void +Microsoft.Testing.Platform.Telemetry.IUpDownCounter +Microsoft.Testing.Platform.Telemetry.IUpDownCounter.Add(T delta, System.Collections.Generic.IEnumerable>? tags = null) -> void Microsoft.Testing.Platform.Telemetry.NopTelemetryService Microsoft.Testing.Platform.Telemetry.NopTelemetryService.LogEventAsync(string! eventName, System.Collections.Generic.IDictionary! paramsMap, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Telemetry.NopTelemetryService.NopTelemetryService(bool enabled) -> void Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.Dispose() -> void Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.NotifyDiscovered() -> void +Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.NotifyExecutionCompleted(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> void Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.NotifyFailed(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode, Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! stateProperty) -> void Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.NotifyInProgress(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode, Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid? parentUid) -> void Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.NotifyPassed(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode, Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! stateProperty) -> void +Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.NotifyRunCompleted(int totalRanTests, int failedTests, int skippedTests, int exitCode, Microsoft.Testing.Platform.Telemetry.IPlatformActivity? runActivity = null) -> void Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.NotifySkipped(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode, Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! stateProperty) -> void Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.NotifyUnknown() -> void +Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.OpenTelemetryResultHandler(Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService! otelService, Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions! options) -> void Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.OpenTelemetryResultHandler(Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService! otelService) -> void +Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode +Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode.Error = 2 -> Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode +Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode.Ok = 1 -> Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode +Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode.Unset = 0 -> Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode +Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions +Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.AttributeValueLengthLimit.get -> int +Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.CaptureTestOutput.get -> bool +Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.EmitLegacyAttributes.get -> bool +Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.Truncate(string? value) -> string? Microsoft.Testing.Platform.Telemetry.ServerTelemetry Microsoft.Testing.Platform.Telemetry.ServerTelemetry.LogEventAsync(string! eventName, System.Collections.Generic.IDictionary! paramsMap, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Telemetry.ServerTelemetry.ServerTelemetry(Microsoft.Testing.Platform.Hosts.IServerTestHost! serverTestHost) -> void @@ -2564,11 +3071,18 @@ Microsoft.Testing.Platform.Telemetry.TelemetryProperties Microsoft.Testing.Platform.Telemetry.TelemetryProperties.ApplicationMode Microsoft.Testing.Platform.Telemetry.TelemetryProperties.HostProperties Microsoft.Testing.Platform.Telemetry.TelemetryProperties.RequestProperties +Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions +Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Activities +Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes +Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics +Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus +Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Units Microsoft.Testing.Platform.TestHost.ClientInfo.ClientInfo(string! id, string! version) -> void Microsoft.Testing.Platform.TestHost.TestHostManager Microsoft.Testing.Platform.TestHost.TestHostManager.AddDataConsumer(System.Func! dataConsumerFactory) -> void Microsoft.Testing.Platform.TestHost.TestHostManager.AddDataConsumer(Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory! compositeServiceFactory) -> void Microsoft.Testing.Platform.TestHost.TestHostManager.AddTestExecutionFilterFactory(System.Func! testExecutionFilterFactory) -> void +Microsoft.Testing.Platform.TestHost.TestHostManager.AddTestExecutionFilterProvider(System.Func! providerFactory) -> void Microsoft.Testing.Platform.TestHost.TestHostManager.AddTestFrameworkInvoker(System.Func! testFrameworkInvokerFactory) -> void Microsoft.Testing.Platform.TestHost.TestHostManager.AddTestHostApplicationLifetime(System.Func! testHostApplicationLifetime) -> void Microsoft.Testing.Platform.TestHost.TestHostManager.AddTestSessionLifetimeHandle(System.Func! testSessionLifetimeHandleFactory) -> void @@ -2577,6 +3091,7 @@ Microsoft.Testing.Platform.TestHost.TestHostManager.AddTestSessionLifetimeHandle Microsoft.Testing.Platform.TestHost.TestHostManager.AddTestSessionLifetimeHandler(Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory! compositeServiceFactory) -> void Microsoft.Testing.Platform.TestHost.TestHostManager.BuildDataConsumersAsync(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, System.Collections.Generic.List! alreadyBuiltServices) -> System.Threading.Tasks.Task<(Microsoft.Testing.Platform.Extensions.IExtension! Consumer, int RegistrationOrder)[]!>! Microsoft.Testing.Platform.TestHost.TestHostManager.BuildTestApplicationLifecycleCallbackAsync(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.TestHost.TestHostManager.BuildTestExecutionFilterProvidersAsync(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.TestHost.TestHostManager.BuildTestSessionLifetimeHandleAsync(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, System.Collections.Generic.List! alreadyBuiltServices) -> System.Threading.Tasks.Task<(Microsoft.Testing.Platform.Extensions.IExtension! TestSessionLifetimeHandler, int RegistrationOrder)[]!>! Microsoft.Testing.Platform.TestHost.TestHostManager.TestHostManager() -> void Microsoft.Testing.Platform.TestHost.TestHostManager.TryBuildTestAdapterInvokerAsync(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider) -> System.Threading.Tasks.Task!>! @@ -2594,6 +3109,10 @@ Microsoft.Testing.Platform.TestHostControllers.ITestHostControllerInfo Microsoft.Testing.Platform.TestHostControllers.ITestHostControllerInfo.GetTestHostControllerPID(bool throwIfMissing = true) -> int? Microsoft.Testing.Platform.TestHostControllers.ITestHostControllerInfo.HasTestHostController.get -> bool Microsoft.Testing.Platform.TestHostControllers.ITestHostControllerInfo.IsCurrentProcessTestHostController.get -> bool? +Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint +Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint.NamedPipeServerEndpoint(string! pipeName) -> void +Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint.PipeName.get -> string! +Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint.PipeName.set -> void Microsoft.Testing.Platform.TestHostControllers.PassiveNodeDataConsumer Microsoft.Testing.Platform.TestHostControllers.PassiveNodeDataConsumer.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.TestHostControllers.PassiveNodeDataConsumer.DataTypesConsumed.get -> System.Type![]! @@ -2645,6 +3164,7 @@ Microsoft.Testing.Platform.TestHostControllers.TestHostControllersManager.AddPro Microsoft.Testing.Platform.TestHostControllers.TestHostControllersManager.AddTestHostLauncher(System.Func! testHostLauncherFactory) -> void Microsoft.Testing.Platform.TestHostControllers.TestHostControllersManager.AddTestHostLauncher(Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory! compositeServiceFactory) -> void Microsoft.Testing.Platform.TestHostControllers.TestHostControllersManager.BuildAsync(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.TestHostControllers.TestHostControllersManager.BuildTestHostLauncherAsync(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.TestHostControllers.TestHostControllersManager.TestHostControllersManager() -> void Microsoft.Testing.Platform.TestHostControllers.TestHostProcessInformation Microsoft.Testing.Platform.TestHostControllers.TestHostProcessInformation.ExitCode.get -> int @@ -2652,6 +3172,7 @@ Microsoft.Testing.Platform.TestHostControllers.TestHostProcessInformation.HasExi Microsoft.Testing.Platform.TestHostControllers.TestHostProcessInformation.PID.get -> int Microsoft.Testing.Platform.TestHostControllers.TestHostProcessInformation.TestHostProcessInformation(int pid, int exitCode, bool testHostCompletedReceived) -> void Microsoft.Testing.Platform.TestHostControllers.TestHostProcessInformation.TestHostProcessInformation(int pid) -> void +Microsoft.Testing.Platform.TestHostOrchestrator.ITestHostControllerConnectionAuthorizationConsumer Microsoft.Testing.Platform.TestHostOrchestrator.TestHostOrchestratorConfiguration Microsoft.Testing.Platform.TestHostOrchestrator.TestHostOrchestratorConfiguration.TestHostOrchestratorConfiguration(Microsoft.Testing.Platform.Extensions.TestHostOrchestrator.ITestHostExecutionOrchestrator![]! testHostOrchestrators) -> void Microsoft.Testing.Platform.TestHostOrchestrator.TestHostOrchestratorConfiguration.TestHostOrchestrators.get -> Microsoft.Testing.Platform.Extensions.TestHostOrchestrator.ITestHostExecutionOrchestrator![]! @@ -2665,13 +3186,6 @@ Microsoft.Testing.Platform.TestProcessRole Microsoft.Testing.Platform.TestProcessRole.TestHost = 0 -> Microsoft.Testing.Platform.TestProcessRole Microsoft.Testing.Platform.TestProcessRole.TestHostController = 1 -> Microsoft.Testing.Platform.TestProcessRole Microsoft.Testing.Platform.TestProcessRole.TestHostOrchestrator = 2 -> Microsoft.Testing.Platform.TestProcessRole -Microsoft.Testing.Platform.Tools.ITool -Microsoft.Testing.Platform.Tools.ITool.Name.get -> string! -Microsoft.Testing.Platform.Tools.ITool.RunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Tools.IToolCommandLineOptionsProvider -Microsoft.Testing.Platform.Tools.IToolCommandLineOptionsProvider.ToolName.get -> string! -Microsoft.Testing.Platform.Tools.IToolsManager -Microsoft.Testing.Platform.Tools.IToolsManager.AddTool(System.Func! toolFactory) -> void Microsoft.Testing.Platform.Tools.ToolsManager Microsoft.Testing.Platform.Tools.ToolsManager.AddTool(System.Func! toolFactory) -> void Microsoft.Testing.Platform.Tools.ToolsManager.BuildAsync(System.IServiceProvider! serviceProvider) -> System.Threading.Tasks.Task!>! @@ -2772,12 +3286,14 @@ override Microsoft.Testing.Platform.Logging.FileLoggerInformation.Equals(object? override Microsoft.Testing.Platform.Logging.FileLoggerInformation.GetHashCode() -> int override Microsoft.Testing.Platform.Logging.FileLoggerInformation.ToString() -> string! override Microsoft.Testing.Platform.Logging.ServerLogMessage.ToString() -> string! +override Microsoft.Testing.Platform.Messages.AsynchronousMessageBus.ConsumersStillRunning.get -> System.Collections.Generic.IEnumerable! override Microsoft.Testing.Platform.Messages.AsynchronousMessageBus.DataConsumerServices.get -> Microsoft.Testing.Platform.Extensions.IDataConsumer![]! override Microsoft.Testing.Platform.Messages.AsynchronousMessageBus.DisableAsync() -> System.Threading.Tasks.Task! override Microsoft.Testing.Platform.Messages.AsynchronousMessageBus.Dispose() -> void override Microsoft.Testing.Platform.Messages.AsynchronousMessageBus.DrainDataAsync() -> System.Threading.Tasks.Task! override Microsoft.Testing.Platform.Messages.AsynchronousMessageBus.InitAsync() -> System.Threading.Tasks.Task! override Microsoft.Testing.Platform.Messages.AsynchronousMessageBus.PublishAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! data) -> System.Threading.Tasks.Task! +override Microsoft.Testing.Platform.Messages.MessageBusProxy.ConsumersStillRunning.get -> System.Collections.Generic.IEnumerable! override Microsoft.Testing.Platform.Messages.MessageBusProxy.DataConsumerServices.get -> Microsoft.Testing.Platform.Extensions.IDataConsumer![]! override Microsoft.Testing.Platform.Messages.MessageBusProxy.DisableAsync() -> System.Threading.Tasks.Task! override Microsoft.Testing.Platform.Messages.MessageBusProxy.Dispose() -> void @@ -2898,6 +3414,9 @@ override Microsoft.Testing.Platform.ServerMode.TestNodeStateChangedEventArgs.ToS override Microsoft.Testing.Platform.ServerMode.TestsAttachments.Equals(object? obj) -> bool override Microsoft.Testing.Platform.ServerMode.TestsAttachments.GetHashCode() -> int override Microsoft.Testing.Platform.ServerMode.TestsAttachments.ToString() -> string! +override Microsoft.Testing.Platform.Services.ClientCapabilitiesService.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Services.ClientCapabilitiesService.GetHashCode() -> int +override Microsoft.Testing.Platform.Services.ClientCapabilitiesService.ToString() -> string! override Microsoft.Testing.Platform.Services.ClientInfoService.Equals(object? obj) -> bool override Microsoft.Testing.Platform.Services.ClientInfoService.GetHashCode() -> int override Microsoft.Testing.Platform.Services.ClientInfoService.ToString() -> string! @@ -2920,26 +3439,43 @@ static extern Microsoft.Testing.Platform.OutputDevice.Terminal.NativeMethods.Get static extern Microsoft.Testing.Platform.OutputDevice.Terminal.NativeMethods.SetConsoleMode(nint hConsoleHandle, uint dwMode) -> bool static Microsoft.Testing.Platform.Builder.TestApplication.GetDiagnosticDefaultDirectory(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo) -> string! static Microsoft.Testing.Platform.Builder.TestApplication.TryParseDiagnosticVerbosity(string? environmentLogLevel, out Microsoft.Testing.Platform.Logging.LogLevel parsedLogLevel) -> bool +static Microsoft.Testing.Platform.CommandLine.CommandLineArgumentsRedactor.Redact(string![]! args) -> string! +static Microsoft.Testing.Platform.CommandLine.CommandLineArgumentsRedactor.RedactArgument(string![]! args, int index) -> string! static Microsoft.Testing.Platform.CommandLine.CommandLineOptionArgumentValidator.IsAutoValue(string! argument) -> bool static Microsoft.Testing.Platform.CommandLine.CommandLineOptionArgumentValidator.IsOffValue(string! argument) -> bool static Microsoft.Testing.Platform.CommandLine.CommandLineOptionArgumentValidator.IsOnValue(string! argument) -> bool static Microsoft.Testing.Platform.CommandLine.CommandLineOptionArgumentValidator.IsValidBooleanArgument(string! argument) -> bool static Microsoft.Testing.Platform.CommandLine.CommandLineOptionArgumentValidator.IsValidBooleanAutoArgument(string! argument) -> bool -static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.RequiresMainOption(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! options, string![]! subOptionNames, string! mainOptionName, System.Func! errorMessageFactory) -> System.Threading.Tasks.Task? -static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.RequiresMainOption(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! options, string![]! subOptionNames, string![]! mainOptionNames, System.Func! errorMessageFactory) -> System.Threading.Tasks.Task? -static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.ValidateAllowedValuesAsync(string! value, string![]! allowedValues, string! formatString) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsValidator.ValidateAsync(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult, System.Collections.Generic.IEnumerable! systemCommandLineOptionsProviders, System.Collections.Generic.IEnumerable! extensionCommandLineOptionsProviders, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, System.Collections.Generic.IReadOnlyList? jsonCommandLineOptions = null) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsValidator.ValidateAsync(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult, System.Collections.Generic.IEnumerable! systemCommandLineOptionsProviders, System.Collections.Generic.IEnumerable! extensionCommandLineOptionsProviders, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, System.Collections.Generic.IReadOnlyList? jsonCommandLineOptions = null, System.Collections.Generic.IReadOnlyList? jsonCommandLineOptionDefaults = null) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsValidator.ValidateToolProviders(System.Collections.Generic.IEnumerable! toolProviders, System.Collections.Generic.IEnumerable! systemProviders) -> Microsoft.Testing.Platform.Extensions.ValidationResult static Microsoft.Testing.Platform.CommandLine.CommandLineParser.Parse(string![]! args, Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! +static Microsoft.Testing.Platform.CommandLine.FlakyTestsReportingOptions.IsEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> bool static Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.GetMinimumExpectedTests(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> int static Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.GetZeroTestsPolicy(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> Microsoft.Testing.Platform.CommandLine.ZeroTestsPolicy static Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.IsListTestsJsonOutput(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> bool static Microsoft.Testing.Platform.Configurations.ConfigurationExtensions.IsCommandLineOptionSet(this Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, string! optionName) -> bool static Microsoft.Testing.Platform.Configurations.ConfigurationExtensions.TryGetCommandLineOptionArguments(this Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, string! optionName, out string![]? arguments) -> bool +static Microsoft.Testing.Platform.Configurations.ConfigurationExtensions.TryGetCommandLineOptionArgumentsOrDefault(this Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, string! optionName, out string![]? arguments) -> bool +static Microsoft.Testing.Platform.Configurations.ConfigurationExtensions.TryGetCommandLineOptionDefaultArguments(this Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, string! optionName, out string![]? arguments) -> bool +static Microsoft.Testing.Platform.Configurations.ConfigurationProviderHelpers.GetChildKeys(System.Collections.Generic.IEnumerable! keys, string? parentPath) -> System.Collections.Generic.IEnumerable! static Microsoft.Testing.Platform.Configurations.JsonConfigurationFileParser.Parse(System.IO.Stream! input) -> (System.Collections.Generic.Dictionary! SingleValueData, System.Collections.Generic.Dictionary! PropertyToAllChildren) static Microsoft.Testing.Platform.DotnetTestConnection.InstanceId.get -> string! static Microsoft.Testing.Platform.DotnetTestConnection.IsVersionCompatible(string! protocolVersion, string! supportedProtocolVersions) -> bool static Microsoft.Testing.Platform.DotnetTestHelper.HasDotnetTestServerOption(this Microsoft.Testing.Platform.CommandLine.CommandLineHandler! commandLineHandler) -> bool +static Microsoft.Testing.Platform.DotnetTestHelper.TryGetDotnetTestTransport(this Microsoft.Testing.Platform.CommandLine.CommandLineHandler! commandLineHandler, out Microsoft.Testing.Platform.DotnetTestTransportKind transport) -> bool +static Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionJsonReader.Read(string! manifestPath, string! content) -> Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest! +static Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifestParser.Parse(string! manifestPath, string! content) -> Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifest! +static Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.FindProcessorConflicts(System.Collections.Generic.IEnumerable! processors) -> System.Collections.Generic.IReadOnlyDictionary! +static Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.ValidateProcessedArtifact(Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact! output, string! outputDirectory, System.Collections.Generic.IReadOnlyList! inputs) -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact! +static Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingHandshakeProperties.Create(System.Collections.Generic.IEnumerable! processors) -> System.Collections.Generic.IReadOnlyDictionary? +static Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest.Load(string! path) -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest! static Microsoft.Testing.Platform.Extensions.InitializableExtension.TryInitializeAsync(this object! target) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Extensions.Messages.CoverageMetricHelper.ValidateCounts(long coveredCount, long coverableCount) -> void +static Microsoft.Testing.Platform.Extensions.Messages.CoverageMetricHelper.ValidateCustomMetricName(Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric metric, string? customMetricName) -> void +static Microsoft.Testing.Platform.Extensions.Messages.CoverageMetricHelper.ValidateProducerId(string! producerId) -> void +static Microsoft.Testing.Platform.Extensions.Messages.CoverageReportHelper.Validate(string! path, string! pathParameterName, Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat format, string! producerId, string? customFormatName) -> void +static Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptPropertyExtensions.IsSupersededRetryAttempt(this Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestNodeExecutionCompletedProperty.CachedInstance.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeExecutionCompletedProperty! static Microsoft.Testing.Platform.Helpers.ActionResult.Fail() -> Microsoft.Testing.Platform.Helpers.ActionResult! static Microsoft.Testing.Platform.Helpers.ActionResult.Ok(TResult result) -> Microsoft.Testing.Platform.Helpers.ActionResult! static Microsoft.Testing.Platform.Helpers.ActionResult.implicit operator Microsoft.Testing.Platform.Helpers.ActionResult!(TResult result) -> Microsoft.Testing.Platform.Helpers.ActionResult! @@ -2950,16 +3486,25 @@ static Microsoft.Testing.Platform.Helpers.ArgumentGuard.Ensure(bool condition, s static Microsoft.Testing.Platform.Helpers.CountDownEventExtensions.WaitAsync(this System.Threading.CountdownEvent! countdownEvent, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Helpers.CountDownEventExtensions.WaitAsync(this System.Threading.CountdownEvent! countdownEvent, System.TimeSpan timeout, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Helpers.CountDownEventExtensions.WaitAsync(this System.Threading.CountdownEvent! countdownEvent, uint millisecondsTimeOutInterval, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Helpers.DeadlineHelper.GetDumpMargin(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> System.TimeSpan +static Microsoft.Testing.Platform.Helpers.DeadlineHelper.GetStopMargin(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> System.TimeSpan +static Microsoft.Testing.Platform.Helpers.DeadlineHelper.GetTimerDueTime(System.DateTimeOffset deadline, System.DateTimeOffset now) -> System.TimeSpan +static Microsoft.Testing.Platform.Helpers.DeadlineHelper.SubtractSaturating(System.DateTimeOffset instant, System.TimeSpan margin) -> System.DateTimeOffset +static Microsoft.Testing.Platform.Helpers.DeadlineHelper.TryGetDeadline(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, out System.DateTimeOffset deadlineUtc) -> bool static Microsoft.Testing.Platform.Helpers.DisposeHelper.DisposeAsync(object? obj) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Helpers.ExtensionBuilderHelper.BuildAndRegisterCompositeExtensionsAsync(System.Collections.Generic.IEnumerable! compositeFactories, Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, System.Collections.Generic.List<(Microsoft.Testing.Platform.Extensions.IExtension! Extension, int RegistrationOrder)>! result, System.Collections.Generic.List! alreadyBuiltServices, System.Collections.Generic.List! factoryOrdering) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Helpers.ExtensionBuilderHelper.BuildAndRegisterCompositeExtensionsInPlaceAsync(System.Collections.Generic.IEnumerable! compositeFactories, Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, System.Collections.Generic.List<(Microsoft.Testing.Platform.Extensions.IExtension! Extension, int RegistrationOrder)>! result, System.Collections.Generic.List! alreadyBuiltServices, System.Collections.Generic.List! factoryOrdering) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Helpers.ExtensionBuilderHelper.BuildAndRegisterExtensionsAsync(System.Collections.Generic.IEnumerable!>! factories, Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, System.Collections.Generic.List<(Microsoft.Testing.Platform.Extensions.IExtension! Extension, int RegistrationOrder)>! result, System.Collections.Generic.List! factoryOrdering, bool registerInServiceProvider = false) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Helpers.ExtensionBuilderHelper.BuildAndRegisterExtensionsAsync(System.Collections.Generic.IEnumerable!>! factories, Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, System.Collections.Generic.List! result, bool registerInServiceProvider = false) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Helpers.ExtensionHelper.ConfigureOTelLegacyAttributes(Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions! options) -> void +static Microsoft.Testing.Platform.Helpers.ExtensionHelper.EmitLegacyOTelAttributes.get -> bool static Microsoft.Testing.Platform.Helpers.ExtensionHelper.ToOTelTags(this Microsoft.Testing.Platform.Extensions.IExtension! extension) -> System.Collections.Generic.KeyValuePair[]! static Microsoft.Testing.Platform.Helpers.ExtensionValidationHelper.ValidateUniqueExtension(this System.Collections.Generic.IEnumerable! existingExtensions, Microsoft.Testing.Platform.Extensions.IExtension! newExtension) -> void static Microsoft.Testing.Platform.Helpers.ExtensionValidationHelper.ValidateUniqueExtension(this System.Collections.Generic.IEnumerable! existingExtensions, Microsoft.Testing.Platform.Extensions.IExtension! newExtension, System.Func! extensionSelector) -> void +static Microsoft.Testing.Platform.Helpers.IdentityKeyBuilder.AppendLengthPrefixedComponent(System.Text.StringBuilder! builder, string? component) -> void static Microsoft.Testing.Platform.Helpers.ObjectPool.ForgetTrackedObject(T! old, T? replacement = null) -> void static Microsoft.Testing.Platform.Helpers.PasteArguments.AppendArgument(System.Text.StringBuilder! stringBuilder, string! argument) -> void +static Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper.IsMultiThreaded.get -> bool static Microsoft.Testing.Platform.Helpers.Sha256Hasher.HashWithNormalizedCasing(string! text) -> string! static Microsoft.Testing.Platform.Helpers.StackTraceHelper.GetFrameRegex() -> System.Text.RegularExpressions.Regex! static Microsoft.Testing.Platform.Helpers.StackTraceRegexHelper.CreateFrameRegexPattern(bool matchFramesWithoutLocation) -> string! @@ -2983,9 +3528,16 @@ static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParse(string? time, static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParse(string? time, out System.TimeSpan result) -> bool static Microsoft.Testing.Platform.Helpers.TimeSpanParser.TryParseRequireSuffix(string? time, out System.TimeSpan result) -> bool static Microsoft.Testing.Platform.Hosts.CommonHost.DisposeServiceProviderAsync(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, System.Func? filter = null, System.Collections.Generic.List? alreadyDisposed = null, bool isProcessShutdown = false) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Hosts.CommonHost.ExecuteRequestAsync(Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionInfo, Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, Microsoft.Testing.Platform.Messages.BaseMessageBus! baseMessageBus, Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! testFramework, Microsoft.Testing.Platform.TestHost.ClientInfo! client) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Hosts.CommonHost.EnsureMessageBusDisabledAsync(Microsoft.Testing.Platform.Messages.BaseMessageBus! baseMessageBus, System.IServiceProvider! serviceProvider) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Hosts.CommonHost.ExecuteRequestAsync(Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionInfo, Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, Microsoft.Testing.Platform.Messages.BaseMessageBus! baseMessageBus, Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! testFramework, Microsoft.Testing.Platform.TestHost.ClientInfo! client, bool isDiscoveryRequest) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Hosts.CommonHost.SupportsArtifactPostProcessing(string! hostType) -> bool static Microsoft.Testing.Platform.Hosts.ServerTestHost.GetDiscoveryMetrics(Microsoft.Testing.Platform.ServerMode.DiscoverRequestArgs! args, System.DateTimeOffset requestStart, System.DateTimeOffset requestStop, System.DateTimeOffset adapterLoadStart, System.DateTimeOffset adapterLoadStop, System.DateTimeOffset requestExecuteStart, System.DateTimeOffset requestExecuteStop, long totalTestsDiscovered) -> System.Collections.Generic.Dictionary! static Microsoft.Testing.Platform.Hosts.ServerTestHost.GetRunMetrics(Microsoft.Testing.Platform.ServerMode.RunRequestArgs! args, System.DateTimeOffset requestStart, System.DateTimeOffset requestStop, System.DateTimeOffset adapterLoadStart, System.DateTimeOffset adapterLoadStop, System.DateTimeOffset requestExecuteStart, System.DateTimeOffset requestExecuteStop, Microsoft.Testing.Platform.ServerMode.TestNodeStatistics statistics) -> System.Collections.Generic.Dictionary! +static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.ApplyControllerExtensionPreLaunchAsync(System.Collections.Generic.IReadOnlyList! lifetimeHandlers, System.Collections.Generic.IReadOnlyList! environmentVariableProviders, Microsoft.Testing.Platform.TestHostControllers.EnvironmentVariables! environmentVariables, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Hosts.ToolsHost.AggregateArguments(System.Collections.Generic.IEnumerable! optionRecords) -> string![]! +static Microsoft.Testing.Platform.Hosts.ToolsHost.ValidateCommandLineOptionsAsync(System.Collections.Generic.IEnumerable! providers, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.CreateFileArtifactMessages(string? executionId, Microsoft.Testing.Platform.Extensions.Messages.FileArtifact! fileArtifact) -> Microsoft.Testing.Platform.IPC.Models.FileArtifactMessages! +static Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.CreateFileArtifactMessages(string? executionId, Microsoft.Testing.Platform.Extensions.Messages.SessionFileArtifact! sessionFileArtifact) -> Microsoft.Testing.Platform.IPC.Models.FileArtifactMessages! static Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.operator !=(Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails? left, Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails? right) -> bool static Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.operator ==(Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails? left, Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails? right) -> bool static Microsoft.Testing.Platform.IPC.Models.AzureDevOpsLogMessage.operator !=(Microsoft.Testing.Platform.IPC.Models.AzureDevOpsLogMessage? left, Microsoft.Testing.Platform.IPC.Models.AzureDevOpsLogMessage? right) -> bool @@ -3024,20 +3576,26 @@ static Microsoft.Testing.Platform.IPC.Models.TestSessionEvent.operator !=(Micros static Microsoft.Testing.Platform.IPC.Models.TestSessionEvent.operator ==(Microsoft.Testing.Platform.IPC.Models.TestSessionEvent? left, Microsoft.Testing.Platform.IPC.Models.TestSessionEvent? right) -> bool static Microsoft.Testing.Platform.IPC.Models.TraitMessage.operator !=(Microsoft.Testing.Platform.IPC.Models.TraitMessage? left, Microsoft.Testing.Platform.IPC.Models.TraitMessage? right) -> bool static Microsoft.Testing.Platform.IPC.Models.TraitMessage.operator ==(Microsoft.Testing.Platform.IPC.Models.TraitMessage? left, Microsoft.Testing.Platform.IPC.Models.TraitMessage? right) -> bool +static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsureDirectoryIsWritable(string! directory) -> void +static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsurePathLengthWithinLimit(string! path) -> void static Microsoft.Testing.Platform.IPC.NamedPipeServer.GetPipeName(string! name) -> Microsoft.Testing.Platform.IPC.PipeNameDescription! +static Microsoft.Testing.Platform.IPC.NamedPipeServer.ResolvePipeDirectory(string? overrideDirectory, string? tempPath) -> (string! Directory, bool IsExplicitOverride) static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.DebugAssert(bool condition, string! message) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.IsNullOrEmpty(T[]? list) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadBool(System.IO.Stream! stream) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadByte(System.IO.Stream! stream) -> byte +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadFields(System.IO.Stream! stream, System.Func! tryReadField) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadInt(System.IO.Stream! stream) -> int static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadLong(System.IO.Stream! stream) -> long static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadString(System.IO.Stream! stream) -> string! static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadStringValue(System.IO.Stream! stream, int size) -> string! static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadUShort(System.IO.Stream! stream) -> ushort static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.SetPosition(System.IO.Stream! stream, long position) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.TryReadExecutionScopedField(System.IO.Stream! stream, ushort fieldId, int fieldSize, ref string? executionId, ref string? instanceId) -> bool static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteAtPosition(System.IO.Stream! stream, int value, long position) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteBool(System.IO.Stream! stream, bool value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteByte(System.IO.Stream! stream, byte value) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteExecutionScopedHeader(System.IO.Stream! stream, string? executionId, string? instanceId, ushort payloadFieldCount) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, byte? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, string? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, bool? value) -> void @@ -3046,6 +3604,7 @@ static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(Syst static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, long? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteField(System.IO.Stream! stream, ushort id, string? value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteInt(System.IO.Stream! stream, int value) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteListPayload(System.IO.Stream! stream, ushort fieldId, T[]? list, System.Action! writeItem) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteLong(System.IO.Stream! stream, long value) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteSize(System.IO.Stream! stream) -> void static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteString(System.IO.Stream! stream, string! str) -> void @@ -3056,6 +3615,8 @@ static Microsoft.Testing.Platform.Logging.FileLoggerInformation.operator ==(Micr static Microsoft.Testing.Platform.Logging.TypeNameHelper.GetTypeDisplayName(System.Type! type, bool fullName = true, bool includeGenericParameterNames = false, bool includeGenericParameters = true, char nestedTypeDelimiter = '+') -> string! static Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessorMessage.CreateData(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! data) -> Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessorMessage static Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessorMessage.CreateDrainMarker(System.Threading.Tasks.TaskCompletionSource! drainMarker) -> Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessorMessage +static Microsoft.Testing.Platform.Messages.ShutdownTimeouts.GetCanceledConsumerCompletion(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> System.TimeSpan +static Microsoft.Testing.Platform.Messages.ShutdownTimeouts.GetControllerFinalization(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> System.TimeSpan static Microsoft.Testing.Platform.Messages.TestNodePropertiesCategories.WellKnownTestNodeDiscoveredProperties.get -> System.Type![]! static Microsoft.Testing.Platform.Messages.TestNodePropertiesCategories.WellKnownTestNodeTestRunOutcomeFailedProperties.get -> System.Type![]! static Microsoft.Testing.Platform.Messages.TestNodePropertiesCategories.WellKnownTestNodeTestRunOutcomeProperties.get -> System.Type![]! @@ -3068,6 +3629,7 @@ static Microsoft.Testing.Platform.OutputDevice.AzureDevOpsLogIssueFormatter.IsAz static Microsoft.Testing.Platform.OutputDevice.DiscoveredTestsJsonSerializer.Serialize(System.Collections.Generic.IEnumerable! tests) -> string! static Microsoft.Testing.Platform.OutputDevice.OutputDeviceBannerHelper.BuildBannerText(Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, string? longArchitecture, string? runtimeFramework) -> string! static Microsoft.Testing.Platform.OutputDevice.PlatformOutputDeviceManager.GetDefaultTerminalOutputDevice(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.OutputDevice.IPlatformOutputDevice! +static Microsoft.Testing.Platform.OutputDevice.ProgressReportingConfiguration.GetThreshold(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, string! variableName, int defaultSeconds) -> System.TimeSpan static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.BuildTargetFrameworkMoniker(string? shortTargetFramework, string? targetPlatformName) -> string? static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetShortTargetFramework(string? frameworkDescription) -> string? static Microsoft.Testing.Platform.OutputDevice.TargetFrameworkParser.GetShortTargetFrameworkIncludingPlatform(System.Reflection.Assembly? entryAssembly) -> string? @@ -3089,11 +3651,20 @@ static Microsoft.Testing.Platform.OutputDevice.Terminal.NativeMethods.IsWindows. static Microsoft.Testing.Platform.OutputDevice.Terminal.NativeMethods.QueryIsScreenAndTryEnableAnsiColorCodes(Microsoft.Testing.Platform.OutputDevice.Terminal.NativeMethods.StreamHandleType handleType = Microsoft.Testing.Platform.OutputDevice.Terminal.NativeMethods.StreamHandleType.StdOut) -> (bool AcceptAnsiColorCodes, bool OutputIsScreen, uint? OriginalConsoleMode) static Microsoft.Testing.Platform.OutputDevice.Terminal.NativeMethods.RestoreConsoleMode(uint? originalConsoleMode, Microsoft.Testing.Platform.OutputDevice.Terminal.NativeMethods.StreamHandleType handleType = Microsoft.Testing.Platform.OutputDevice.Terminal.NativeMethods.StreamHandleType.StdOut) -> void static Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.AppendStackFrame(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, string! stackTraceLine) -> void +static Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.GetExitCodeDescription(int exitCode) -> string! +static Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.GetShowTestResultsVisibility(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility? +static Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.IsFlakyTestsReportingEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> bool +static Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.IsProgressEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> bool +static Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.TryParseShowTestResultsArguments(string![]! arguments, out Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility visibility, out Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError error) -> bool static Microsoft.Testing.Platform.OutputDevice.Terminal.TestRunArtifact.operator !=(Microsoft.Testing.Platform.OutputDevice.Terminal.TestRunArtifact? left, Microsoft.Testing.Platform.OutputDevice.Terminal.TestRunArtifact? right) -> bool static Microsoft.Testing.Platform.OutputDevice.Terminal.TestRunArtifact.operator ==(Microsoft.Testing.Platform.OutputDevice.Terminal.TestRunArtifact? left, Microsoft.Testing.Platform.OutputDevice.Terminal.TestRunArtifact? right) -> bool +static Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.GetShowTestResultsVisibility(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility +static Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.GetSlowestTestsCount(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> int static Microsoft.Testing.Platform.OutputDevice.TestRunSummaryHelper.FormatSummaryText(int totalTests, int failedTests, int passedTests, int skippedTests, bool wasCancelled, int minimumExpectedTests, Microsoft.Testing.Platform.CommandLine.ZeroTestsPolicy zeroTestsPolicy = Microsoft.Testing.Platform.CommandLine.ZeroTestsPolicy.AllowSkipped) -> string! static Microsoft.Testing.Platform.OutputDevice.TestRunSummaryHelper.GetVerdictText(int totalTests, int failedTests, int skippedTests, bool wasCancelled, int minimumExpectedTests, bool hasHandshakeFailures = false, bool hasFailedAssemblies = false, Microsoft.Testing.Platform.CommandLine.ZeroTestsPolicy zeroTestsPolicy = Microsoft.Testing.Platform.CommandLine.ZeroTestsPolicy.AllowSkipped) -> string! static Microsoft.Testing.Platform.OutputDevice.TestRunSummaryHelper.IsRunFailed(int totalTests, int failedTests, int skippedTests, bool wasCancelled, int minimumExpectedTests, Microsoft.Testing.Platform.CommandLine.ZeroTestsPolicy zeroTestsPolicy = Microsoft.Testing.Platform.CommandLine.ZeroTestsPolicy.AllowSkipped) -> bool +static Microsoft.Testing.Platform.Requests.TestExecutionFilterComposer.ComposeAsync(Microsoft.Testing.Platform.Requests.ITestExecutionFilter! requestFilter, System.Collections.Generic.IReadOnlyList! providers, Microsoft.Testing.Platform.Requests.TestExecutionFilterContext! context, bool allowProviderContributions, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Requests.TestExecutionFilterComposer.GetLeafFilters(Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter) -> System.Collections.Generic.IEnumerable! static Microsoft.Testing.Platform.RoslynDebug.Assert(bool b, string! message) -> void static Microsoft.Testing.Platform.RoslynDebug.Assert(bool b) -> void static Microsoft.Testing.Platform.RoslynHashCode.Combine(T1 value1, T2 value2, T3 value3, T4 value4, T5 value5, T6 value6, T7 value7, T8 value8) -> int @@ -3131,6 +3702,9 @@ static Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.operator !=( static Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.operator ==(Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs? left, Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs? right) -> bool static Microsoft.Testing.Platform.ServerMode.InvalidRequestParamsArgs.operator !=(Microsoft.Testing.Platform.ServerMode.InvalidRequestParamsArgs? left, Microsoft.Testing.Platform.ServerMode.InvalidRequestParamsArgs? right) -> bool static Microsoft.Testing.Platform.ServerMode.InvalidRequestParamsArgs.operator ==(Microsoft.Testing.Platform.ServerMode.InvalidRequestParamsArgs? left, Microsoft.Testing.Platform.ServerMode.InvalidRequestParamsArgs? right) -> bool +static Microsoft.Testing.Platform.ServerMode.JsonRpcProtocolVersions.Current.get -> string! +static Microsoft.Testing.Platform.ServerMode.JsonRpcProtocolVersions.Negotiate(System.Collections.Generic.IReadOnlyCollection? clientSupportedVersions) -> string? +static Microsoft.Testing.Platform.ServerMode.JsonRpcProtocolVersions.Supported.get -> System.Collections.Generic.IReadOnlyList! static Microsoft.Testing.Platform.ServerMode.LogEventArgs.operator !=(Microsoft.Testing.Platform.ServerMode.LogEventArgs? left, Microsoft.Testing.Platform.ServerMode.LogEventArgs? right) -> bool static Microsoft.Testing.Platform.ServerMode.LogEventArgs.operator ==(Microsoft.Testing.Platform.ServerMode.LogEventArgs? left, Microsoft.Testing.Platform.ServerMode.LogEventArgs? right) -> bool static Microsoft.Testing.Platform.ServerMode.NotificationMessage.operator !=(Microsoft.Testing.Platform.ServerMode.NotificationMessage? left, Microsoft.Testing.Platform.ServerMode.NotificationMessage? right) -> bool @@ -3171,16 +3745,23 @@ static Microsoft.Testing.Platform.ServerMode.ServerInfo.operator ==(Microsoft.Te static Microsoft.Testing.Platform.ServerMode.ServerModeManager.Build(System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.ServerMode.IMessageHandlerFactory! static Microsoft.Testing.Platform.ServerMode.ServerTestingCapabilities.operator !=(Microsoft.Testing.Platform.ServerMode.ServerTestingCapabilities? left, Microsoft.Testing.Platform.ServerMode.ServerTestingCapabilities? right) -> bool static Microsoft.Testing.Platform.ServerMode.ServerTestingCapabilities.operator ==(Microsoft.Testing.Platform.ServerMode.ServerTestingCapabilities? left, Microsoft.Testing.Platform.ServerMode.ServerTestingCapabilities? right) -> bool +static Microsoft.Testing.Platform.ServerMode.ServerTestingCapabilities.SupportsTestCoverageMessages.get -> bool static Microsoft.Testing.Platform.ServerMode.TelemetryEventArgs.operator !=(Microsoft.Testing.Platform.ServerMode.TelemetryEventArgs? left, Microsoft.Testing.Platform.ServerMode.TelemetryEventArgs? right) -> bool static Microsoft.Testing.Platform.ServerMode.TelemetryEventArgs.operator ==(Microsoft.Testing.Platform.ServerMode.TelemetryEventArgs? left, Microsoft.Testing.Platform.ServerMode.TelemetryEventArgs? right) -> bool static Microsoft.Testing.Platform.ServerMode.TestNodeStateChangedEventArgs.operator !=(Microsoft.Testing.Platform.ServerMode.TestNodeStateChangedEventArgs? left, Microsoft.Testing.Platform.ServerMode.TestNodeStateChangedEventArgs? right) -> bool static Microsoft.Testing.Platform.ServerMode.TestNodeStateChangedEventArgs.operator ==(Microsoft.Testing.Platform.ServerMode.TestNodeStateChangedEventArgs? left, Microsoft.Testing.Platform.ServerMode.TestNodeStateChangedEventArgs? right) -> bool static Microsoft.Testing.Platform.ServerMode.TestsAttachments.operator !=(Microsoft.Testing.Platform.ServerMode.TestsAttachments? left, Microsoft.Testing.Platform.ServerMode.TestsAttachments? right) -> bool static Microsoft.Testing.Platform.ServerMode.TestsAttachments.operator ==(Microsoft.Testing.Platform.ServerMode.TestsAttachments? left, Microsoft.Testing.Platform.ServerMode.TestsAttachments? right) -> bool +static Microsoft.Testing.Platform.Services.ArtifactFileNameSanitizer.ReplaceInvalidFileNameChars(string! fileName) -> string! static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.GetStandardReplacements(string! processName, string! processId, System.DateTimeOffset timestamp) -> System.Collections.Generic.Dictionary! +static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveTemplate(string! template, System.Collections.Generic.IDictionary? replacements = null) -> string! +static Microsoft.Testing.Platform.Services.ClientCapabilitiesService.operator !=(Microsoft.Testing.Platform.Services.ClientCapabilitiesService? left, Microsoft.Testing.Platform.Services.ClientCapabilitiesService? right) -> bool +static Microsoft.Testing.Platform.Services.ClientCapabilitiesService.operator ==(Microsoft.Testing.Platform.Services.ClientCapabilitiesService? left, Microsoft.Testing.Platform.Services.ClientCapabilitiesService? right) -> bool static Microsoft.Testing.Platform.Services.ClientInfoService.operator !=(Microsoft.Testing.Platform.Services.ClientInfoService? left, Microsoft.Testing.Platform.Services.ClientInfoService? right) -> bool static Microsoft.Testing.Platform.Services.ClientInfoService.operator ==(Microsoft.Testing.Platform.Services.ClientInfoService? left, Microsoft.Testing.Platform.Services.ClientInfoService? right) -> bool +static Microsoft.Testing.Platform.Services.CoverageThresholdExitCodePolicy.Apply(int exitCode, System.IServiceProvider! serviceProvider) -> int +static Microsoft.Testing.Platform.Services.ExitCodeIgnorePolicy.Apply(int exitCode, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> int static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetAsyncMonitorFactory(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Helpers.IAsyncMonitorFactory! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetBaseMessageBus(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Messages.BaseMessageBus! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetClock(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Helpers.IClock! @@ -3196,7 +3777,6 @@ static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetRequired static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetRuntimeFeature(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Helpers.IRuntimeFeature! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetServiceInternal(this System.IServiceProvider! provider) -> TService? static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetServicesInternal(this System.IServiceProvider! provider) -> System.Collections.Generic.IEnumerable! -static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetSystemClock(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Helpers.IClock! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetTask(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Helpers.ITask! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetTelemetryCollector(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Telemetry.ITelemetryCollector! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetTelemetryInformation(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Telemetry.ITelemetryInformation! @@ -3207,13 +3787,21 @@ static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetTestExec static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetTestFramework(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetTestFrameworkCapabilities(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Capabilities.TestFramework.ITestFrameworkCapabilities! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetTestFrameworkInvoker(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Requests.ITestFrameworkInvoker! +static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetTestHostControllerAuthorizedSecurityIdentities(this System.IServiceProvider! serviceProvider) -> System.Collections.Generic.IReadOnlyList? static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetTestHostControllerInfo(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.TestHostControllers.ITestHostControllerInfo! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetTestSessionContext(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Services.ITestSessionContext! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetUnhandledExceptionsPolicy(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Helpers.IUnhandledExceptionsPolicy! +static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.ResolveTestHostControllerAuthorizedSecurityIdentitiesAsync(this System.IServiceProvider! serviceProvider, Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostLauncher? testHostLauncher, string! testHostFileName, Microsoft.Testing.Platform.Logging.ILogger! logger, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task?>! static Microsoft.Testing.Platform.Services.ShutdownProgressReporter.TrackedWork.operator !=(Microsoft.Testing.Platform.Services.ShutdownProgressReporter.TrackedWork left, Microsoft.Testing.Platform.Services.ShutdownProgressReporter.TrackedWork right) -> bool static Microsoft.Testing.Platform.Services.ShutdownProgressReporter.TrackedWork.operator ==(Microsoft.Testing.Platform.Services.ShutdownProgressReporter.TrackedWork left, Microsoft.Testing.Platform.Services.ShutdownProgressReporter.TrackedWork right) -> bool +static Microsoft.Testing.Platform.Telemetry.EnvironmentTraceContext.IsValidTraceParent(string? traceParent) -> bool +static Microsoft.Testing.Platform.Telemetry.EnvironmentTraceContext.TryGetParentId(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> string? +static Microsoft.Testing.Platform.Telemetry.EnvironmentTraceContext.TryGetTraceState(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> string? static Microsoft.Testing.Platform.Telemetry.ExtensionInformationCollector.CollectAndSerializeToJsonAsync(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.Default.get -> Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions! +static Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.FromEnvironment(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions! static Microsoft.Testing.Platform.Telemetry.TelemetryExtensions.AsTelemetryBool(this bool value) -> string! +static Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.ToLegacy(string! status) -> string! static Microsoft.Testing.Platform.UILanguageOverride.SetCultureSpecifiedByUser(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> void static Polyfills.Polyfill.extension(System.OperatingSystem).IsAndroid() -> bool static Polyfills.Polyfill.extension(System.OperatingSystem).IsBrowser() -> bool @@ -3227,11 +3815,16 @@ static Polyfills.Polyfill.IsTvOS() -> bool static Polyfills.Polyfill.IsWasi() -> bool static readonly Microsoft.Testing.Platform.Configurations.EnvironmentVariablesConfigurationProvider.KeyDelimiter -> string! static readonly Microsoft.Testing.Platform.Configurations.JsonConfigurationFileParser.KeyDelimiter -> string! +static readonly Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.PathComparer -> System.StringComparer! +static readonly Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.PathComparison -> System.StringComparison +static readonly Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.SharedContractAssemblyNames -> string![]! static readonly Microsoft.Testing.Platform.Helpers.AppVersion.DefaultSemVer -> string! static readonly Microsoft.Testing.Platform.Helpers.StackTraceRegexHelper.MatchTimeout -> System.TimeSpan static readonly Microsoft.Testing.Platform.IPC.Models.VoidResponse.CachedInstance -> Microsoft.Testing.Platform.IPC.Models.VoidResponse! static readonly Microsoft.Testing.Platform.IPC.Models.WaitForServerControlRequest.CachedInstance -> Microsoft.Testing.Platform.IPC.Models.WaitForServerControlRequest! static readonly Microsoft.Testing.Platform.Logging.LoggingExtensions.Formatter -> System.Func! +static readonly Microsoft.Testing.Platform.Messages.ShutdownTimeouts.DefaultCanceledConsumerCompletion -> System.TimeSpan +static readonly Microsoft.Testing.Platform.Messages.ShutdownTimeouts.DefaultControllerFinalization -> System.TimeSpan static readonly Microsoft.Testing.Platform.OutputDevice.Terminal.FileUtilities.PathComparison -> System.StringComparison static readonly Microsoft.Testing.Platform.ServerMode.ErrorCodes.InternalError -> int static readonly Microsoft.Testing.Platform.ServerMode.ErrorCodes.InvalidParams -> int @@ -3240,6 +3833,7 @@ static readonly Microsoft.Testing.Platform.ServerMode.ErrorCodes.LspErrorRangeEn static readonly Microsoft.Testing.Platform.ServerMode.ErrorCodes.LspErrorRangeStart -> int static readonly Microsoft.Testing.Platform.ServerMode.ErrorCodes.MethodNotFound -> int static readonly Microsoft.Testing.Platform.ServerMode.ErrorCodes.ParseError -> int +static readonly Microsoft.Testing.Platform.ServerMode.ErrorCodes.ProtocolVersionNotSupported -> int static readonly Microsoft.Testing.Platform.ServerMode.ErrorCodes.RequestCanceled -> int static readonly Microsoft.Testing.Platform.ServerMode.ErrorCodes.ServerNotInitialized -> int static readonly Microsoft.Testing.Platform.ServerMode.ErrorCodes.TestingPlatformErrorRangeEnd -> int @@ -3247,6 +3841,7 @@ static readonly Microsoft.Testing.Platform.ServerMode.ErrorCodes.TestingPlatform static readonly Microsoft.Testing.Platform.Services.ShutdownProgressReporter.DefaultPollInterval -> System.TimeSpan static readonly Microsoft.Testing.Platform.Services.ShutdownProgressReporter.DefaultQuietWindow -> System.TimeSpan static ResponseFileHelper.SplitCommandLine(string! commandLine) -> System.Collections.Generic.IEnumerable! +static ResponseFileHelper.TryReadResponseFile(string! rspFilePath, string! diagnosticPath, System.Collections.Generic.ICollection! errors, out string![]? newArguments) -> bool static ResponseFileHelper.TryReadResponseFile(string! rspFilePath, System.Collections.Generic.ICollection! errors, out string![]? newArguments) -> bool static System.Numerics.Hashing.HashHelpers.Combine(int h1, int h2) -> int static System.Text.StringBuilderExtensions.Append(this System.Text.StringBuilder! builder, System.IFormatProvider? _, string! value) -> System.Text.StringBuilder! @@ -3261,8 +3856,6 @@ System.Numerics.Hashing.HashHelpers System.Runtime.CompilerServices.CompilerLoweringPreserveAttribute System.Runtime.CompilerServices.CompilerLoweringPreserveAttribute.CompilerLoweringPreserveAttribute() -> void System.Text.StringBuilderExtensions -virtual Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! -virtual Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! virtual Microsoft.Testing.Platform.Configurations.ConfigurationSourceBase.Description.get -> string! virtual Microsoft.Testing.Platform.Configurations.ConfigurationSourceBase.DisplayName.get -> string! virtual Microsoft.Testing.Platform.Configurations.ConfigurationSourceBase.IsEnabledAsync() -> System.Threading.Tasks.Task! @@ -3270,7 +3863,10 @@ virtual Microsoft.Testing.Platform.Configurations.ConfigurationSourceBase.Versio virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.PrintMembers(System.Text.StringBuilder! builder) -> void virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.PrintMembers(System.Text.StringBuilder! builder) -> void virtual Microsoft.Testing.Platform.Helpers.ObjectPool.Factory.Invoke() -> T! +virtual Microsoft.Testing.Platform.Hosts.CommonHost.DisposeProcessShutdownServiceAsync(object! service) -> System.Threading.Tasks.Task! virtual Microsoft.Testing.Platform.Hosts.CommonHost.HostType.get -> string! +virtual Microsoft.Testing.Platform.Messages.BaseMessageBus.ConsumersStillRunning.get -> System.Collections.Generic.IEnumerable! +virtual Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.DisplayActiveTestProgress.get -> bool virtual Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.Append(string! value) -> void virtual Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.AppendLine(string! value) -> void virtual Microsoft.Testing.Platform.Requests.TestHostTestFrameworkInvoker.ExecuteRequestAsync(Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! testFramework, Microsoft.Testing.Platform.Requests.TestExecutionRequest! request, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! diff --git a/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt index 2a1cb47c67..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt @@ -1,723 +1 @@ #nullable enable -const Microsoft.Testing.Platform.Configurations.PlatformConfigurationConstants.CommandLineOptionDefaultsSectionName = "commandLineOptionDefaults" -> string! -Microsoft.Testing.Platform.CommandLine.ICommandLineOptionsWithDefaults -Microsoft.Testing.Platform.CommandLine.ICommandLineOptionsWithDefaults.TryGetOptionArgumentListOrDefault(string! optionName, out string![]? arguments) -> bool -Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.EnumerateJsonCommandLineOptionDefaults() -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.TryGetCommandLineOptionDefaultFromProviders(string! optionName, out string![]! arguments) -> bool -Microsoft.Testing.Platform.Configurations.JsonConfigurationSource.JsonConfigurationProvider.EnumerateCommandLineOptionDefaults() -> System.Collections.Generic.IReadOnlyList! -static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsValidator.ValidateAsync(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult, System.Collections.Generic.IEnumerable! systemCommandLineOptionsProviders, System.Collections.Generic.IEnumerable! extensionCommandLineOptionsProviders, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, System.Collections.Generic.IReadOnlyList? jsonCommandLineOptions = null, System.Collections.Generic.IReadOnlyList? jsonCommandLineOptionDefaults = null) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Configurations.ConfigurationExtensions.TryGetCommandLineOptionDefaultArguments(this Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, string! optionName, out string![]? arguments) -> bool -static Microsoft.Testing.Platform.Configurations.ConfigurationExtensions.TryGetCommandLineOptionArgumentsOrDefault(this Microsoft.Testing.Platform.Configurations.IConfiguration! configuration, string! optionName, out string![]? arguments) -> bool -*REMOVED*static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsValidator.ValidateAsync(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult, System.Collections.Generic.IEnumerable! systemCommandLineOptionsProviders, System.Collections.Generic.IEnumerable! extensionCommandLineOptionsProviders, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, System.Collections.Generic.IReadOnlyList? jsonCommandLineOptions = null) -> System.Threading.Tasks.Task! -abstract Microsoft.Testing.Platform.Hosts.CommonHost.InternalRunAsync(System.Threading.CancellationToken cancellationToken, System.Collections.Generic.List! alreadyDisposed) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.GetChildren() -> System.Collections.Generic.IEnumerable! -Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.GetChildren(string? parentPath) -> System.Collections.Generic.IEnumerable! -Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.GetSection(string! key) -> Microsoft.Testing.Platform.Configurations.IConfigurationSection! -Microsoft.Testing.Platform.Configurations.AggregatedConfiguration.TryGetSectionValue(string! key, out string? value) -> bool -Microsoft.Testing.Platform.Configurations.CommandLineConfigurationProvider.GetChildKeys(string? parentPath) -> System.Collections.Generic.IEnumerable! -Microsoft.Testing.Platform.Configurations.CommandLineConfigurationProvider.TryGetScalar(string! key, out string? value) -> bool -Microsoft.Testing.Platform.Configurations.ConfigurationProviderHelpers -Microsoft.Testing.Platform.Configurations.ConfigurationSection -Microsoft.Testing.Platform.Configurations.ConfigurationSection.ConfigurationSection(Microsoft.Testing.Platform.Configurations.AggregatedConfiguration! root, string! path) -> void -Microsoft.Testing.Platform.Configurations.ConfigurationSection.GetChildren() -> System.Collections.Generic.IEnumerable! -Microsoft.Testing.Platform.Configurations.ConfigurationSection.GetSection(string! key) -> Microsoft.Testing.Platform.Configurations.IConfigurationSection! -Microsoft.Testing.Platform.Configurations.ConfigurationSection.HasValue.get -> bool -Microsoft.Testing.Platform.Configurations.ConfigurationSection.Key.get -> string! -Microsoft.Testing.Platform.Configurations.ConfigurationSection.Path.get -> string! -Microsoft.Testing.Platform.Configurations.ConfigurationSection.Value.get -> string? -Microsoft.Testing.Platform.Configurations.ConfigurationSection.this[string! key].get -> string? -Microsoft.Testing.Platform.Configurations.EnvironmentVariablesConfigurationProvider.GetChildKeys(string? parentPath) -> System.Collections.Generic.IEnumerable! -Microsoft.Testing.Platform.Configurations.EnvironmentVariablesConfigurationProvider.TryGetScalar(string! key, out string? value) -> bool -Microsoft.Testing.Platform.Configurations.JsonConfigurationSource.JsonConfigurationProvider.GetChildKeys(string? parentPath) -> System.Collections.Generic.IEnumerable! -static Microsoft.Testing.Platform.Configurations.ConfigurationProviderHelpers.GetChildKeys(System.Collections.Generic.IEnumerable! keys, string? parentPath) -> System.Collections.Generic.IEnumerable! -Microsoft.Testing.Platform.Helpers.IConsole.Write(System.Text.StringBuilder! value) -> void -Microsoft.Testing.Platform.Helpers.IFileSystem.ReplaceFile(string! sourceFileName, string! destFileName) -> void -Microsoft.Testing.Platform.Helpers.SystemConsole.Write(System.Text.StringBuilder! value) -> void -Microsoft.Testing.Platform.Helpers.SystemFileSystem.ReplaceFile(string! sourceFileName, string! destFileName) -> void -Microsoft.Testing.Platform.Helpers.TestHostHandleToProcessAdapter.DeferDisposalUntilExit() -> void -Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.AsyncConsumerDataProcessor(Microsoft.Testing.Platform.Extensions.IDataConsumer! dataConsumer, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken, System.TimeSpan canceledShutdownTimeout) -> void -Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.IsConsumerRunning.get -> bool -Microsoft.Testing.Platform.Messages.BlockingConsumerDataProcessor.BlockingConsumerDataProcessor(Microsoft.Testing.Platform.Extensions.IDataConsumer! dataConsumer, System.Threading.CancellationToken cancellationToken, System.TimeSpan canceledShutdownTimeout) -> void -Microsoft.Testing.Platform.Messages.BlockingConsumerDataProcessor.IsConsumerRunning.get -> bool -Microsoft.Testing.Platform.Messages.IAsyncConsumerDataProcessor.IsConsumerRunning.get -> bool -Microsoft.Testing.Platform.Messages.ShutdownTimeouts -Microsoft.Testing.Platform.Requests.ConsoleTestExecutionRequestFactory.ConsoleTestExecutionRequestFactory(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineService, Microsoft.Testing.Platform.Requests.ITestExecutionFilterFactory! testExecutionFilterFactory, System.Collections.Generic.IReadOnlyList! testExecutionFilterProviders) -> void -Microsoft.Testing.Platform.Requests.ConsoleTestExecutionRequestFactory.CreateRequestAsync(Microsoft.Testing.Platform.TestHost.TestSessionContext! session, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Requests.ITestExecutionRequestFactory.CreateRequestAsync(Microsoft.Testing.Platform.TestHost.TestSessionContext! session, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Requests.ServerTestExecutionRequestFactory.CreateRequestAsync(Microsoft.Testing.Platform.TestHost.TestSessionContext! session, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Requests.ServerTestExecutionRequestFactory.ServerTestExecutionRequestFactory(System.Func!>! factory) -> void -Microsoft.Testing.Platform.Requests.TestExecutionFilterComposer -Microsoft.Testing.Platform.TestHost.TestHostManager.AddTestExecutionFilterProvider(System.Func! providerFactory) -> void -Microsoft.Testing.Platform.TestHost.TestHostManager.BuildTestExecutionFilterProvidersAsync(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Requests.TestExecutionFilterComposer.ComposeAsync(Microsoft.Testing.Platform.Requests.ITestExecutionFilter! requestFilter, System.Collections.Generic.IReadOnlyList! providers, Microsoft.Testing.Platform.Requests.TestExecutionFilterContext! context, bool allowProviderContributions, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Requests.TestExecutionFilterComposer.GetLeafFilters(Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter) -> System.Collections.Generic.IEnumerable! -override Microsoft.Testing.Platform.Messages.AsynchronousMessageBus.ConsumersStillRunning.get -> System.Collections.Generic.IEnumerable! -override Microsoft.Testing.Platform.Messages.MessageBusProxy.ConsumersStillRunning.get -> System.Collections.Generic.IEnumerable! -static Microsoft.Testing.Platform.Hosts.CommonHost.EnsureMessageBusDisabledAsync(Microsoft.Testing.Platform.Messages.BaseMessageBus! baseMessageBus, System.IServiceProvider! serviceProvider) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Messages.ShutdownTimeouts.GetCanceledConsumerCompletion(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> System.TimeSpan -static Microsoft.Testing.Platform.Messages.ShutdownTimeouts.GetControllerFinalization(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> System.TimeSpan -static readonly Microsoft.Testing.Platform.Messages.ShutdownTimeouts.DefaultCanceledConsumerCompletion -> System.TimeSpan -static readonly Microsoft.Testing.Platform.Messages.ShutdownTimeouts.DefaultControllerFinalization -> System.TimeSpan -virtual Microsoft.Testing.Platform.Hosts.CommonHost.DisposeProcessShutdownServiceAsync(object! service) -> System.Threading.Tasks.Task! -virtual Microsoft.Testing.Platform.Messages.BaseMessageBus.ConsumersStillRunning.get -> System.Collections.Generic.IEnumerable! -*REMOVED*Microsoft.Testing.Platform.Requests.ConsoleTestExecutionRequestFactory.ConsoleTestExecutionRequestFactory(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineService, Microsoft.Testing.Platform.Requests.ITestExecutionFilterFactory! testExecutionFilterFactory) -> void -*REMOVED*abstract Microsoft.Testing.Platform.Hosts.CommonHost.InternalRunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.Requests.ConsoleTestExecutionRequestFactory.CreateRequestAsync(Microsoft.Testing.Platform.TestHost.TestSessionContext! session) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.Requests.ITestExecutionRequestFactory.CreateRequestAsync(Microsoft.Testing.Platform.TestHost.TestSessionContext! session) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.Requests.ServerTestExecutionRequestFactory.CreateRequestAsync(Microsoft.Testing.Platform.TestHost.TestSessionContext! session) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.Requests.ServerTestExecutionRequestFactory.ServerTestExecutionRequestFactory(System.Func! factory) -> void -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingHandshakeProperties -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManager -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManager.AddArtifactPostProcessor(System.Func! factory) -> void -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManager.ArtifactPostProcessingManager() -> void -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManager.BuildAsync(System.IServiceProvider! serviceProvider) -> System.Threading.Tasks.Task!>! -Microsoft.Testing.Platform.Hosts.ITestHostBuilder.ArtifactPostProcessing.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessingManager! -static Microsoft.Testing.Platform.Hosts.CommonHost.SupportsArtifactPostProcessing(string! hostType) -> bool -[TPEXP]Microsoft.Testing.Platform.Builder.TestApplicationBuilder.ArtifactPostProcessing.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessingManager! -[TPEXP]Microsoft.Testing.Platform.Builder.TestApplicationBuilder.Tools.get -> Microsoft.Testing.Platform.Tools.IToolsManager! -Microsoft.Testing.Platform.Hosts.TestHostBuilder.ArtifactPostProcessing.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessingManager! -const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.SupportedPostProcessorExtensionsLegacy = 15 -> byte -const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.SupportedPostProcessorKinds = 14 -> byte -const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.SupportedTruncatedRunPostProcessorExtensionsLegacy = 17 -> byte -const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.SupportedTruncatedRunPostProcessorKinds = 16 -> byte -const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.RequiredPostProcessingSupported = 19 -> byte -const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.RequiredPostProcessorKinds = 18 -> byte -static Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingHandshakeProperties.Create(System.Collections.Generic.IEnumerable! processors) -> System.Collections.Generic.IReadOnlyDictionary? -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.ArtifactPostProcessingDispatcherTool(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, System.Collections.Generic.IReadOnlyList! processors, Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol? protocol, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice) -> void -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.Description.get -> string! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.DisplayName.get -> string! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.Name.get -> string! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.RunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.Uid.get -> string! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.Version.get -> string! -static Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.FindProcessorConflicts(System.Collections.Generic.IEnumerable! processors) -> System.Collections.Generic.IReadOnlyDictionary! -static Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.ValidateProcessedArtifact(Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact! output, string! outputDirectory, System.Collections.Generic.IReadOnlyList! inputs) -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.ArtifactPostProcessingDispatcherToolCommandLine() -> void -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.Description.get -> string! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.DisplayName.get -> string! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.GetCommandLineOptions() -> System.Collections.Generic.IReadOnlyCollection! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.ToolName.get -> string! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.Uid.get -> string! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.Version.get -> string! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest.ArtifactPostProcessingManifest(string! outputDirectory, System.Collections.Generic.IReadOnlyList! inputs, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! context) -> void -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest.Context.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest.Inputs.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest.OutputDirectory.get -> string! -static Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest.Load(string! path) -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingManifest! -Microsoft.Testing.Platform.DotnetTestConnection.IsRequiredArtifactPostProcessingSupported.get -> bool -const Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherTool.ToolName = "internal-merge-artifacts" -> string! -const Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingDispatcherToolCommandLine.ManifestOptionName = "manifest" -> string! -const Microsoft.Testing.Platform.IPC.HandshakeMessageExecutionModes.Tool = "tool" -> string! -const Microsoft.Testing.Platform.IPC.HandshakeMessageHostTypes.ArtifactPostProcessor = "ArtifactPostProcessor" -> string! -Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol.InstanceId.get -> string! -Microsoft.Testing.Platform.ServerMode.IPushOnlyProtocol.SendMessageAsync(Microsoft.Testing.Platform.IPC.IRequest! message) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Hosts.ToolsHost.AggregateArguments(System.Collections.Generic.IEnumerable! optionRecords) -> string![]! -static Microsoft.Testing.Platform.Hosts.ToolsHost.ValidateCommandLineOptionsAsync(System.Collections.Generic.IEnumerable! providers, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsValidator.ValidateToolProviders(System.Collections.Generic.IEnumerable! toolProviders, System.Collections.Generic.IEnumerable! systemProviders) -> Microsoft.Testing.Platform.Extensions.ValidationResult -Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal.RenderProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]! messages) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame.Render(Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame! previousFrame, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]! messages, Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal! terminal) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer.OnTick(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]? messages = null) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer.OnWrite(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, System.Action! write, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]? messages = null) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer.OnTick(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]? messages = null) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer.OnWrite(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, System.Action! write, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]? messages = null) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal.RenderProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]! messages) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer.OnTick(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]? messages = null) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer.OnWrite(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, System.Action! write, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]? messages = null) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.RenderProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState![]! messages) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState.Id.get -> long -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState.TerminalProgressMessageState(long id, long version, string! text) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState.Text.get -> string! -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalProgressMessageState.Version.get -> long -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.UpdateProgressMessage(string! executionId, string! instanceId, string! producerUid, string! key, string? message) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.ClearProgressMessages() -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TestCompletedWithoutResult(string! executionId, string! testNodeUid) -> void -static Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.GetExitCodeDescription(int exitCode) -> string! -Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.NotifyExecutionCompleted(Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> void -virtual Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.DisplayActiveTestProgress.get -> bool -static Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.IsProgressEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> bool -const Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.MaximumVisibleProgressMessages = 5 -> int -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.UpdateProgressMessage(string! executionId, string! instanceId, string! producerUid, string! key, string? message) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.ClearProgressMessages() -> void -Microsoft.Testing.Platform.ServerMode.ServerModePerCallOutputDevice.Dispose() -> void -Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice.Dispose() -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal.RenderProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame.Render(Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminalTestProgressFrame! previousFrame, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress, Microsoft.Testing.Platform.OutputDevice.Terminal.AnsiTerminal! terminal) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer.OnTick(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.CursorProgressRenderer.OnWrite(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, System.Action! write) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer.OnTick(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer.OnWrite(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, System.Action! write) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal.RenderProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer.OnTick(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.SilenceDrivenHeartbeatRenderer.OnWrite(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progressItems, System.Action! write) -> void -*REMOVED*Microsoft.Testing.Platform.Tools.IToolCommandLineOptionsProvider -*REMOVED*Microsoft.Testing.Platform.Tools.IToolCommandLineOptionsProvider.ToolName.get -> string! -*REMOVED*Microsoft.Testing.Platform.Tools.ITool -*REMOVED*Microsoft.Testing.Platform.Tools.ITool.Name.get -> string! -*REMOVED*Microsoft.Testing.Platform.Tools.ITool.RunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.Tools.IToolsManager -*REMOVED*Microsoft.Testing.Platform.Tools.IToolsManager.AddTool(System.Func! toolFactory) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.SimpleTerminal.RenderProgress(Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState?[]! progress) -> void -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER = "TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER" -> string! -const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.InputArtifactPaths = 8 -> ushort -const Microsoft.Testing.Platform.IPC.FileArtifactMessageFieldsId.Kind = 7 -> ushort -static Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.CreateFileArtifactMessages(string? executionId, Microsoft.Testing.Platform.Extensions.Messages.FileArtifact! fileArtifact) -> Microsoft.Testing.Platform.IPC.Models.FileArtifactMessages! -static Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.CreateFileArtifactMessages(string? executionId, Microsoft.Testing.Platform.Extensions.Messages.SessionFileArtifact! sessionFileArtifact) -> Microsoft.Testing.Platform.IPC.Models.FileArtifactMessages! -Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.Deconstruct(out string? FullPath, out string? DisplayName, out string? Description, out string? TestUid, out string? TestDisplayName, out string? SessionUid, out string? Kind, out string![]? InputArtifactPaths) -> void -Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.FileArtifactMessage(string? FullPath, string? DisplayName, string? Description, string? TestUid, string? TestDisplayName, string? SessionUid, string? Kind, string![]? InputArtifactPaths = null) -> void -Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.InputArtifactPaths.get -> string![]? -Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.InputArtifactPaths.init -> void -Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.Kind.get -> string? -Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.Kind.init -> void -*REMOVED*Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.Deconstruct(out string? FullPath, out string? DisplayName, out string? Description, out string? TestUid, out string? TestDisplayName, out string? SessionUid) -> void -*REMOVED*Microsoft.Testing.Platform.IPC.Models.FileArtifactMessage.FileArtifactMessage(string? FullPath, string? DisplayName, string? Description, string? TestUid, string? TestDisplayName, string? SessionUid) -> void -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_PIPE_DIRECTORY = "TESTINGPLATFORM_PIPE_DIRECTORY" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_FINALIZATION_TIMEOUT_SECONDS = "TESTINGPLATFORM_TESTHOSTCONTROLLER_FINALIZATION_TIMEOUT_SECONDS" -> string! -const Microsoft.Testing.Platform.IPC.HandshakeMessagePropertyNames.AttemptNumber = 13 -> byte -const Microsoft.Testing.Platform.IPC.NamedPipeServer.MaxUnixDomainSocketPathLengthInBytes = 103 -> int -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.AssemblyRunStarted(string! assembly, string? targetFramework, string? architecture, string! executionId, string! instanceId, int attemptNumber) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.GetAttemptNumber(string! instanceId) -> int -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.GetOrCreateTestNodeResultsState(System.Func! factory) -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestNodeResultsState! -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.NotifyHandshake(string! instanceId, int attemptNumber) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportDiscoveredTest(string? displayName) -> void -Microsoft.Testing.Platform.Helpers.ExitCode.CoverageThresholdFailed = 14 -> Microsoft.Testing.Platform.Helpers.ExitCode -Microsoft.Testing.Platform.Helpers.ExitCode.TestExecutionStoppedAtDeadline = 15 -> Microsoft.Testing.Platform.Helpers.ExitCode -Microsoft.Testing.Platform.Services.IStopPoliciesService.IsDeadlineTriggered.get -> bool -Microsoft.Testing.Platform.Services.IStopPoliciesService.RegisterDeadlineStopFallback(System.Func!>! callback) -> void -Microsoft.Testing.Platform.Services.IStopPoliciesService.RegisterOnDeadlineCallbackAsync(System.Func! callback) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Services.IStopPoliciesService.ExecuteDeadlineCallbacksAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Services.IStopPoliciesService.IsTestExecutionCompleted.get -> bool -Microsoft.Testing.Platform.Services.IStopPoliciesService.NotifyTestExecutionStarting() -> void -Microsoft.Testing.Platform.Services.IStopPoliciesService.NotifyTestExecutionCompleted() -> void -Microsoft.Testing.Platform.Services.IStopPoliciesService.TryExecuteDeadlineStopFallbackAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Services.StopPoliciesService.IsTestExecutionCompleted.get -> bool -Microsoft.Testing.Platform.Services.StopPoliciesService.NotifyTestExecutionStarting() -> void -Microsoft.Testing.Platform.Services.StopPoliciesService.NotifyTestExecutionCompleted() -> void -Microsoft.Testing.Platform.Services.ServiceProvider.TestHostControllerAuthorizedSecurityIdentities.get -> System.Collections.Generic.IReadOnlyList? -Microsoft.Testing.Platform.Services.ServiceProvider.TestHostControllerAuthorizedSecurityIdentities.set -> void -static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetTestHostControllerAuthorizedSecurityIdentities(this System.IServiceProvider! serviceProvider) -> System.Collections.Generic.IReadOnlyList? -static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.ResolveTestHostControllerAuthorizedSecurityIdentitiesAsync(this System.IServiceProvider! serviceProvider, Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostLauncher? testHostLauncher, string! testHostFileName, Microsoft.Testing.Platform.Logging.ILogger! logger, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task?>! -Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint -Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint.NamedPipeServerEndpoint(string! pipeName) -> void -Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint.PipeName.get -> string! -Microsoft.Testing.Platform.TestHostControllers.NamedPipeServerEndpoint.PipeName.set -> void -Microsoft.Testing.Platform.TestHostControllers.TestHostControllersManager.BuildTestHostLauncherAsync(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.TestHostOrchestrator.ITestHostControllerConnectionAuthorizationConsumer -static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.ApplyControllerExtensionPreLaunchAsync(System.Collections.Generic.IReadOnlyList! lifetimeHandlers, System.Collections.Generic.IReadOnlyList! environmentVariableProviders, Microsoft.Testing.Platform.TestHostControllers.EnvironmentVariables! environmentVariables, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Services.StopPoliciesService.IsDeadlineTriggered.get -> bool -Microsoft.Testing.Platform.Services.StopPoliciesService.RegisterDeadlineStopFallback(System.Func!>! callback) -> void -Microsoft.Testing.Platform.Services.StopPoliciesService.Dispose() -> void -Microsoft.Testing.Platform.Services.StopPoliciesService.RegisterOnDeadlineCallbackAsync(System.Func! callback) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Services.StopPoliciesService.ExecuteDeadlineCallbacksAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Services.StopPoliciesService.TryExecuteDeadlineStopFallbackAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.AppendCoverageSummary(System.Collections.Generic.IReadOnlyList! scopes, System.Collections.Generic.IReadOnlyList! thresholds) -> void -Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.TerminalOutputDevice(Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.TestHostControllers.ITestHostControllerInfo! testHostControllerInfo, Microsoft.Testing.Platform.Helpers.IAsyncMonitor! asyncMonitor, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Logging.IFileLoggerInformation? fileLoggerInformation, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService, Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource! testApplicationCancellationTokenSource, Microsoft.Testing.Platform.Services.ITestCoverageResult! testCoverageResult) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.TerminalOutputDevice(Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.TestHostControllers.ITestHostControllerInfo! testHostControllerInfo, Microsoft.Testing.Platform.Helpers.IAsyncMonitor! asyncMonitor, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Logging.IFileLoggerInformation? fileLoggerInformation, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService, Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource! testApplicationCancellationTokenSource) -> void -Microsoft.Testing.Platform.Services.ExitCodeIgnorePolicy -Microsoft.Testing.Platform.Services.CoverageThresholdExitCodePolicy -Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts -Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts.CoverableCount.get -> long -Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts.CoverageCounts() -> void -Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts.CoverageCounts(long coveredCount, long coverableCount) -> void -Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts.CoveredCount.get -> long -Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts.HasCoverableData.get -> bool -Microsoft.Testing.Platform.Extensions.Messages.CoverageCounts.Percentage.get -> double -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetricHelper -Microsoft.Testing.Platform.Extensions.Messages.CoverageReportHelper -static Microsoft.Testing.Platform.Extensions.Messages.CoverageMetricHelper.ValidateCounts(long coveredCount, long coverableCount) -> void -static Microsoft.Testing.Platform.Extensions.Messages.CoverageMetricHelper.ValidateCustomMetricName(Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric metric, string? customMetricName) -> void -static Microsoft.Testing.Platform.Extensions.Messages.CoverageMetricHelper.ValidateProducerId(string! producerId) -> void -static Microsoft.Testing.Platform.Extensions.Messages.CoverageReportHelper.Validate(string! path, string! pathParameterName, Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat format, string! producerId, string? customFormatName) -> void -Microsoft.Testing.Platform.Services.TestCoverageResult -Microsoft.Testing.Platform.Services.TestCoverageCapabilities -Microsoft.Testing.Platform.Services.TestCoverageCapabilities.EnabledProducerUids.get -> System.Collections.Generic.IReadOnlyCollection! -Microsoft.Testing.Platform.Services.TestCoverageCapabilities.RegisterProducer(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! producer) -> void -Microsoft.Testing.Platform.Services.TestCoverageCapabilities.RegisterProducers(System.Collections.Generic.IEnumerable! dataConsumers) -> void -Microsoft.Testing.Platform.Services.TestCoverageCapabilities.SupportsTestCoverageMessages.get -> bool -Microsoft.Testing.Platform.Services.TestCoverageCapabilities.TestCoverageCapabilities() -> void -static Microsoft.Testing.Platform.ServerMode.ServerTestingCapabilities.SupportsTestCoverageMessages.get -> bool -Microsoft.Testing.Platform.Services.TestCoverageResult.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Services.TestCoverageResult.DataTypesConsumed.get -> System.Type![]! -Microsoft.Testing.Platform.Services.TestCoverageResult.Description.get -> string! -Microsoft.Testing.Platform.Services.TestCoverageResult.DisplayName.get -> string! -Microsoft.Testing.Platform.Services.TestCoverageResult.HasThresholdFailure.get -> bool -Microsoft.Testing.Platform.Services.TestCoverageResult.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Services.TestCoverageResult.GetOverall(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid) -> Microsoft.Testing.Platform.Services.CoverageScopeSummary? -Microsoft.Testing.Platform.Services.TestCoverageResult.Reports.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Platform.Services.TestCoverageResult.Reset() -> void -Microsoft.Testing.Platform.Services.TestCoverageResult.Scopes.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Platform.Services.TestCoverageResult.TestCoverageResult() -> void -Microsoft.Testing.Platform.Services.TestCoverageResult.TestCoverageResult(Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void -Microsoft.Testing.Platform.Services.TestCoverageResult.Thresholds.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Platform.Services.TestCoverageResult.Uid.get -> string! -Microsoft.Testing.Platform.Services.TestCoverageResult.Version.get -> string! -Microsoft.Testing.Platform.Services.TestApplicationResult.TestApplicationResult(Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputService, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService, Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService? otelService, Microsoft.Testing.Platform.Services.ITestCoverageResult? testCoverageResult) -> void -static Microsoft.Testing.Platform.Services.ArtifactNamingHelper.ResolveAndSanitize(string! template, string! processName, string! processId, System.DateTimeOffset timestamp, System.Func! sanitizeLeafFileName) -> string! -static Microsoft.Testing.Platform.Services.CoverageThresholdExitCodePolicy.Apply(int exitCode, System.IServiceProvider! serviceProvider) -> int -static Microsoft.Testing.Platform.Services.ExitCodeIgnorePolicy.Apply(int exitCode, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> int -Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper -Microsoft.Testing.Platform.Helpers.IdentityKeyBuilder -Microsoft.Testing.Platform.Logging.FileLogger.FileLogger(Microsoft.Testing.Platform.Logging.FileLoggerOptions! options, Microsoft.Testing.Platform.Logging.LogLevel logLevel, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IFileStreamFactory! fileStreamFactory, System.TimeSpan? flushTimeout = null) -> void -Microsoft.Testing.Platform.Logging.FileLogger.IsFileHandleReleased.get -> bool -Microsoft.Testing.Platform.Messages.SingleConsumerUnboundedChannel.WaitToRead() -> bool -static Microsoft.Testing.Platform.Helpers.RuntimeFeatureHelper.IsMultiThreaded.get -> bool -static Microsoft.Testing.Platform.Helpers.IdentityKeyBuilder.AppendLengthPrefixedComponent(System.Text.StringBuilder! builder, string? component) -> void -const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.IsStateful = "isStateful" -> string! -const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.SupportsTestCoverageMessages = "supportsTestCoverageMessages" -> string! -Microsoft.Testing.Platform.Hosts.TestHostControlledHost.TestHostControlledHost(Microsoft.Testing.Platform.IPC.NamedPipeClient! testHostControllerPipeClient, Microsoft.Testing.Platform.Hosts.IHost! innerHost, System.Threading.CancellationToken cancellationToken, Microsoft.Testing.Platform.Services.TestApplicationResult? testApplicationResult = null) -> void -Microsoft.Testing.Platform.IPC.Models.TestHostCompletedRequest.TestHostCompletedRequest(int returnCode, int unfilteredReturnCode) -> void -Microsoft.Testing.Platform.IPC.Models.TestHostCompletedRequest.UnfilteredExitCode.get -> int -Microsoft.Testing.Platform.Services.TestApplicationResult.GetProcessExitCodeWithoutIgnore() -> int -Microsoft.Testing.Platform.ServerMode.ClientCapabilities.ClientCapabilities(bool DebuggerProvider, bool IsStateful) -> void -Microsoft.Testing.Platform.ServerMode.ClientCapabilities.Deconstruct(out bool DebuggerProvider, out bool IsStateful) -> void -Microsoft.Testing.Platform.ServerMode.ClientCapabilities.IsStateful.get -> bool -Microsoft.Testing.Platform.ServerMode.ClientCapabilities.IsStateful.init -> void -Microsoft.Testing.Platform.Services.ArtifactFileNameSanitizer -Microsoft.Testing.Platform.Services.ArtifactNamingService -Microsoft.Testing.Platform.Services.ArtifactNamingService.ArtifactNamingService(Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IClock! clock) -> void -Microsoft.Testing.Platform.Services.ArtifactNamingService.ResolveFileName(string! template) -> string! -Microsoft.Testing.Platform.Services.ClientCapabilitiesService -Microsoft.Testing.Platform.Services.ClientCapabilitiesService.$() -> Microsoft.Testing.Platform.Services.ClientCapabilitiesService! -Microsoft.Testing.Platform.Services.ClientCapabilitiesService.ClientCapabilitiesService(bool IsStateful) -> void -Microsoft.Testing.Platform.Services.ClientCapabilitiesService.Deconstruct(out bool IsStateful) -> void -Microsoft.Testing.Platform.Services.ClientCapabilitiesService.Equals(Microsoft.Testing.Platform.Services.ClientCapabilitiesService? other) -> bool -Microsoft.Testing.Platform.Services.ClientCapabilitiesService.IsStateful.get -> bool -Microsoft.Testing.Platform.Services.ClientCapabilitiesService.IsStateful.init -> void -Microsoft.Testing.Platform.ServerMode.InitializeRequestArgs.ProtocolVersions.get -> string![]? -Microsoft.Testing.Platform.ServerMode.InitializeRequestArgs.ProtocolVersions.init -> void -Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.ProtocolVersion.get -> string? -Microsoft.Testing.Platform.ServerMode.InitializeResponseArgs.ProtocolVersion.init -> void -Microsoft.Testing.Platform.ServerMode.JsonRpcProtocolVersions -const Microsoft.Testing.Platform.ServerMode.JsonRpcProtocolVersions.V1 = "1.0.0" -> string! -static Microsoft.Testing.Platform.ServerMode.JsonRpcProtocolVersions.Current.get -> string! -static Microsoft.Testing.Platform.ServerMode.JsonRpcProtocolVersions.Negotiate(System.Collections.Generic.IReadOnlyCollection? clientSupportedVersions) -> string? -static Microsoft.Testing.Platform.ServerMode.JsonRpcProtocolVersions.Supported.get -> System.Collections.Generic.IReadOnlyList! -const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.ProtocolVersion = "protocolVersion" -> string! -const Microsoft.Testing.Platform.ServerMode.JsonRpcStrings.ProtocolVersions = "protocolVersions" -> string! -static readonly Microsoft.Testing.Platform.ServerMode.ErrorCodes.ProtocolVersionNotSupported -> int -Microsoft.Testing.Platform.ServerMode.RequestMessage.StringId.get -> string? -Microsoft.Testing.Platform.ServerMode.RequestMessage.StringId.init -> void -Microsoft.Testing.Platform.ServerMode.ResponseMessage.StringId.get -> string? -Microsoft.Testing.Platform.ServerMode.ResponseMessage.StringId.init -> void -Microsoft.Testing.Platform.ServerMode.ErrorMessage.StringId.get -> string? -Microsoft.Testing.Platform.ServerMode.ErrorMessage.StringId.init -> void -Microsoft.Testing.Platform.ServerMode.CancelRequestArgs.StringId.get -> string? -Microsoft.Testing.Platform.ServerMode.CancelRequestArgs.StringId.init -> void -Microsoft.Testing.Platform.Services.ClientInfoService.Capabilities.get -> Microsoft.Testing.Platform.Services.IClientCapabilities! -Microsoft.Testing.Platform.Services.ClientInfoService.Capabilities.init -> void -Microsoft.Testing.Platform.Services.ClientInfoService.ClientInfoService(string! Id, string! Version, Microsoft.Testing.Platform.Services.IClientCapabilities! Capabilities) -> void -Microsoft.Testing.Platform.Services.ClientInfoService.Deconstruct(out string! Id, out string! Version, out Microsoft.Testing.Platform.Services.IClientCapabilities! Capabilities) -> void -override Microsoft.Testing.Platform.Services.ClientCapabilitiesService.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Services.ClientCapabilitiesService.GetHashCode() -> int -override Microsoft.Testing.Platform.Services.ClientCapabilitiesService.ToString() -> string! -const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DotNetTestHttpEndpointOptionKey = "dotnet-test-http-endpoint" -> string! -const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DotNetTestHttpTokenOptionKey = "dotnet-test-http-token" -> string! -const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DotNetTestTransportHttpArgument = "http" -> string! -const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DotNetTestTransportOptionKey = "dotnet-test-transport" -> string! -const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.DotNetTestTransportPipeArgument = "pipe" -> string! -Microsoft.Testing.Platform.CommandLine.CommandLineArgumentsRedactor -Microsoft.Testing.Platform.DotnetTestTransportKind -Microsoft.Testing.Platform.DotnetTestTransportKind.Http = 1 -> Microsoft.Testing.Platform.DotnetTestTransportKind -Microsoft.Testing.Platform.DotnetTestTransportKind.NamedPipe = 0 -> Microsoft.Testing.Platform.DotnetTestTransportKind -Microsoft.Testing.Platform.IPC.DotnetTestHttpClient -Microsoft.Testing.Platform.IPC.DotnetTestHttpClient.ConnectAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.DotnetTestHttpClient.Dispose() -> void -Microsoft.Testing.Platform.IPC.DotnetTestHttpClient.DotnetTestHttpClient(System.Uri! endpoint, string! authToken, System.Net.Http.HttpClient! httpClient, bool disposeHttpClient) -> void -Microsoft.Testing.Platform.IPC.DotnetTestHttpClient.DotnetTestHttpClient(System.Uri! endpoint, string! authToken) -> void -Microsoft.Testing.Platform.IPC.DotnetTestHttpClient.IsConnected.get -> bool -Microsoft.Testing.Platform.IPC.DotnetTestHttpClient.RequestReplyAsync(TRequest request, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Stream! stream, System.Threading.CancellationToken cancellationToken, int maximumFrameSize = 2147483647) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Stream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.CommandLine.CommandLineArgumentsRedactor.Redact(string![]! args) -> string! -static Microsoft.Testing.Platform.CommandLine.CommandLineArgumentsRedactor.RedactArgument(string![]! args, int index) -> string! -static ResponseFileHelper.TryReadResponseFile(string! rspFilePath, string! diagnosticPath, System.Collections.Generic.ICollection! errors, out string![]? newArguments) -> bool -static Microsoft.Testing.Platform.DotnetTestHelper.TryGetDotnetTestTransport(this Microsoft.Testing.Platform.CommandLine.CommandLineHandler! commandLineHandler, out Microsoft.Testing.Platform.DotnetTestTransportKind transport) -> bool -*REMOVED*Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.ReadNextMessageAsync(System.IO.Pipes.PipeStream! stream, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.IPC.NamedPipeConnectionBase.WriteMessageAsync(System.IO.Pipes.PipeStream! stream, Microsoft.Testing.Platform.IPC.INamedPipeSerializer! serializer, object! message, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadFields(System.IO.Stream! stream, System.Func! tryReadField) -> void -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.TryReadExecutionScopedField(System.IO.Stream! stream, ushort fieldId, int fieldSize, ref string? executionId, ref string? instanceId) -> bool -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteExecutionScopedHeader(System.IO.Stream! stream, string? executionId, string? instanceId, ushort payloadFieldCount) -> void -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteListPayload(System.IO.Stream! stream, ushort fieldId, T[]? list, System.Action! writeItem) -> void -static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsureDirectoryIsWritable(string! directory) -> void -static Microsoft.Testing.Platform.IPC.NamedPipeServer.EnsurePathLengthWithinLimit(string! path) -> void -static Microsoft.Testing.Platform.IPC.NamedPipeServer.ResolvePipeDirectory(string? overrideDirectory, string? tempPath) -> (string! Directory, bool IsExplicitOverride) -static Microsoft.Testing.Platform.Services.ArtifactFileNameSanitizer.ReplaceInvalidFileNameChars(string! fileName) -> string! -static Microsoft.Testing.Platform.Services.ClientCapabilitiesService.operator !=(Microsoft.Testing.Platform.Services.ClientCapabilitiesService? left, Microsoft.Testing.Platform.Services.ClientCapabilitiesService? right) -> bool -static Microsoft.Testing.Platform.Services.ClientCapabilitiesService.operator ==(Microsoft.Testing.Platform.Services.ClientCapabilitiesService? left, Microsoft.Testing.Platform.Services.ClientCapabilitiesService? right) -> bool -*REMOVED*Microsoft.Testing.Platform.ServerMode.ClientCapabilities.ClientCapabilities(bool DebuggerProvider) -> void -*REMOVED*Microsoft.Testing.Platform.Logging.FileLogger.FileLogger(Microsoft.Testing.Platform.Logging.FileLoggerOptions! options, Microsoft.Testing.Platform.Logging.LogLevel logLevel, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Helpers.IFileStreamFactory! fileStreamFactory) -> void -*REMOVED*Microsoft.Testing.Platform.ServerMode.ClientCapabilities.Deconstruct(out bool DebuggerProvider) -> void -*REMOVED*Microsoft.Testing.Platform.Services.ClientInfoService.ClientInfoService(string! Id, string! Version) -> void -*REMOVED*Microsoft.Testing.Platform.Services.ClientInfoService.Deconstruct(out string! Id, out string! Version) -> void -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Expected = 10 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.Actual = 11 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.RetryAttemptNumber = 12 -> ushort -const Microsoft.Testing.Platform.IPC.FailedTestResultMessageFieldsId.IsSuperseded = 13 -> ushort -const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.RetryAttemptNumber = 9 -> ushort -const Microsoft.Testing.Platform.IPC.SuccessfulTestResultMessageFieldsId.IsSuperseded = 10 -> ushort -Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Expected.get -> string? -Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Expected.init -> void -Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Actual.get -> string? -Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Actual.init -> void -Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.RetryAttemptNumber.get -> int? -Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.RetryAttemptNumber.init -> void -Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.IsSuperseded.get -> bool? -Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.IsSuperseded.init -> void -Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.FailedTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, string? StandardOutput, string? ErrorOutput, string? SessionUid, string? Expected, string? Actual, int? RetryAttemptNumber = null, bool? IsSuperseded = null) -> void -Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Deconstruct(out string? Uid, out string? DisplayName, out byte? State, out long? Duration, out string? Reason, out Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, out string? StandardOutput, out string? ErrorOutput, out string? SessionUid, out string? Expected, out string? Actual, out int? RetryAttemptNumber, out bool? IsSuperseded) -> void -Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.RetryAttemptNumber.get -> int? -Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.RetryAttemptNumber.init -> void -Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.IsSuperseded.get -> bool? -Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.IsSuperseded.init -> void -Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.SuccessfulTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, string? StandardOutput, string? ErrorOutput, string? SessionUid, int? RetryAttemptNumber = null, bool? IsSuperseded = null) -> void -Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.Deconstruct(out string? Uid, out string? DisplayName, out byte? State, out long? Duration, out string? Reason, out string? StandardOutput, out string? ErrorOutput, out string? SessionUid, out int? RetryAttemptNumber, out bool? IsSuperseded) -> void -Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Expected.get -> string? -Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Expected.init -> void -Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Actual.get -> string? -Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Actual.init -> void -Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.RetryAttemptNumber.get -> int? -Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.RetryAttemptNumber.init -> void -Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.IsSuperseded.get -> bool? -Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.IsSuperseded.init -> void -Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.TestNodeDetails(byte? State, long? Duration, string? Reason, Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, string? StandardOutput, string? StandardError, Microsoft.Testing.Platform.Extensions.Messages.FileArtifactProperty![]! Artifacts, Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty![]! Traits, string? Expected, string? Actual, int? RetryAttemptNumber, bool? IsSuperseded) -> void -Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Deconstruct(out byte? State, out long? Duration, out string? Reason, out Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, out string? StandardOutput, out string? StandardError, out Microsoft.Testing.Platform.Extensions.Messages.FileArtifactProperty![]! Artifacts, out Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty![]! Traits, out string? Expected, out string? Actual, out int? RetryAttemptNumber, out bool? IsSuperseded) -> void -*REMOVED*Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.FailedTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, string? StandardOutput, string? ErrorOutput, string? SessionUid) -> void -*REMOVED*Microsoft.Testing.Platform.IPC.Models.FailedTestResultMessage.Deconstruct(out string? Uid, out string? DisplayName, out byte? State, out long? Duration, out string? Reason, out Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, out string? StandardOutput, out string? ErrorOutput, out string? SessionUid) -> void -*REMOVED*Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.TestNodeDetails(byte? State, long? Duration, string? Reason, Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, string? StandardOutput, string? StandardError, Microsoft.Testing.Platform.Extensions.Messages.FileArtifactProperty![]! Artifacts, Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty![]! Traits) -> void -*REMOVED*Microsoft.Testing.Platform.IPC.DotnetTestDataConsumer.TestNodeDetails.Deconstruct(out byte? State, out long? Duration, out string? Reason, out Microsoft.Testing.Platform.IPC.Models.ExceptionMessage![]? Exceptions, out string? StandardOutput, out string? StandardError, out Microsoft.Testing.Platform.Extensions.Messages.FileArtifactProperty![]! Artifacts, out Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty![]! Traits) -> void -*REMOVED*Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.SuccessfulTestResultMessage(string? Uid, string? DisplayName, byte? State, long? Duration, string? Reason, string? StandardOutput, string? ErrorOutput, string? SessionUid) -> void -*REMOVED*Microsoft.Testing.Platform.IPC.Models.SuccessfulTestResultMessage.Deconstruct(out string? Uid, out string? DisplayName, out byte? State, out long? Duration, out string? Reason, out string? StandardOutput, out string? ErrorOutput, out string? SessionUid) -> void -const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowSlowestTestsOption = "show-slowest-tests" -> string! -const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.OutputOptionMinimalArgument = "minimal" -> string! -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.SlowestTestsCount.get -> int -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.SlowestTestsCount.init -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.RecordTestDuration(string! testNodeUid, string! displayName, System.TimeSpan? duration) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.GetSlowestTests(int count) -> System.Collections.Generic.IReadOnlyList<(string! DisplayName, System.TimeSpan Duration)>! -static Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.GetSlowestTestsCount(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> int -*REMOVED*Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase -*REMOVED*Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.CommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, System.Collections.Generic.IReadOnlyCollection! commandLineOptions) -> void -*REMOVED*Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.CommandLineOptionsProviderBase(string! uid, string! version, string! displayName, string! description, System.Collections.Generic.IReadOnlyCollection! commandLineOptions) -> void -*REMOVED*Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.Description.get -> string! -*REMOVED*Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.DisplayName.get -> string! -*REMOVED*Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.GetCommandLineOptions() -> System.Collections.Generic.IReadOnlyCollection! -*REMOVED*Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.IsEnabledAsync() -> System.Threading.Tasks.Task! -*REMOVED*Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.Uid.get -> string! -*REMOVED*Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.Version.get -> string! -*REMOVED*Microsoft.Testing.Platform.Helpers.IClock -*REMOVED*Microsoft.Testing.Platform.Helpers.IClock.UtcNow.get -> System.DateTimeOffset -*REMOVED*static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.RequiresMainOption(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! options, string![]! subOptionNames, string! mainOptionName, System.Func! errorMessageFactory) -> System.Threading.Tasks.Task? -*REMOVED*static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.RequiresMainOption(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! options, string![]! subOptionNames, string![]! mainOptionNames, System.Func! errorMessageFactory) -> System.Threading.Tasks.Task? -*REMOVED*static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.ValidateAllowedValuesAsync(string! value, string![]! allowedValues, string! formatString) -> System.Threading.Tasks.Task! -*REMOVED*static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetSystemClock(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Helpers.IClock! -*REMOVED*virtual Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! -*REMOVED*virtual Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE = "TESTINGPLATFORM_DEADLINE" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_STOP_MARGIN = "TESTINGPLATFORM_DEADLINE_STOP_MARGIN" -> string! -const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_DEADLINE_DUMP_MARGIN = "TESTINGPLATFORM_DEADLINE_DUMP_MARGIN" -> string! -Microsoft.Testing.Platform.Helpers.DeadlineHelper -static Microsoft.Testing.Platform.Helpers.DeadlineHelper.TryGetDeadline(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, out System.DateTimeOffset deadlineUtc) -> bool -static Microsoft.Testing.Platform.Helpers.DeadlineHelper.GetStopMargin(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> System.TimeSpan -static Microsoft.Testing.Platform.Helpers.DeadlineHelper.GetDumpMargin(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> System.TimeSpan -static Microsoft.Testing.Platform.Helpers.DeadlineHelper.GetTimerDueTime(System.DateTimeOffset deadline, System.DateTimeOffset now) -> System.TimeSpan -static Microsoft.Testing.Platform.Helpers.DeadlineHelper.SubtractSaturating(System.DateTimeOffset instant, System.TimeSpan margin) -> System.DateTimeOffset -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.AbortAtDeadlineExtension(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionCapability? capability, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService, Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource! cancellationTokenSource, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, System.TimeSpan? reportTimeout = null, bool isHangDumpEnabled = false) -> void -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.WaitForDeadlineHandlingAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.ConsumeAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! value, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.DataTypesConsumed.get -> System.Type![]! -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.Description.get -> string! -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.DisplayName.get -> string! -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.Dispose() -> void -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.IsEnabledAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.NotifyTestExecutionCompleted() -> void -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.OnTestSessionFinishingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.OnTestSessionStartingAsync(Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionContext) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.Uid.get -> string! -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.Version.get -> string! -Microsoft.Testing.Platform.Hosts.CommonHost.RegisterActiveGracefulStopCapabilityAsync(Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionCapability! capability) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Hosts.CommonHost.RequestGracefulSessionStopAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Hosts.CommonHost.ExecuteRequestAsync(Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionInfo, Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, Microsoft.Testing.Platform.Messages.BaseMessageBus! baseMessageBus, Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! testFramework, Microsoft.Testing.Platform.TestHost.ClientInfo! client, bool isDiscoveryRequest) -> System.Threading.Tasks.Task! -*REMOVED*static Microsoft.Testing.Platform.Hosts.CommonHost.ExecuteRequestAsync(Microsoft.Testing.Platform.OutputDevice.ProxyOutputDevice! outputDevice, Microsoft.Testing.Platform.Services.ITestSessionContext! testSessionInfo, Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, Microsoft.Testing.Platform.Messages.BaseMessageBus! baseMessageBus, Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework! testFramework, Microsoft.Testing.Platform.TestHost.ClientInfo! client) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Hosts.CommonHost.UnregisterActiveGracefulStopCapability(Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionCapability! capability) -> void -Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.IsServerRequest.get -> bool -Microsoft.Testing.Platform.Hosts.TestFrameworkBuilderData.TestFrameworkBuilderData(Microsoft.Testing.Platform.Services.ServiceProvider! serviceProvider, Microsoft.Testing.Platform.Requests.ITestExecutionRequestFactory! testExecutionRequestFactory, Microsoft.Testing.Platform.Requests.ITestFrameworkInvoker! testExecutionRequestInvoker, Microsoft.Testing.Platform.Requests.ITestExecutionFilterFactory! testExecutionFilterFactory, Microsoft.Testing.Platform.OutputDevice.IPlatformOutputDevice! platformOutputDisplayService, System.Collections.Generic.IEnumerable! serverPerCallConsumers, Microsoft.Testing.Internal.Framework.TestFrameworkManager! testFrameworkManager, Microsoft.Testing.Platform.TestHost.TestHostManager! testSessionManager, Microsoft.Testing.Platform.Messages.MessageBusProxy! messageBusProxy, bool isForDiscoveryRequest, bool isServerRequest) -> void -Microsoft.Testing.Platform.DotnetTestConnection.DotnetTestConnection(Microsoft.Testing.Platform.CommandLine.CommandLineHandler! commandLineHandler, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Services.ITestApplicationCancellationTokenSource! cancellationTokenSource, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TerminalTestReporter(Microsoft.Testing.Platform.Helpers.IConsole! console, System.Func! isCancellationRequested, Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions! options, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressStateAwareTerminal.TestProgressStateAwareTerminal(Microsoft.Testing.Platform.OutputDevice.Terminal.ITerminal! terminal, System.Func! showProgress, Microsoft.Testing.Platform.OutputDevice.Terminal.IProgressRenderer! renderer, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void -Microsoft.Testing.Platform.ServerMode.ServerModeManager.MessageHandlerFactory.MessageHandlerFactory(string! host, int port, Microsoft.Testing.Platform.OutputDevice.IOutputDevice! outputDevice, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void -Microsoft.Testing.Platform.ServerMode.TcpMessageHandler.TcpMessageHandler(System.Net.Sockets.TcpClient! client, System.IO.Stream! clientToServerStream, System.IO.Stream! serverToClientStream, Microsoft.Testing.Platform.ServerMode.IMessageFormatter! formatter, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void -const Microsoft.Testing.Platform.OutputDevice.ProgressReportingConfiguration.MTP_PROGRESS_SILENCE_SECONDS = "MTP_PROGRESS_SILENCE_SECONDS" -> string! -const Microsoft.Testing.Platform.OutputDevice.ProgressReportingConfiguration.MTP_PROGRESS_SLOW_TEST_SECONDS = "MTP_PROGRESS_SLOW_TEST_SECONDS" -> string! -Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker -Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.ActiveTestTracker(System.TimeSpan slowTestThreshold, System.Func! createStopwatch) -> void -Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.Clear() -> void -Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.Complete(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! uid) -> void -Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.GetDueDiagnostics() -> Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic![]! -Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.IsActive(Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic! diagnostic) -> bool -Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.IsEnabled.get -> bool -Microsoft.Testing.Platform.OutputDevice.ActiveTestTracker.Start(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! uid, string! displayName) -> void -Microsoft.Testing.Platform.OutputDevice.ProgressReportingConfiguration -Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.ReportSlowTestsOnceAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.OutputDevice.SimplifiedConsoleOutputDeviceBase.SimplifiedConsoleOutputDeviceBase(Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IAsyncMonitor! asyncMonitor, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService, System.TimeSpan slowTestThreshold, System.Func! createStopwatch, System.TimeSpan slowTestPollInterval) -> void -Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic -Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic.DisplayName.get -> string! -Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic.Elapsed.get -> System.TimeSpan -Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic.Generation.get -> long -Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic.SlowTestDiagnostic(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! uid, string! displayName, System.TimeSpan elapsed, long generation) -> void -Microsoft.Testing.Platform.OutputDevice.SlowTestDiagnostic.Uid.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! -Microsoft.Testing.Platform.OutputDevice.SlowTestThresholdState -Microsoft.Testing.Platform.OutputDevice.SlowTestThresholdState.IsDue(System.TimeSpan elapsed) -> bool -Microsoft.Testing.Platform.OutputDevice.SlowTestThresholdState.SlowTestThresholdState(System.TimeSpan initialThreshold) -> void -static Microsoft.Testing.Platform.OutputDevice.ProgressReportingConfiguration.GetThreshold(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, string! variableName, int defaultSeconds) -> System.TimeSpan -Microsoft.Testing.Platform.Extensions.Messages.TestNodeExecutionCompletedProperty -static Microsoft.Testing.Platform.Extensions.Messages.TestNodeExecutionCompletedProperty.CachedInstance.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeExecutionCompletedProperty! -Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptPropertyExtensions -static Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptPropertyExtensions.IsSupersededRetryAttempt(this Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode) -> bool -Microsoft.Testing.Platform.CommandLine.FlakyTestsReportingOptions -const Microsoft.Testing.Platform.CommandLine.FlakyTestsReportingOptions.ShowFlakyTestsOptionName = "show-flaky-tests" -> string! -static Microsoft.Testing.Platform.CommandLine.FlakyTestsReportingOptions.IsEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> bool -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportFailedTest(string! testNodeUid, string! instanceId) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportPassingTest(string! testNodeUid, string! instanceId) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportSkippedTest(string! testNodeUid, string! instanceId) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportFailedTest(string! testNodeUid, string! displayName, string! instanceId) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportPassingTest(string! testNodeUid, string! displayName, string! instanceId) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportSkippedTest(string! testNodeUid, string! displayName, string! instanceId) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.FlakyTests.get -> int -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.RetriedExecutions.get -> int -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.RetriedTests.get -> int -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.GetFlakyTests() -> System.Collections.Generic.IReadOnlyList<(string! DisplayName, int Attempts)>! -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowFlakyTests.get -> bool -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowFlakyTests.init -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowRunSummary.get -> bool -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowRunSummary.init -> void -const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowFlakyTestsOption = "show-flaky-tests" -> string! -static Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.IsFlakyTestsReportingEnabled(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> bool -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporter.TestCompleted(string! executionId, string! testNodeUid, string! displayName, Microsoft.Testing.Platform.OutputDevice.Terminal.TestOutcome outcome, System.TimeSpan? duration, string? informativeMessage, string? errorMessage, System.Exception? exception, string? expected, string? actual, string? standardOutput, string? errorOutput, Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty? retryAttempt) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportPassingTest(string! testNodeUid, string! displayName, string! instanceId, int retryAttemptNumber) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportSkippedTest(string! testNodeUid, string! displayName, string! instanceId, int retryAttemptNumber) -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestProgressState.ReportFailedTest(string! testNodeUid, string! displayName, string! instanceId, int retryAttemptNumber) -> void -static Microsoft.Testing.Platform.Helpers.ExtensionHelper.ConfigureOTelLegacyAttributes(Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions! options) -> void -static Microsoft.Testing.Platform.Helpers.ExtensionHelper.EmitLegacyOTelAttributes.get -> bool -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Activities.TestFramework = "TestFramework" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Activities.TestHostBuilder = "TestHostBuilder" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsCompleted = "tests.completed" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsDiscovered = "tests.discovered" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsDuration = "tests.duration" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsFailed = "tests.failed" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsPassed = "tests.passed" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsSkipped = "tests.skipped" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsStarted = "tests.started" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.LegacyTestsUnknown = "tests.unknown" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.TestCaseResultCount = "test.case.result.count" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.TestRetryCount = "test.case.retry.count" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.TestRunActiveCases = "test.case.active" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.TestRunDuration = "test.run.duration" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Units.Count = "{test}" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Units.Seconds = "s" -> string! -Microsoft.Testing.Platform.Telemetry.ICounter.Add(T delta, System.Collections.Generic.IEnumerable>? tags) -> void -Microsoft.Testing.Platform.Telemetry.IHistogram.Record(T value, System.Collections.Generic.IEnumerable>? tags) -> void -Microsoft.Testing.Platform.Telemetry.IPlatformActivity.AddEvent(string! name, System.Collections.Generic.IEnumerable>? tags = null, System.DateTimeOffset timestamp = default(System.DateTimeOffset)) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! -Microsoft.Testing.Platform.Telemetry.IPlatformActivity.IsRecording.get -> bool -Microsoft.Testing.Platform.Telemetry.IPlatformActivity.RecordException(System.Exception! exception, System.Collections.Generic.IEnumerable>? additionalTags = null) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! -Microsoft.Testing.Platform.Telemetry.IPlatformActivity.SetStatus(Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode statusCode, string? description = null) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity! -Microsoft.Testing.Platform.Telemetry.IPlatformActivity.SpanId.get -> string? -Microsoft.Testing.Platform.Telemetry.IPlatformActivity.TraceId.get -> string? -Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.CreateObservableGauge(string! name, System.Func! observeValue, string? unit = null, string? description = null) -> void -Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.CreateUpDownCounter(string! name, string? unit = null, string? description = null, System.Collections.Generic.IEnumerable>? tags = null) -> Microsoft.Testing.Platform.Telemetry.IUpDownCounter! -Microsoft.Testing.Platform.Telemetry.IUpDownCounter.Add(T delta, System.Collections.Generic.IEnumerable>? tags = null) -> void -Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.OpenTelemetryResultHandler(Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService! otelService, Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions! options) -> void -Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.AttributeValueLengthLimit.get -> int -Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.CaptureTestOutput.get -> bool -Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.EmitLegacyAttributes.get -> bool -Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.Truncate(string? value) -> string? -Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Activities -Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics -Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Units -static Microsoft.Testing.Platform.Telemetry.EnvironmentTraceContext.IsValidTraceParent(string? traceParent) -> bool -static Microsoft.Testing.Platform.Telemetry.EnvironmentTraceContext.TryGetParentId(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> string? -static Microsoft.Testing.Platform.Telemetry.EnvironmentTraceContext.TryGetTraceState(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> string? -static Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.Default.get -> Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions! -static Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.FromEnvironment(Microsoft.Testing.Platform.Helpers.IEnvironment! environment) -> Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions! -const Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions.DefaultAttributeValueLengthLimit = 8192 -> int -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.CodeFilePath = "code.file.path" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.CodeFunctionName = "code.function.name" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.CodeLineNumber = "code.line.number" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.CodeStacktrace = "code.stacktrace" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.ErrorType = "error.type" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestAssembly = "test.assembly" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestClass = "test.class" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestDuration = "test.duration.ms" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestFilePath = "test.file.path" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestId = "test.id" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestLineEnd = "test.line.end" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestLineStart = "test.line.start" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestMetadataPrefix = "test.metadataProperty." -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestMethod = "test.method" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestName = "test.name" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestNamespace = "test.namespace" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestParentId = "test.parent.id" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestResult = "test.result" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestResultExceptionMessage = "test.result.exception.message" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestResultExceptionStackTrace = "test.result.exception.stacktrace" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestResultExceptionType = "test.result.exception.type" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestResultExplanation = "test.result.explanation" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestResultTimeout = "test.result.timeout.ms" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestStderr = "test.stderr" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.LegacyTestStdout = "test.stdout" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestAssemblyName = "test.assembly.name" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseId = "test.case.id" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseName = "test.case.name" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseParentId = "test.case.parent.id" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseResultExplanation = "test.case.result.explanation" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseResultStatus = "test.case.result.status" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseRetryAttempt = "test.case.retry.attempt" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseTimeoutMilliseconds = "test.case.timeout" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestExtensionDisplayName = "test.extension.display_name" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestExtensionUid = "test.extension.uid" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestExtensionVersion = "test.extension.version" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestFrameworkName = "test.framework.name" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestFrameworkVersion = "test.framework.version" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestHostType = "test.host.type" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestMetadataPrefix = "test.metadata." -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestOutputStderr = "test.output.stderr" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestOutputStdout = "test.output.stdout" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestRunExitCode = "test.run.exit_code" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestRunRequestType = "test.run.request_type" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestSessionId = "test.session.id" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestStepPrefix = "test.step." -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestSuiteName = "test.suite.name" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Metrics.TestCaseDuration = "test.case.duration" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Cancelled = "cancelled" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Error = "error" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Skipped = "skipped" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Timeout = "timeout" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Unknown = "unknown" -> string! -Microsoft.Testing.Platform.Telemetry.EnvironmentTraceContext -Microsoft.Testing.Platform.Telemetry.IUpDownCounter -Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode -Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode.Error = 2 -> Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode -Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode.Ok = 1 -> Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode -Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode.Unset = 0 -> Microsoft.Testing.Platform.Telemetry.PlatformActivityStatusCode -Microsoft.Testing.Platform.Telemetry.PlatformOpenTelemetryOptions -Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions -Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes -Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus -Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.HasCurrentActivity.get -> bool -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestCaseDurationMilliseconds = "test.case.duration_ms" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestRunFailedCount = "test.run.failed" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestRunResultStatus = "test.run.result.status" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestRunSkippedCount = "test.run.skipped" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.Attributes.TestRunTotalCount = "test.run.total" -> string! -Microsoft.Testing.Platform.Telemetry.OpenTelemetryResultHandler.NotifyRunCompleted(int totalRanTests, int failedTests, int skippedTests, int exitCode, Microsoft.Testing.Platform.Telemetry.IPlatformActivity? runActivity = null) -> void -Microsoft.Testing.Platform.Services.TestApplicationResult.ReportRunTelemetry(Microsoft.Testing.Platform.Telemetry.IPlatformActivity? runActivity, int exitCode) -> void -Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.RootTraceState.get -> string? -Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.RootTraceState.set -> void -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Fail = "fail" -> string! -const Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.Pass = "pass" -> string! -static Microsoft.Testing.Platform.Telemetry.TestingPlatformSemanticConventions.TestResultStatus.ToLegacy(string! status) -> string! -Microsoft.Testing.Platform.Telemetry.IPlatformOpenTelemetryService.StartNonAmbientActivity(string! name, System.Collections.Generic.IEnumerable>? tags = null, string? parentId = null) -> Microsoft.Testing.Platform.Telemetry.IPlatformActivity? -const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.AssemblyPathPropertyName = "assemblyPath" -> string! -const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.DisplayNamePropertyName = "displayName" -> string! -const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.EnabledPropertyName = "enabled" -> string! -const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.ExtensionsPropertyName = "extensions" -> string! -const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.HookMethodName = "AddExtensions" -> string! -const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.IdPropertyName = "id" -> string! -const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.ManifestFileSuffix = ".testingplatformextensions.json" -> string! -const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.ManifestSearchPattern = "*.testingplatformextensions.json" -> string! -const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.SharedPlatformAssemblyName = "Microsoft.Testing.Platform" -> string! -const Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.TypeFullNamePropertyName = "typeFullName" -> string! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionAssemblyLoader -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionAssemblyLoader.DynamicExtensionAssemblyLoader(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem) -> void -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionAssemblyLoader.IsIsolated.get -> bool -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionAssemblyLoader.LoadAssembly(string! assemblyPath) -> System.Reflection.Assembly! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.AssemblyPath.get -> string! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.DisplayName.get -> string! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.Id.get -> string! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.Index.get -> int -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.IsEnabled.get -> bool -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.ManifestPath.get -> string! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.ResolvedAssemblyPath.get -> string! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.TypeFullName.get -> string! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionJsonReader -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionLoader -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionLoader.LoadAsync(Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder, string![]! args) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifest -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifest.DynamicExtensionManifest(string! manifestPath, System.Collections.Generic.IReadOnlyList! extensions, System.Collections.Generic.IReadOnlyList! unknownProperties) -> void -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifest.Extensions.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifest.ManifestPath.get -> string! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifest.UnknownProperties.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifestParser -Microsoft.Testing.Platform.DynamicExtensions.IDynamicExtensionAssemblyLoader -Microsoft.Testing.Platform.DynamicExtensions.IDynamicExtensionAssemblyLoader.IsIsolated.get -> bool -Microsoft.Testing.Platform.DynamicExtensions.IDynamicExtensionAssemblyLoader.LoadAssembly(string! assemblyPath) -> System.Reflection.Assembly! -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.AssemblyPath.get -> string? -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.AssemblyPath.set -> void -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.DisplayName.get -> string? -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.DisplayName.set -> void -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.Enabled.get -> bool? -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.Enabled.set -> void -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.Id.get -> string? -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.Id.set -> void -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.InvalidProperties.get -> System.Collections.Generic.List! -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.TypeFullName.get -> string? -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.TypeFullName.set -> void -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.UnknownProperties.get -> System.Collections.Generic.List! -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.Entries.get -> System.Collections.Generic.List! -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.HasExtensionsProperty.get -> bool -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.HasExtensionsProperty.set -> void -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.IsExtensionsPropertyAnArray.get -> bool -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.IsExtensionsPropertyAnArray.set -> void -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.UnknownProperties.get -> System.Collections.Generic.List! -static Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionJsonReader.Read(string! manifestPath, string! content) -> Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest! -static Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifestParser.Parse(string! manifestPath, string! content) -> Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionManifest! -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.RawExtensionEntry() -> void -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.RawExtensionManifest() -> void -static readonly Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.SharedContractAssemblyNames -> string![]! -Microsoft.Testing.Platform.DynamicExtensions.IDynamicExtensionRegistrationGuard -Microsoft.Testing.Platform.DynamicExtensions.IDynamicExtensionRegistrationGuard.EnterDynamicExtensionScope(string! displayName, string! manifestPath) -> System.IDisposable! -static readonly Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.PathComparer -> System.StringComparer! -static readonly Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionConstants.PathComparison -> System.StringComparison -const Microsoft.Testing.Platform.CommandLine.PlatformCommandLineProvider.EnableDynamicExtensionsOptionKey = "enable-dynamic-extensions" -> string! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionLoader.DynamicExtensionLoader(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.DynamicExtensions.IDynamicExtensionAssemblyLoader! assemblyLoader, Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult, Microsoft.Testing.Platform.Logging.ILogger? logger) -> void -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.DynamicExtensionEntry(string! manifestPath, int index, string! id, bool hasExplicitId, string! displayName, string! assemblyPath, string! resolvedAssemblyPath, string! typeFullName, bool isEnabled) -> void -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.DeduplicationKey.get -> string! -Microsoft.Testing.Platform.DynamicExtensions.DynamicExtensionEntry.HasExplicitId.get -> bool -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionEntry.DuplicateProperties.get -> System.Collections.Generic.List! -Microsoft.Testing.Platform.DynamicExtensions.RawExtensionManifest.DuplicateProperties.get -> System.Collections.Generic.List! -Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(Microsoft.Testing.Platform.IPC.PipeNameDescription! pipeNameDescription, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, int maxNumberOfServerInstances, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void -Microsoft.Testing.Platform.IPC.NamedPipeServer.NamedPipeServer(string! name, System.Func!>! callback, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger, Microsoft.Testing.Platform.Helpers.ITask! task, System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, System.Threading.CancellationToken cancellationToken) -> void -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowPassedTests.get -> System.Func! -*REMOVED*Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowPassedTests.init -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowTestResults.get -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility -Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterOptions.ShowTestResults.init -> void -Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility -Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility.All = 7 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility -Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility.Failed = 2 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility -Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility.None = 0 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility -Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility.Passed = 1 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility -Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility.Skipped = 4 -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility -const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsOption = "show-test-results" -> string! -const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsPassedArgument = "passed" -> string! -const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsFailedArgument = "failed" -> string! -const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsSkippedArgument = "skipped" -> string! -const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsAllArgument = "all" -> string! -const Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsNoneArgument = "none" -> string! -static Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.GetShowTestResultsVisibility(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility? -static Microsoft.Testing.Platform.OutputDevice.Terminal.TerminalTestReporterCommandLineOptionsProvider.TryParseShowTestResultsArguments(string![]! arguments, out Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility visibility, out Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError error) -> bool -Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError -Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError.AllOrNoneCombinedWithOtherValues = 3 -> Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError -Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError.EmptySelection = 2 -> Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError -Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError.None = 0 -> Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError -Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError.UnknownValue = 1 -> Microsoft.Testing.Platform.OutputDevice.Terminal.ShowTestResultsValidationError -static Microsoft.Testing.Platform.OutputDevice.TerminalOutputDevice.GetShowTestResultsVisibility(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> Microsoft.Testing.Platform.OutputDevice.Terminal.TestResultVisibility diff --git a/src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Shipped.txt index 982b24d045..ea5a5f8204 100644 --- a/src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Shipped.txt @@ -1,5 +1,6 @@ #nullable enable abstract Microsoft.Testing.Platform.ServerMode.Json.JsonCollectionDeserializer.CreateObject(Microsoft.Testing.Platform.ServerMode.Json.Json! json, System.Text.Json.JsonElement element) -> TCollection +Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.DisposeAsync() -> System.Threading.Tasks.ValueTask Microsoft.Testing.Platform.Helpers.IEnvironment.ProcessPath.get -> string? Microsoft.Testing.Platform.Helpers.IMainModule.FileName.get -> string? Microsoft.Testing.Platform.Helpers.SystemEnvironment.ProcessPath.get -> string? @@ -12,14 +13,15 @@ Microsoft.Testing.Platform.Logging.FileLogger.DisposeAsync() -> System.Threading Microsoft.Testing.Platform.Logging.FileLoggerProvider.DisposeAsync() -> System.Threading.Tasks.ValueTask Microsoft.Testing.Platform.Logging.LoggerFactory.DisposeAsync() -> System.Threading.Tasks.ValueTask Microsoft.Testing.Platform.Logging.LoggerFactoryProxy.DisposeAsync() -> System.Threading.Tasks.ValueTask +Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.AsyncConsumerDataProcessor(Microsoft.Testing.Platform.Extensions.IDataConsumer! consumer, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken, System.TimeSpan canceledShutdownTimeout) -> void Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.AsyncConsumerDataProcessor(Microsoft.Testing.Platform.Extensions.IDataConsumer! consumer, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken) -> void Microsoft.Testing.Platform.OutputDevice.BrowserOutputDevice -Microsoft.Testing.Platform.OutputDevice.BrowserOutputDevice.BrowserOutputDevice(Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IAsyncMonitor! asyncMonitor, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService) -> void -Microsoft.Testing.Platform.ServerMode.FormatterUtilities.MessageFormatter.Deserialize(System.ReadOnlyMemory serializedUtf8Content) -> T -Microsoft.Testing.Platform.ServerMode.IMessageFormatter.Deserialize(System.ReadOnlyMemory serializedUtf8Content) -> T +Microsoft.Testing.Platform.OutputDevice.BrowserOutputDevice.BrowserOutputDevice(Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IAsyncMonitor! asyncMonitor, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService) -> void +Microsoft.Testing.Platform.ServerMode.FormatterUtilities.MessageFormatter.Deserialize(System.ReadOnlyMemory serializedUtf8Content) -> T +Microsoft.Testing.Platform.ServerMode.IMessageFormatter.Deserialize(System.ReadOnlyMemory serializedUtf8Content) -> T Microsoft.Testing.Platform.ServerMode.Json.Json Microsoft.Testing.Platform.ServerMode.Json.Json.Bind(System.Text.Json.JsonElement element, string? property = null) -> T -Microsoft.Testing.Platform.ServerMode.Json.Json.Deserialize(System.ReadOnlyMemory utf8Json) -> T +Microsoft.Testing.Platform.ServerMode.Json.Json.Deserialize(System.ReadOnlyMemory utf8Json) -> T Microsoft.Testing.Platform.ServerMode.Json.Json.Json(System.Collections.Generic.Dictionary? serializers = null, System.Collections.Generic.Dictionary? deserializers = null) -> void Microsoft.Testing.Platform.ServerMode.Json.Json.SerializeAsync(object! obj) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.ServerMode.Json.Json.TryArrayBind(System.Text.Json.JsonElement element, out T[]? value, string? property = null) -> bool @@ -47,6 +49,7 @@ Microsoft.Testing.Platform.ServerMode.Json.JsonValueSerializer.Serialize.set -> Microsoft.Testing.Platform.ServerMode.Json.JsonValueSerializer Microsoft.Testing.Platform.ServerMode.Json.JsonValueSerializer.JsonValueSerializer(System.Action! value) -> void override Microsoft.Testing.Platform.OutputDevice.BrowserOutputDevice.Description.get -> string! +override Microsoft.Testing.Platform.OutputDevice.BrowserOutputDevice.DisplayActiveTestProgress.get -> bool override Microsoft.Testing.Platform.OutputDevice.BrowserOutputDevice.DisplayName.get -> string! override Microsoft.Testing.Platform.ServerMode.DiscoverRequestArgs.$() -> Microsoft.Testing.Platform.ServerMode.DiscoverRequestArgs! override Microsoft.Testing.Platform.ServerMode.DiscoverResponseArgs.$() -> Microsoft.Testing.Platform.ServerMode.DiscoverResponseArgs! @@ -56,3 +59,7 @@ override Microsoft.Testing.Platform.ServerMode.RequestMessage.$() -> Micr override Microsoft.Testing.Platform.ServerMode.ResponseMessage.$() -> Microsoft.Testing.Platform.ServerMode.ResponseMessage! override Microsoft.Testing.Platform.ServerMode.RunRequestArgs.$() -> Microsoft.Testing.Platform.ServerMode.RunRequestArgs! override Microsoft.Testing.Platform.ServerMode.RunResponseArgs.$() -> Microsoft.Testing.Platform.ServerMode.RunResponseArgs! +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadFields(System.IO.Stream! stream, System.Func! tryReadField) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.TryReadExecutionScopedField(System.IO.Stream! stream, ushort fieldId, int fieldSize, ref string? executionId, ref string? instanceId) -> bool +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteExecutionScopedHeader(System.IO.Stream! stream, string? executionId, string? instanceId, ushort payloadFieldCount) -> void +static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteListPayload(System.IO.Stream! stream, ushort fieldId, T[]? list, System.Action! writeItem) -> void diff --git a/src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Unshipped.txt index 3740e04415..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Unshipped.txt @@ -1,16 +1 @@ #nullable enable -Microsoft.Testing.Platform.Extensions.AbortAtDeadlineExtension.DisposeAsync() -> System.Threading.Tasks.ValueTask -Microsoft.Testing.Platform.Messages.AsyncConsumerDataProcessor.AsyncConsumerDataProcessor(Microsoft.Testing.Platform.Extensions.IDataConsumer! consumer, Microsoft.Testing.Platform.Helpers.ITask! task, System.Threading.CancellationToken cancellationToken, System.TimeSpan canceledShutdownTimeout) -> void -*REMOVED*Microsoft.Testing.Platform.ServerMode.FormatterUtilities.MessageFormatter.Deserialize(System.ReadOnlyMemory serializedUtf8Content) -> T -*REMOVED*Microsoft.Testing.Platform.ServerMode.IMessageFormatter.Deserialize(System.ReadOnlyMemory serializedUtf8Content) -> T -*REMOVED*Microsoft.Testing.Platform.ServerMode.Json.Json.Deserialize(System.ReadOnlyMemory utf8Json) -> T -Microsoft.Testing.Platform.ServerMode.FormatterUtilities.MessageFormatter.Deserialize(System.ReadOnlyMemory serializedUtf8Content) -> T -Microsoft.Testing.Platform.ServerMode.IMessageFormatter.Deserialize(System.ReadOnlyMemory serializedUtf8Content) -> T -Microsoft.Testing.Platform.ServerMode.Json.Json.Deserialize(System.ReadOnlyMemory utf8Json) -> T -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.ReadFields(System.IO.Stream! stream, System.Func! tryReadField) -> void -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.TryReadExecutionScopedField(System.IO.Stream! stream, ushort fieldId, int fieldSize, ref string? executionId, ref string? instanceId) -> bool -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteExecutionScopedHeader(System.IO.Stream! stream, string? executionId, string? instanceId, ushort payloadFieldCount) -> void -static Microsoft.Testing.Platform.IPC.Serializers.BaseSerializer.WriteListPayload(System.IO.Stream! stream, ushort fieldId, T[]? list, System.Action! writeItem) -> void -Microsoft.Testing.Platform.OutputDevice.BrowserOutputDevice.BrowserOutputDevice(Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IAsyncMonitor! asyncMonitor, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService) -> void -override Microsoft.Testing.Platform.OutputDevice.BrowserOutputDevice.DisplayActiveTestProgress.get -> bool -*REMOVED*Microsoft.Testing.Platform.OutputDevice.BrowserOutputDevice.BrowserOutputDevice(Microsoft.Testing.Platform.Helpers.IConsole! console, Microsoft.Testing.Platform.Services.ITestApplicationModuleInfo! testApplicationModuleInfo, Microsoft.Testing.Platform.Helpers.IAsyncMonitor! asyncMonitor, Microsoft.Testing.Platform.Helpers.IRuntimeFeature! runtimeFeature, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Services.IPlatformInformation! platformInformation, Microsoft.Testing.Platform.Services.IStopPoliciesService! policiesService) -> void diff --git a/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Shipped.txt index a985d53d68..f8f27e4327 100644 --- a/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Shipped.txt @@ -1,6 +1,9 @@ #nullable enable [TPEXP]const Microsoft.Testing.Platform.CommandLine.CommandLineParseResult.OptionPrefix = '-' -> char [TPEXP]const Microsoft.Testing.Platform.Requests.TreeNodeFilter.PathSeparator = '/' -> char +[TPEXP]Microsoft.Testing.Platform.Builder.IArtifactPostProcessingApplicationBuilder +[TPEXP]Microsoft.Testing.Platform.Builder.IArtifactPostProcessingApplicationBuilder.ArtifactPostProcessing.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessingManager! +[TPEXP]Microsoft.Testing.Platform.Builder.IArtifactPostProcessingApplicationBuilder.Tools.get -> Microsoft.Testing.Platform.Tools.IToolsManager! [TPEXP]Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.Configuration.get -> Microsoft.Testing.Platform.Configurations.IConfigurationManager! [TPEXP]Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.Logging.get -> Microsoft.Testing.Platform.Logging.ILoggingManager! [TPEXP]Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.TestHostOrchestrator.get -> Microsoft.Testing.Platform.TestHostOrchestrator.ITestHostOrchestratorManager! @@ -8,6 +11,8 @@ [TPEXP]Microsoft.Testing.Platform.Capabilities.TestFramework.IBannerMessageOwnerCapability.GetBannerMessageAsync() -> System.Threading.Tasks.Task! [TPEXP]Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionCapability [TPEXP]Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionCapability.StopTestExecutionAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +[TPEXP]Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionResultCapability +[TPEXP]Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionResultCapability.TryStopTestExecutionAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! [TPEXP]Microsoft.Testing.Platform.Capabilities.TestFramework.TestFrameworkCapabilitiesExtensions [TPEXP]Microsoft.Testing.Platform.CommandLine.CommandLineParseOption [TPEXP]Microsoft.Testing.Platform.CommandLine.CommandLineParseOption.Arguments.get -> string![]! @@ -32,8 +37,65 @@ [TPEXP]Microsoft.Testing.Platform.Configurations.IConfigurationSource [TPEXP]Microsoft.Testing.Platform.Configurations.IConfigurationSource.BuildAsync(Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! commandLineParseResult) -> System.Threading.Tasks.Task! [TPEXP]Microsoft.Testing.Platform.Configurations.IConfigurationSource.Order.get -> int +[TPEXP]Microsoft.Testing.Platform.Configurations.IHierarchicalConfigurationProvider +[TPEXP]Microsoft.Testing.Platform.Configurations.IHierarchicalConfigurationProvider.GetChildKeys(string? parentPath) -> System.Collections.Generic.IEnumerable! +[TPEXP]Microsoft.Testing.Platform.Configurations.IHierarchicalConfigurationProvider.TryGetScalar(string! key, out string? value) -> bool +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.ArtifactPostProcessingContext(Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason truncationReason, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode mode, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary? runSummary) -> void +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.ArtifactPostProcessingContext(Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason truncationReason, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode mode) -> void +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.ArtifactPostProcessingContext(Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason truncationReason, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary? runSummary) -> void +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.ArtifactPostProcessingContext(Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason truncationReason) -> void +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.IsTruncated.get -> bool +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.Mode.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.RunSummary.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary? +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.TruncationReason.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode.RetryAttempts = 1 -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode.TestModules = 0 -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.ArtifactPostProcessingRunSummary(long totalTests, long passedTests, long failedTests, long skippedTests, System.TimeSpan duration, int exitCode, int testModuleCount) -> void +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.Duration.get -> System.TimeSpan +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.ExitCode.get -> int +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.FailedTests.get -> long +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.PassedTests.get -> long +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.SkippedTests.get -> long +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.TestModuleCount.get -> int +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.TotalTests.get -> long +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason.MaximumFailedTests = 1 -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason.None = 0 -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason.Timeout = 2 -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessingManager +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessingManager.AddArtifactPostProcessor(System.Func! factory) -> void +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessor +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessor.ProcessAsync(System.Collections.Generic.IReadOnlyList! inputs, string! outputDirectory, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessor.SupportedFileExtensionsFallback.get -> System.Collections.Generic.IReadOnlyList! +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessor.SupportedKinds.get -> System.Collections.Generic.IReadOnlyList! +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessor.SupportedModes.get -> System.Collections.Generic.IReadOnlyList! +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessor.SupportsTruncatedRuns.get -> bool +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessorRequiresPostProcessing +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.Architecture.get -> string? +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.ExecutionId.get -> string? +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.InputArtifact(string! path, string? kind, string? producingTestModule, string? targetFramework, string? architecture, string? executionId) -> void +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.Kind.get -> string? +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.Path.get -> string! +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.ProducingTestModule.get -> string? +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.TargetFramework.get -> string? +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact.Description.get -> string? +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact.DisplayName.get -> string! +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact.Kind.get -> string! +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact.Path.get -> string! +[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact.ProcessedArtifact(string! path, string! kind, string! displayName, string? description) -> void [TPEXP]Microsoft.Testing.Platform.Extensions.IBlockingDataConsumer +[TPEXP]Microsoft.Testing.Platform.Extensions.Messages.FileArtifact.FileArtifact(System.IO.FileInfo! fileInfo, string! displayName, string? description, string? kind) -> void +[TPEXP]Microsoft.Testing.Platform.Extensions.Messages.FileArtifact.Kind.get -> string? +[TPEXP]Microsoft.Testing.Platform.Extensions.Messages.SessionFileArtifact.Kind.get -> string? +[TPEXP]Microsoft.Testing.Platform.Extensions.Messages.SessionFileArtifact.SessionFileArtifact(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, System.IO.FileInfo! fileInfo, string! displayName, string? description, string? kind) -> void [TPEXP]Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext.ExecuteRequestContext(Microsoft.Testing.Platform.Requests.IRequest! request, Microsoft.Testing.Platform.Messages.IMessageBus! messageBus, Microsoft.Testing.Platform.Requests.IExecuteRequestCompletionNotifier! executeRequestCompletionNotifier, System.Threading.CancellationToken cancellationToken) -> void +[TPEXP]Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostControllerConnectionAuthorizer +[TPEXP]Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostControllerConnectionAuthorizer.GetAuthorizedSecurityIdentitiesAsync(string! testHostFileName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!>! [TPEXP]Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostHandle [TPEXP]Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostHandle.ExitCode.get -> int [TPEXP]Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostHandle.HasExited.get -> bool @@ -59,12 +121,33 @@ [TPEXP]Microsoft.Testing.Platform.Logging.ILoggerProvider.CreateLogger(string! categoryName) -> Microsoft.Testing.Platform.Logging.ILogger! [TPEXP]Microsoft.Testing.Platform.Logging.ILoggingManager [TPEXP]Microsoft.Testing.Platform.Logging.ILoggingManager.AddProvider(System.Func! loggerProviderFactory) -> void +[TPEXP]Microsoft.Testing.Platform.Requests.CompositeTestExecutionFilter +[TPEXP]Microsoft.Testing.Platform.Requests.CompositeTestExecutionFilter.CompositeTestExecutionFilter(Microsoft.Testing.Platform.Requests.TestExecutionFilterOperator operator, params Microsoft.Testing.Platform.Requests.ITestExecutionFilter![]! filters) -> void +[TPEXP]Microsoft.Testing.Platform.Requests.CompositeTestExecutionFilter.Filters.get -> System.Collections.Generic.IReadOnlyList! +[TPEXP]Microsoft.Testing.Platform.Requests.CompositeTestExecutionFilter.Operator.get -> Microsoft.Testing.Platform.Requests.TestExecutionFilterOperator [TPEXP]Microsoft.Testing.Platform.Requests.IExecuteRequestCompletionNotifier [TPEXP]Microsoft.Testing.Platform.Requests.IExecuteRequestCompletionNotifier.Complete() -> void +[TPEXP]Microsoft.Testing.Platform.Requests.ITestExecutionFilterProvider +[TPEXP]Microsoft.Testing.Platform.Requests.ITestExecutionFilterProvider.GetFilterAsync(Microsoft.Testing.Platform.Requests.TestExecutionFilterContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionFilterContext +[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionFilterContext.Origin.get -> Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin +[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionFilterContext.RequestKind.get -> Microsoft.Testing.Platform.Requests.TestExecutionRequestKind +[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionFilterContext.TestExecutionFilterContext(Microsoft.Testing.Platform.Requests.TestExecutionRequestKind requestKind, Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin origin) -> void +[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionFilterOperator +[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionFilterOperator.And = 0 -> Microsoft.Testing.Platform.Requests.TestExecutionFilterOperator +[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionRequestKind +[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionRequestKind.Discovery = 0 -> Microsoft.Testing.Platform.Requests.TestExecutionRequestKind +[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionRequestKind.Run = 1 -> Microsoft.Testing.Platform.Requests.TestExecutionRequestKind +[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin +[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin.Console = 0 -> Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin +[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin.Server = 1 -> Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin [TPEXP]Microsoft.Testing.Platform.Requests.TreeNodeFilter [TPEXP]Microsoft.Testing.Platform.Requests.TreeNodeFilter.Filter.get -> string! [TPEXP]Microsoft.Testing.Platform.Requests.TreeNodeFilter.MatchesFilter(string! testNodeFullPath, Microsoft.Testing.Platform.Extensions.Messages.PropertyBag! filterableProperties) -> bool +[TPEXP]Microsoft.Testing.Platform.Services.IClientCapabilities +[TPEXP]Microsoft.Testing.Platform.Services.IClientCapabilities.IsStateful.get -> bool [TPEXP]Microsoft.Testing.Platform.Services.IClientInfo +[TPEXP]Microsoft.Testing.Platform.Services.IClientInfo.Capabilities.get -> Microsoft.Testing.Platform.Services.IClientCapabilities! [TPEXP]Microsoft.Testing.Platform.Services.IClientInfo.Id.get -> string! [TPEXP]Microsoft.Testing.Platform.Services.IClientInfo.Version.get -> string! [TPEXP]Microsoft.Testing.Platform.Services.IPlatformInformation @@ -77,6 +160,13 @@ [TPEXP]Microsoft.Testing.Platform.TestHostOrchestrator.ITestHostOrchestratorManager [TPEXP]Microsoft.Testing.Platform.TestHostOrchestrator.ITestHostOrchestratorManager.AddTestHostOrchestrator(System.Func! factory) -> void [TPEXP]Microsoft.Testing.Platform.TestHostOrchestrator.ITestHostOrchestratorManager.AddTestHostOrchestratorApplicationLifetime(System.Func! testHostOrchestratorApplicationLifetimeFactory) -> void +[TPEXP]Microsoft.Testing.Platform.Tools.ITool +[TPEXP]Microsoft.Testing.Platform.Tools.ITool.Name.get -> string! +[TPEXP]Microsoft.Testing.Platform.Tools.ITool.RunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +[TPEXP]Microsoft.Testing.Platform.Tools.IToolCommandLineOptionsProvider +[TPEXP]Microsoft.Testing.Platform.Tools.IToolCommandLineOptionsProvider.ToolName.get -> string! +[TPEXP]Microsoft.Testing.Platform.Tools.IToolsManager +[TPEXP]Microsoft.Testing.Platform.Tools.IToolsManager.AddTool(System.Func! toolFactory) -> void [TPEXP]override Microsoft.Testing.Platform.CommandLine.CommandLineParseResult.Equals(object? obj) -> bool [TPEXP]override Microsoft.Testing.Platform.CommandLine.CommandLineParseResult.GetHashCode() -> int [TPEXP]override Microsoft.Testing.Platform.CommandLine.CommandLineParseResult.ToString() -> string! @@ -84,8 +174,26 @@ [TPEXP]static Microsoft.Testing.Platform.Capabilities.TestFramework.TestFrameworkCapabilitiesExtensions.HasCapability(this Microsoft.Testing.Platform.Capabilities.TestFramework.ITestFrameworkCapabilities! capabilities) -> bool [TPEXP]static Microsoft.Testing.Platform.CommandLine.CommandLineParseResult.Empty.get -> Microsoft.Testing.Platform.CommandLine.CommandLineParseResult! [TPEXP]static Microsoft.Testing.Platform.Helpers.TestApplicationBuilderExtensions.AddMaximumFailedTestsService(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder, Microsoft.Testing.Platform.Extensions.IExtension! extension) -> void +[TPEXP]static Microsoft.Testing.Platform.Helpers.TestApplicationBuilderExtensions.AddTestExecutionFilterProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder, System.Func! providerFactory) -> void [TPEXP]static Microsoft.Testing.Platform.Helpers.TestApplicationBuilderExtensions.AddTreeNodeFilterService(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! testApplicationBuilder, Microsoft.Testing.Platform.Extensions.IExtension! extension) -> void [TPEXP]static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetClientInfo(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Services.IClientInfo! +[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase +[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.CommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, System.Collections.Generic.IReadOnlyCollection! commandLineOptions) -> void +[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.CommandLineOptionsProviderBase(string! uid, string! version, string! displayName, string! description, System.Collections.Generic.IReadOnlyCollection! commandLineOptions) -> void +[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.Description.get -> string! +[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.DisplayName.get -> string! +[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.GetCommandLineOptions() -> System.Collections.Generic.IReadOnlyCollection! +[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.IsEnabledAsync() -> System.Threading.Tasks.Task! +[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.Uid.get -> string! +[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.Version.get -> string! +[TPINTERNAL]Microsoft.Testing.Platform.Helpers.IClock +[TPINTERNAL]Microsoft.Testing.Platform.Helpers.IClock.UtcNow.get -> System.DateTimeOffset +[TPINTERNAL]static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.RequiresMainOption(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! options, string![]! subOptionNames, string! mainOptionName, System.Func! errorMessageFactory) -> System.Threading.Tasks.Task? +[TPINTERNAL]static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.RequiresMainOption(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! options, string![]! subOptionNames, string![]! mainOptionNames, System.Func! errorMessageFactory) -> System.Threading.Tasks.Task? +[TPINTERNAL]static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.ValidateAllowedValuesAsync(string! value, string![]! allowedValues, string! formatString) -> System.Threading.Tasks.Task! +[TPINTERNAL]static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetSystemClock(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Helpers.IClock! +[TPINTERNAL]virtual Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! +[TPINTERNAL]virtual Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Builder.ConfigurationOptions Microsoft.Testing.Platform.Builder.ConfigurationOptions.ConfigurationOptions() -> void Microsoft.Testing.Platform.Builder.ConfigurationOptions.ConfigurationSources.get -> Microsoft.Testing.Platform.Builder.ConfigurationSourcesOptions! @@ -118,6 +226,7 @@ Microsoft.Testing.Platform.Capabilities.TestFramework.TestFrameworkCapabilities Microsoft.Testing.Platform.Capabilities.TestFramework.TestFrameworkCapabilities.Capabilities.get -> System.Collections.Generic.IReadOnlyCollection! Microsoft.Testing.Platform.Capabilities.TestFramework.TestFrameworkCapabilities.TestFrameworkCapabilities(params Microsoft.Testing.Platform.Capabilities.TestFramework.ITestFrameworkCapability![]! capabilities) -> void Microsoft.Testing.Platform.Capabilities.TestFramework.TestFrameworkCapabilities.TestFrameworkCapabilities(System.Collections.Generic.IReadOnlyCollection! capabilities) -> void +Microsoft.Testing.Platform.CommandLine.CommandLineOptionsExtensions Microsoft.Testing.Platform.CommandLine.ICommandLineManager Microsoft.Testing.Platform.CommandLine.ICommandLineManager.AddProvider(System.Func! commandLineProviderFactory) -> void Microsoft.Testing.Platform.CommandLine.ICommandLineOptions @@ -126,6 +235,14 @@ Microsoft.Testing.Platform.CommandLine.ICommandLineOptions.TryGetOptionArgumentL Microsoft.Testing.Platform.Configurations.ConfigurationExtensions Microsoft.Testing.Platform.Configurations.IConfiguration Microsoft.Testing.Platform.Configurations.IConfiguration.this[string! key].get -> string? +Microsoft.Testing.Platform.Configurations.IConfigurationRoot +Microsoft.Testing.Platform.Configurations.IConfigurationRoot.GetChildren() -> System.Collections.Generic.IEnumerable! +Microsoft.Testing.Platform.Configurations.IConfigurationRoot.GetSection(string! key) -> Microsoft.Testing.Platform.Configurations.IConfigurationSection! +Microsoft.Testing.Platform.Configurations.IConfigurationSection +Microsoft.Testing.Platform.Configurations.IConfigurationSection.HasValue.get -> bool +Microsoft.Testing.Platform.Configurations.IConfigurationSection.Key.get -> string! +Microsoft.Testing.Platform.Configurations.IConfigurationSection.Path.get -> string! +Microsoft.Testing.Platform.Configurations.IConfigurationSection.Value.get -> string? Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.ArgumentArity() -> void Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.ArgumentArity(int min, int max) -> void @@ -159,12 +276,57 @@ Microsoft.Testing.Platform.Extensions.IExtension.DisplayName.get -> string! Microsoft.Testing.Platform.Extensions.IExtension.IsEnabledAsync() -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.Extensions.IExtension.Uid.get -> string! Microsoft.Testing.Platform.Extensions.IExtension.Version.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty +Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.Actual.get -> string? +Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.AssertionFailureProperty(string? expected, string? actual) -> void +Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.Expected.get -> string? Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.CancelledTestNodeStateProperty() -> void Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.CancelledTestNodeStateProperty(string! explanation) -> void Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.CancelledTestNodeStateProperty(System.Exception! exception, string? explanation = null) -> void Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? other) -> bool Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.Exception.get -> System.Exception? +Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation +Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation.Average = 3 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation +Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation.Maximum = 4 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation +Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation.Minimum = 2 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation +Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation.None = 0 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation +Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation.Total = 1 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Block = 5 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Branch = 2 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Class = 8 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Complexity = 10 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Condition = 9 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Custom = 255 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Function = 4 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Instruction = 6 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Line = 0 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Method = 3 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Region = 7 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Statement = 1 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat +Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat.Cobertura = 1 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat +Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat.CoverageXml = 4 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat +Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat.Custom = 255 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat +Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat.Lcov = 3 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat +Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat.OpenCover = 2 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat +Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat.Unknown = 0 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat +Microsoft.Testing.Platform.Extensions.Messages.CoverageScope +Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.ContainerHint.get -> string? +Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.CoverageScope() -> void +Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.CoverageScope(Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel level, string? name = null, string? containerHint = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.Equals(Microsoft.Testing.Platform.Extensions.Messages.CoverageScope other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.Level.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel +Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.Name.get -> string? +Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel +Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel.Assembly = 2 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel +Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel.File = 5 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel +Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel.Module = 1 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel +Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel.Namespace = 3 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel +Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel.Overall = 0 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel +Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel.Type = 4 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel Microsoft.Testing.Platform.Extensions.Messages.DataWithSessionUid Microsoft.Testing.Platform.Extensions.Messages.DataWithSessionUid.DataWithSessionUid(string! displayName, string? description, Microsoft.Testing.Platform.TestHost.SessionUid sessionUid) -> void Microsoft.Testing.Platform.Extensions.Messages.DataWithSessionUid.SessionUid.get -> Microsoft.Testing.Platform.TestHost.SessionUid @@ -239,6 +401,11 @@ Microsoft.Testing.Platform.Extensions.Messages.PropertyBagData.Description.get - Microsoft.Testing.Platform.Extensions.Messages.PropertyBagData.DisplayName.get -> string! Microsoft.Testing.Platform.Extensions.Messages.PropertyBagData.Properties.get -> Microsoft.Testing.Platform.Extensions.Messages.PropertyBag! Microsoft.Testing.Platform.Extensions.Messages.PropertyBagData.PropertyBagData(string! displayName, string? description) -> void +Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty +Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.AttemptNumber.get -> int +Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.IsSuperseded.get -> bool +Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.RetryAttemptProperty(int attemptNumber, bool isSuperseded) -> void Microsoft.Testing.Platform.Extensions.Messages.SessionFileArtifact Microsoft.Testing.Platform.Extensions.Messages.SessionFileArtifact.FileInfo.get -> System.IO.FileInfo! Microsoft.Testing.Platform.Extensions.Messages.SessionFileArtifact.SessionFileArtifact(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, System.IO.FileInfo! fileInfo, string! displayName, string? description = null) -> void @@ -259,6 +426,35 @@ Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Equals(Microsoft.T Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Id.get -> string! Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.StepTimingInfo(string! id, string! description, Microsoft.Testing.Platform.Extensions.Messages.TimingInfo timing) -> void Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Timing.get -> Microsoft.Testing.Platform.Extensions.Messages.TimingInfo +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.CoverableCount.get -> long +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.CoveredCount.get -> long +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.CustomMetricName.get -> string? +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.HasCoverableData.get -> bool +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.Metric.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.Percentage.get -> double +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.ProducerId.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.Scope.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScope +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.TestCoverageMessage(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, Microsoft.Testing.Platform.Extensions.Messages.CoverageScope scope, Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric metric, long coveredCount, long coverableCount, string! producerId, string? customMetricName = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageReportMessage +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageReportMessage.CustomFormatName.get -> string? +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageReportMessage.Format.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageReportMessage.ProducerId.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageReportMessage.ReportPath.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageReportMessage.TestCoverageReportMessage(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, string! reportPath, Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat format, string! producerId, string? customFormatName = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.ActualPercentage.get -> double +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.AggregatedOver.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel? +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.Aggregation.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.CustomMetricName.get -> string? +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.HasCoverableData.get -> bool +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.Metric.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.Passed.get -> bool +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.ProducerId.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.RequiredPercentage.get -> double +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.Scope.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScope +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.TestCoverageThresholdMessage(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, Microsoft.Testing.Platform.Extensions.Messages.CoverageScope scope, Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric metric, Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation aggregation, double actualPercentage, double requiredPercentage, bool hasCoverableData, string! producerId, Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel? aggregatedOver = null, bool treatNoDataAsFailure = true, string? customMetricName = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.TreatNoDataAsFailure.get -> bool Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? other) -> bool Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.TestFileLocationProperty(string! filePath, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan lineSpan) -> void @@ -424,6 +620,13 @@ Microsoft.Testing.Platform.OutputDevice.IColor Microsoft.Testing.Platform.OutputDevice.IOutputDevice Microsoft.Testing.Platform.OutputDevice.IOutputDevice.DisplayAsync(Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer! producer, Microsoft.Testing.Platform.OutputDevice.IOutputDeviceData! data, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! Microsoft.Testing.Platform.OutputDevice.IOutputDeviceData +Microsoft.Testing.Platform.OutputDevice.ProgressMessageOutputDeviceData +Microsoft.Testing.Platform.OutputDevice.ProgressMessageOutputDeviceData.Key.get -> string! +Microsoft.Testing.Platform.OutputDevice.ProgressMessageOutputDeviceData.Message.get -> string? +Microsoft.Testing.Platform.OutputDevice.ProgressMessageOutputDeviceData.ProgressMessageOutputDeviceData(string! key, string? message) -> void +Microsoft.Testing.Platform.OutputDevice.SessionMessageOutputDeviceData +Microsoft.Testing.Platform.OutputDevice.SessionMessageOutputDeviceData.Message.get -> string! +Microsoft.Testing.Platform.OutputDevice.SessionMessageOutputDeviceData.SessionMessageOutputDeviceData(string! message) -> void Microsoft.Testing.Platform.OutputDevice.SystemConsoleColor Microsoft.Testing.Platform.OutputDevice.SystemConsoleColor.ConsoleColor.get -> System.ConsoleColor Microsoft.Testing.Platform.OutputDevice.SystemConsoleColor.ConsoleColor.init -> void @@ -452,6 +655,40 @@ Microsoft.Testing.Platform.Requests.TestExecutionRequest.TestExecutionRequest(Mi Microsoft.Testing.Platform.Requests.TestNodeUidListFilter Microsoft.Testing.Platform.Requests.TestNodeUidListFilter.TestNodeUidListFilter(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid![]! testNodeUids) -> void Microsoft.Testing.Platform.Requests.TestNodeUidListFilter.TestNodeUids.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid![]! +Microsoft.Testing.Platform.Services.CoverageMetricResult +Microsoft.Testing.Platform.Services.CoverageMetricResult.CoverableCount.get -> long +Microsoft.Testing.Platform.Services.CoverageMetricResult.CoverageMetricResult(Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric metric, long coveredCount, long coverableCount, string! producerId, string? customMetricName = null) -> void +Microsoft.Testing.Platform.Services.CoverageMetricResult.CoveredCount.get -> long +Microsoft.Testing.Platform.Services.CoverageMetricResult.CustomMetricName.get -> string? +Microsoft.Testing.Platform.Services.CoverageMetricResult.HasCoverableData.get -> bool +Microsoft.Testing.Platform.Services.CoverageMetricResult.Metric.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric +Microsoft.Testing.Platform.Services.CoverageMetricResult.Percentage.get -> double +Microsoft.Testing.Platform.Services.CoverageMetricResult.ProducerId.get -> string! +Microsoft.Testing.Platform.Services.CoverageReportReference +Microsoft.Testing.Platform.Services.CoverageReportReference.CoverageReportReference(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, string! path, Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat format, string! producerId, string? customFormatName = null) -> void +Microsoft.Testing.Platform.Services.CoverageReportReference.CustomFormatName.get -> string? +Microsoft.Testing.Platform.Services.CoverageReportReference.Format.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat +Microsoft.Testing.Platform.Services.CoverageReportReference.Path.get -> string! +Microsoft.Testing.Platform.Services.CoverageReportReference.ProducerId.get -> string! +Microsoft.Testing.Platform.Services.CoverageReportReference.SessionUid.get -> Microsoft.Testing.Platform.TestHost.SessionUid +Microsoft.Testing.Platform.Services.CoverageScopeSummary +Microsoft.Testing.Platform.Services.CoverageScopeSummary.CoverageScopeSummary(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, Microsoft.Testing.Platform.Extensions.Messages.CoverageScope scope, System.Collections.Generic.IReadOnlyList! metrics) -> void +Microsoft.Testing.Platform.Services.CoverageScopeSummary.GetCustom(string! customMetricName) -> Microsoft.Testing.Platform.Services.CoverageMetricResult? +Microsoft.Testing.Platform.Services.CoverageScopeSummary.Metrics.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Platform.Services.CoverageScopeSummary.Scope.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScope +Microsoft.Testing.Platform.Services.CoverageScopeSummary.SessionUid.get -> Microsoft.Testing.Platform.TestHost.SessionUid +Microsoft.Testing.Platform.Services.CoverageScopeSummary.this[Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric metric].get -> Microsoft.Testing.Platform.Services.CoverageMetricResult? +Microsoft.Testing.Platform.Services.IArtifactNamingService +Microsoft.Testing.Platform.Services.IArtifactNamingService.ResolveFileName(string! template) -> string! +Microsoft.Testing.Platform.Services.ITestCoverageCapabilities +Microsoft.Testing.Platform.Services.ITestCoverageCapabilities.EnabledProducerUids.get -> System.Collections.Generic.IReadOnlyCollection! +Microsoft.Testing.Platform.Services.ITestCoverageCapabilities.SupportsTestCoverageMessages.get -> bool +Microsoft.Testing.Platform.Services.ITestCoverageResult +Microsoft.Testing.Platform.Services.ITestCoverageResult.GetOverall(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid) -> Microsoft.Testing.Platform.Services.CoverageScopeSummary? +Microsoft.Testing.Platform.Services.ITestCoverageResult.HasThresholdFailure.get -> bool +Microsoft.Testing.Platform.Services.ITestCoverageResult.Reports.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Platform.Services.ITestCoverageResult.Scopes.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Platform.Services.ITestCoverageResult.Thresholds.get -> System.Collections.Generic.IReadOnlyList! Microsoft.Testing.Platform.Services.ITestSessionContext Microsoft.Testing.Platform.Services.ITestSessionContext.CancellationToken.get -> System.Threading.CancellationToken Microsoft.Testing.Platform.Services.ITestSessionContext.SessionUid.get -> Microsoft.Testing.Platform.TestHost.SessionUid @@ -483,9 +720,14 @@ override Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.Equals( override Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.GetHashCode() -> int override Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.Equals(object? obj) -> bool override Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.ToString() -> string! override Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.Equals(object? obj) -> bool override Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.GetHashCode() -> int override Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.GetHashCode() -> int override Microsoft.Testing.Platform.Extensions.Messages.DataWithSessionUid.ToString() -> string! override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(object? obj) -> bool override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.GetHashCode() -> int @@ -516,6 +758,9 @@ override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStatePrope override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.GetHashCode() -> int override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.ToString() -> string! override Microsoft.Testing.Platform.Extensions.Messages.PropertyBagData.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.ToString() -> string! override Microsoft.Testing.Platform.Extensions.Messages.SessionFileArtifact.ToString() -> string! override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(object? obj) -> bool override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.GetHashCode() -> int @@ -558,10 +803,14 @@ override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.ToString( override Microsoft.Testing.Platform.TestHost.SessionUid.ToString() -> string! static Microsoft.Testing.Platform.Builder.TestApplication.CreateBuilderAsync(string![]! args, Microsoft.Testing.Platform.Builder.TestApplicationOptions? testApplicationOptions = null) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Builder.TestApplication.CreateServerModeBuilderAsync(string![]! args, Microsoft.Testing.Platform.Builder.TestApplicationOptions? testApplicationOptions = null) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsExtensions.TryGetOptionArgumentListOrDefault(this Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, string! optionName, out string![]? arguments) -> bool static Microsoft.Testing.Platform.Configurations.ConfigurationExtensions.GetCurrentWorkingDirectory(this Microsoft.Testing.Platform.Configurations.IConfiguration! configuration) -> string! static Microsoft.Testing.Platform.Configurations.ConfigurationExtensions.GetTestResultDirectory(this Microsoft.Testing.Platform.Configurations.IConfiguration! configuration) -> string! static Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.operator !=(Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity left, Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity right) -> bool static Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.operator ==(Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity left, Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.operator !=(Microsoft.Testing.Platform.Extensions.Messages.CoverageScope left, Microsoft.Testing.Platform.Extensions.Messages.CoverageScope right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.operator ==(Microsoft.Testing.Platform.Extensions.Messages.CoverageScope left, Microsoft.Testing.Platform.Extensions.Messages.CoverageScope right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.Overall.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScope static Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.CachedInstance.get -> Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty! static Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.CachedInstance.get -> Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty! static Microsoft.Testing.Platform.Extensions.Messages.LinePosition.operator !=(Microsoft.Testing.Platform.Extensions.Messages.LinePosition left, Microsoft.Testing.Platform.Extensions.Messages.LinePosition right) -> bool @@ -597,8 +846,10 @@ static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogTrace(this Micros static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogTraceAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogWarning(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> void static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogWarningAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetArtifactNamingService(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Services.IArtifactNamingService! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetCommandLineOptions(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetConfiguration(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Configurations.IConfiguration! +static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetConfigurationRoot(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Configurations.IConfigurationRoot! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetLoggerFactory(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Logging.ILoggerFactory! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetMessageBus(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Messages.IMessageBus! static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetOutputDevice(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.OutputDevice.IOutputDevice! diff --git a/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Unshipped.txt index 8b96b02ab2..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Unshipped.txt @@ -1,252 +1 @@ #nullable enable -Microsoft.Testing.Platform.CommandLine.CommandLineOptionsExtensions -static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsExtensions.TryGetOptionArgumentListOrDefault(this Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions, string! optionName, out string![]? arguments) -> bool -[TPEXP]Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionResultCapability -[TPEXP]Microsoft.Testing.Platform.Capabilities.TestFramework.IGracefulStopTestExecutionResultCapability.TryStopTestExecutionAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Configurations.IConfigurationRoot -Microsoft.Testing.Platform.Configurations.IConfigurationRoot.GetChildren() -> System.Collections.Generic.IEnumerable! -Microsoft.Testing.Platform.Configurations.IConfigurationRoot.GetSection(string! key) -> Microsoft.Testing.Platform.Configurations.IConfigurationSection! -Microsoft.Testing.Platform.Configurations.IConfigurationSection -Microsoft.Testing.Platform.Configurations.IConfigurationSection.HasValue.get -> bool -Microsoft.Testing.Platform.Configurations.IConfigurationSection.Key.get -> string! -Microsoft.Testing.Platform.Configurations.IConfigurationSection.Path.get -> string! -Microsoft.Testing.Platform.Configurations.IConfigurationSection.Value.get -> string? -[TPEXP]Microsoft.Testing.Platform.Configurations.IHierarchicalConfigurationProvider -[TPEXP]Microsoft.Testing.Platform.Configurations.IHierarchicalConfigurationProvider.GetChildKeys(string? parentPath) -> System.Collections.Generic.IEnumerable! -[TPEXP]Microsoft.Testing.Platform.Configurations.IHierarchicalConfigurationProvider.TryGetScalar(string! key, out string? value) -> bool -static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetConfigurationRoot(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Configurations.IConfigurationRoot! -[TPEXP]Microsoft.Testing.Platform.Requests.CompositeTestExecutionFilter -[TPEXP]Microsoft.Testing.Platform.Requests.CompositeTestExecutionFilter.CompositeTestExecutionFilter(Microsoft.Testing.Platform.Requests.TestExecutionFilterOperator operator, params Microsoft.Testing.Platform.Requests.ITestExecutionFilter![]! filters) -> void -[TPEXP]Microsoft.Testing.Platform.Requests.CompositeTestExecutionFilter.Filters.get -> System.Collections.Generic.IReadOnlyList! -[TPEXP]Microsoft.Testing.Platform.Requests.CompositeTestExecutionFilter.Operator.get -> Microsoft.Testing.Platform.Requests.TestExecutionFilterOperator -[TPEXP]Microsoft.Testing.Platform.Requests.ITestExecutionFilterProvider -[TPEXP]Microsoft.Testing.Platform.Requests.ITestExecutionFilterProvider.GetFilterAsync(Microsoft.Testing.Platform.Requests.TestExecutionFilterContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionFilterContext -[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionFilterContext.TestExecutionFilterContext(Microsoft.Testing.Platform.Requests.TestExecutionRequestKind requestKind, Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin origin) -> void -[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionFilterContext.Origin.get -> Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin -[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionFilterContext.RequestKind.get -> Microsoft.Testing.Platform.Requests.TestExecutionRequestKind -[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionFilterOperator -[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionFilterOperator.And = 0 -> Microsoft.Testing.Platform.Requests.TestExecutionFilterOperator -[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionRequestKind -[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionRequestKind.Discovery = 0 -> Microsoft.Testing.Platform.Requests.TestExecutionRequestKind -[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionRequestKind.Run = 1 -> Microsoft.Testing.Platform.Requests.TestExecutionRequestKind -[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin -[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin.Console = 0 -> Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin -[TPEXP]Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin.Server = 1 -> Microsoft.Testing.Platform.Requests.TestExecutionRequestOrigin -[TPEXP]static Microsoft.Testing.Platform.Helpers.TestApplicationBuilderExtensions.AddTestExecutionFilterProvider(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! builder, System.Func! providerFactory) -> void -[TPEXP]Microsoft.Testing.Platform.Services.IClientCapabilities -[TPEXP]Microsoft.Testing.Platform.Services.IClientCapabilities.IsStateful.get -> bool -[TPEXP]Microsoft.Testing.Platform.Services.IClientInfo.Capabilities.get -> Microsoft.Testing.Platform.Services.IClientCapabilities! -Microsoft.Testing.Platform.Services.IArtifactNamingService -Microsoft.Testing.Platform.Services.IArtifactNamingService.ResolveFileName(string! template) -> string! -static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetArtifactNamingService(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Services.IArtifactNamingService! -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Line = 0 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Statement = 1 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Branch = 2 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Method = 3 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Function = 4 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Block = 5 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Instruction = 6 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Region = 7 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Class = 8 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Condition = 9 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Complexity = 10 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric.Custom = 255 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation -Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation.None = 0 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation -Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation.Total = 1 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation -Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation.Minimum = 2 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation -Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation.Average = 3 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation -Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation.Maximum = 4 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation -Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel -Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel.Overall = 0 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel -Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel.Module = 1 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel -Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel.Assembly = 2 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel -Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel.Namespace = 3 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel -Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel.Type = 4 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel -Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel.File = 5 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel -Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat -Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat.Unknown = 0 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat -Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat.Cobertura = 1 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat -Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat.OpenCover = 2 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat -Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat.Lcov = 3 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat -Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat.CoverageXml = 4 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat -Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat.Custom = 255 -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat -Microsoft.Testing.Platform.Extensions.Messages.CoverageScope -Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.CoverageScope() -> void -Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.CoverageScope(Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel level, string? name = null, string? containerHint = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.ContainerHint.get -> string? -Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.Equals(Microsoft.Testing.Platform.Extensions.Messages.CoverageScope other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.Level.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel -Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.Name.get -> string? -override Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.GetHashCode() -> int -static Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.Overall.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScope -static Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.operator !=(Microsoft.Testing.Platform.Extensions.Messages.CoverageScope left, Microsoft.Testing.Platform.Extensions.Messages.CoverageScope right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.CoverageScope.operator ==(Microsoft.Testing.Platform.Extensions.Messages.CoverageScope left, Microsoft.Testing.Platform.Extensions.Messages.CoverageScope right) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.CoverableCount.get -> long -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.CoveredCount.get -> long -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.CustomMetricName.get -> string? -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.HasCoverableData.get -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.Metric.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.Percentage.get -> double -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.ProducerId.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.Scope.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScope -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageMessage.TestCoverageMessage(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, Microsoft.Testing.Platform.Extensions.Messages.CoverageScope scope, Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric metric, long coveredCount, long coverableCount, string! producerId, string? customMetricName = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.ActualPercentage.get -> double -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.AggregatedOver.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel? -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.Aggregation.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.CustomMetricName.get -> string? -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.HasCoverableData.get -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.Metric.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.Passed.get -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.ProducerId.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.RequiredPercentage.get -> double -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.Scope.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScope -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.TreatNoDataAsFailure.get -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageThresholdMessage.TestCoverageThresholdMessage(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, Microsoft.Testing.Platform.Extensions.Messages.CoverageScope scope, Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric metric, Microsoft.Testing.Platform.Extensions.Messages.CoverageAggregation aggregation, double actualPercentage, double requiredPercentage, bool hasCoverableData, string! producerId, Microsoft.Testing.Platform.Extensions.Messages.CoverageScopeLevel? aggregatedOver = null, bool treatNoDataAsFailure = true, string? customMetricName = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageReportMessage -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageReportMessage.CustomFormatName.get -> string? -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageReportMessage.Format.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageReportMessage.ProducerId.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageReportMessage.ReportPath.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestCoverageReportMessage.TestCoverageReportMessage(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, string! reportPath, Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat format, string! producerId, string? customFormatName = null) -> void -Microsoft.Testing.Platform.Services.ITestCoverageResult -Microsoft.Testing.Platform.Services.ITestCoverageCapabilities -Microsoft.Testing.Platform.Services.ITestCoverageCapabilities.EnabledProducerUids.get -> System.Collections.Generic.IReadOnlyCollection! -Microsoft.Testing.Platform.Services.ITestCoverageCapabilities.SupportsTestCoverageMessages.get -> bool -Microsoft.Testing.Platform.Services.ITestCoverageResult.HasThresholdFailure.get -> bool -Microsoft.Testing.Platform.Services.ITestCoverageResult.GetOverall(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid) -> Microsoft.Testing.Platform.Services.CoverageScopeSummary? -Microsoft.Testing.Platform.Services.ITestCoverageResult.Reports.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Platform.Services.ITestCoverageResult.Scopes.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Platform.Services.ITestCoverageResult.Thresholds.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Platform.Services.CoverageMetricResult -Microsoft.Testing.Platform.Services.CoverageMetricResult.CoverableCount.get -> long -Microsoft.Testing.Platform.Services.CoverageMetricResult.CoverageMetricResult(Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric metric, long coveredCount, long coverableCount, string! producerId, string? customMetricName = null) -> void -Microsoft.Testing.Platform.Services.CoverageMetricResult.CoveredCount.get -> long -Microsoft.Testing.Platform.Services.CoverageMetricResult.CustomMetricName.get -> string? -Microsoft.Testing.Platform.Services.CoverageMetricResult.HasCoverableData.get -> bool -Microsoft.Testing.Platform.Services.CoverageMetricResult.Metric.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric -Microsoft.Testing.Platform.Services.CoverageMetricResult.Percentage.get -> double -Microsoft.Testing.Platform.Services.CoverageMetricResult.ProducerId.get -> string! -Microsoft.Testing.Platform.Services.CoverageScopeSummary -Microsoft.Testing.Platform.Services.CoverageScopeSummary.CoverageScopeSummary(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, Microsoft.Testing.Platform.Extensions.Messages.CoverageScope scope, System.Collections.Generic.IReadOnlyList! metrics) -> void -Microsoft.Testing.Platform.Services.CoverageScopeSummary.GetCustom(string! customMetricName) -> Microsoft.Testing.Platform.Services.CoverageMetricResult? -Microsoft.Testing.Platform.Services.CoverageScopeSummary.Metrics.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.Testing.Platform.Services.CoverageScopeSummary.Scope.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageScope -Microsoft.Testing.Platform.Services.CoverageScopeSummary.SessionUid.get -> Microsoft.Testing.Platform.TestHost.SessionUid -Microsoft.Testing.Platform.Services.CoverageScopeSummary.this[Microsoft.Testing.Platform.Extensions.Messages.CoverageMetric metric].get -> Microsoft.Testing.Platform.Services.CoverageMetricResult? -Microsoft.Testing.Platform.Services.CoverageReportReference -Microsoft.Testing.Platform.Services.CoverageReportReference.CoverageReportReference(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, string! path, Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat format, string! producerId, string? customFormatName = null) -> void -Microsoft.Testing.Platform.Services.CoverageReportReference.CustomFormatName.get -> string? -Microsoft.Testing.Platform.Services.CoverageReportReference.Format.get -> Microsoft.Testing.Platform.Extensions.Messages.CoverageReportFormat -Microsoft.Testing.Platform.Services.CoverageReportReference.Path.get -> string! -Microsoft.Testing.Platform.Services.CoverageReportReference.ProducerId.get -> string! -Microsoft.Testing.Platform.Services.CoverageReportReference.SessionUid.get -> Microsoft.Testing.Platform.TestHost.SessionUid -[TPEXP]Microsoft.Testing.Platform.Builder.IArtifactPostProcessingApplicationBuilder -[TPEXP]Microsoft.Testing.Platform.Builder.IArtifactPostProcessingApplicationBuilder.ArtifactPostProcessing.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessingManager! -[TPEXP]Microsoft.Testing.Platform.Builder.IArtifactPostProcessingApplicationBuilder.Tools.get -> Microsoft.Testing.Platform.Tools.IToolsManager! -[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase -[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.CommandLineOptionsProviderBase(string! uid, string! version, string! displayName, string! description, System.Collections.Generic.IReadOnlyCollection! commandLineOptions) -> void -[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.CommandLineOptionsProviderBase(Microsoft.Testing.Platform.Extensions.IExtension! extension, System.Collections.Generic.IReadOnlyCollection! commandLineOptions) -> void -[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.Uid.get -> string! -[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.Version.get -> string! -[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.DisplayName.get -> string! -[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.Description.get -> string! -[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.IsEnabledAsync() -> System.Threading.Tasks.Task! -[TPINTERNAL]Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.GetCommandLineOptions() -> System.Collections.Generic.IReadOnlyCollection! -[TPINTERNAL]virtual Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! -[TPINTERNAL]virtual Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! -[TPINTERNAL]static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.RequiresMainOption(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! options, string![]! subOptionNames, string! mainOptionName, System.Func! errorMessageFactory) -> System.Threading.Tasks.Task? -[TPINTERNAL]static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.RequiresMainOption(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! options, string![]! subOptionNames, string![]! mainOptionNames, System.Func! errorMessageFactory) -> System.Threading.Tasks.Task? -[TPINTERNAL]static Microsoft.Testing.Platform.CommandLine.CommandLineOptionsProviderBase.ValidateAllowedValuesAsync(string! value, string![]! allowedValues, string! formatString) -> System.Threading.Tasks.Task! -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessingManager -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessingManager.AddArtifactPostProcessor(System.Func! factory) -> void -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessor -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessor.SupportedModes.get -> System.Collections.Generic.IReadOnlyList! -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessor.SupportsTruncatedRuns.get -> bool -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessor.SupportedKinds.get -> System.Collections.Generic.IReadOnlyList! -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessor.SupportedFileExtensionsFallback.get -> System.Collections.Generic.IReadOnlyList! -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessor.ProcessAsync(System.Collections.Generic.IReadOnlyList! inputs, string! outputDirectory, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext! context, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.IArtifactPostProcessorRequiresPostProcessing -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.ArtifactPostProcessingContext(Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason truncationReason) -> void -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.ArtifactPostProcessingContext(Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason truncationReason, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode mode) -> void -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.ArtifactPostProcessingContext(Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason truncationReason, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary? runSummary) -> void -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.ArtifactPostProcessingContext(Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason truncationReason, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode mode, Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary? runSummary) -> void -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.IsTruncated.get -> bool -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.Mode.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.RunSummary.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary? -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingContext.TruncationReason.get -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode.TestModules = 0 -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode.RetryAttempts = 1 -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingMode -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.ArtifactPostProcessingRunSummary(long totalTests, long passedTests, long failedTests, long skippedTests, System.TimeSpan duration, int exitCode, int testModuleCount) -> void -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.Duration.get -> System.TimeSpan -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.ExitCode.get -> int -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.FailedTests.get -> long -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.PassedTests.get -> long -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.SkippedTests.get -> long -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.TestModuleCount.get -> int -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingRunSummary.TotalTests.get -> long -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason.None = 0 -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason.MaximumFailedTests = 1 -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason.Timeout = 2 -> Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ArtifactPostProcessingTruncationReason -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.InputArtifact(string! path, string? kind, string? producingTestModule, string? targetFramework, string? architecture, string? executionId) -> void -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.Path.get -> string! -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.Kind.get -> string? -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.ProducingTestModule.get -> string? -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.TargetFramework.get -> string? -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.Architecture.get -> string? -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.InputArtifact.ExecutionId.get -> string? -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact.ProcessedArtifact(string! path, string! kind, string! displayName, string? description) -> void -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact.Path.get -> string! -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact.Kind.get -> string! -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact.DisplayName.get -> string! -[TPEXP]Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing.ProcessedArtifact.Description.get -> string? -[TPEXP]Microsoft.Testing.Platform.Extensions.Messages.FileArtifact.FileArtifact(System.IO.FileInfo! fileInfo, string! displayName, string? description, string? kind) -> void -[TPEXP]Microsoft.Testing.Platform.Extensions.Messages.FileArtifact.Kind.get -> string? -[TPEXP]Microsoft.Testing.Platform.Extensions.Messages.SessionFileArtifact.SessionFileArtifact(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, System.IO.FileInfo! fileInfo, string! displayName, string? description, string? kind) -> void -[TPEXP]Microsoft.Testing.Platform.Extensions.Messages.SessionFileArtifact.Kind.get -> string? -[TPINTERNAL]Microsoft.Testing.Platform.Helpers.IClock -[TPINTERNAL]Microsoft.Testing.Platform.Helpers.IClock.UtcNow.get -> System.DateTimeOffset -[TPINTERNAL]static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetSystemClock(this System.IServiceProvider! serviceProvider) -> Microsoft.Testing.Platform.Helpers.IClock! -Microsoft.Testing.Platform.OutputDevice.ProgressMessageOutputDeviceData -Microsoft.Testing.Platform.OutputDevice.ProgressMessageOutputDeviceData.ProgressMessageOutputDeviceData(string! key, string? message) -> void -Microsoft.Testing.Platform.OutputDevice.ProgressMessageOutputDeviceData.Key.get -> string! -Microsoft.Testing.Platform.OutputDevice.ProgressMessageOutputDeviceData.Message.get -> string? -Microsoft.Testing.Platform.OutputDevice.SessionMessageOutputDeviceData -Microsoft.Testing.Platform.OutputDevice.SessionMessageOutputDeviceData.SessionMessageOutputDeviceData(string! message) -> void -Microsoft.Testing.Platform.OutputDevice.SessionMessageOutputDeviceData.Message.get -> string! -[TPEXP]Microsoft.Testing.Platform.Tools.ITool -[TPEXP]Microsoft.Testing.Platform.Tools.ITool.Name.get -> string! -[TPEXP]Microsoft.Testing.Platform.Tools.ITool.RunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -[TPEXP]Microsoft.Testing.Platform.Tools.IToolCommandLineOptionsProvider -[TPEXP]Microsoft.Testing.Platform.Tools.IToolCommandLineOptionsProvider.ToolName.get -> string! -[TPEXP]Microsoft.Testing.Platform.Tools.IToolsManager -[TPEXP]Microsoft.Testing.Platform.Tools.IToolsManager.AddTool(System.Func! toolFactory) -> void -Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty -Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.RetryAttemptProperty(int attemptNumber, bool isSuperseded) -> void -Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.AttemptNumber.get -> int -Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.IsSuperseded.get -> bool -Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty? other) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.RetryAttemptProperty.GetHashCode() -> int -Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty -Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.Actual.get -> string? -Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.AssertionFailureProperty(string? expected, string? actual) -> void -Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.Expected.get -> string? -override Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.AssertionFailureProperty.ToString() -> string! -[TPEXP]Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostControllerConnectionAuthorizer -[TPEXP]Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostControllerConnectionAuthorizer.GetAuthorizedSecurityIdentitiesAsync(string! testHostFileName, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task!>! diff --git a/src/TestFramework/TestFramework.Extensions/PublicAPI/net462/PublicAPI.Shipped.txt b/src/TestFramework/TestFramework.Extensions/PublicAPI/net462/PublicAPI.Shipped.txt index 1e10bc545f..07d475fcfe 100644 --- a/src/TestFramework/TestFramework.Extensions/PublicAPI/net462/PublicAPI.Shipped.txt +++ b/src/TestFramework/TestFramework.Extensions/PublicAPI/net462/PublicAPI.Shipped.txt @@ -111,3 +111,4 @@ virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.ResultsDirector virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestResultsDirectory.get -> string? virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestRunDirectory.get -> string? virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestRunResultsDirectory.get -> string? +virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestTempDirectory.get -> string? diff --git a/src/TestFramework/TestFramework.Extensions/PublicAPI/net462/PublicAPI.Unshipped.txt b/src/TestFramework/TestFramework.Extensions/PublicAPI/net462/PublicAPI.Unshipped.txt index 8b88426584..7dc5c58110 100644 --- a/src/TestFramework/TestFramework.Extensions/PublicAPI/net462/PublicAPI.Unshipped.txt +++ b/src/TestFramework/TestFramework.Extensions/PublicAPI/net462/PublicAPI.Unshipped.txt @@ -1,2 +1 @@ #nullable enable -virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestTempDirectory.get -> string? diff --git a/src/TestFramework/TestFramework.Extensions/PublicAPI/net8.0/PublicAPI.Shipped.txt b/src/TestFramework/TestFramework.Extensions/PublicAPI/net8.0/PublicAPI.Shipped.txt index 9a7b0bfccc..91ebb602b6 100644 --- a/src/TestFramework/TestFramework.Extensions/PublicAPI/net8.0/PublicAPI.Shipped.txt +++ b/src/TestFramework/TestFramework.Extensions/PublicAPI/net8.0/PublicAPI.Shipped.txt @@ -9,3 +9,4 @@ virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.ResultsDirector virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestResultsDirectory.get -> string? virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestRunDirectory.get -> string? virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestRunResultsDirectory.get -> string? +virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestTempDirectory.get -> string? diff --git a/src/TestFramework/TestFramework.Extensions/PublicAPI/net8.0/PublicAPI.Unshipped.txt b/src/TestFramework/TestFramework.Extensions/PublicAPI/net8.0/PublicAPI.Unshipped.txt index 8b88426584..7dc5c58110 100644 --- a/src/TestFramework/TestFramework.Extensions/PublicAPI/net8.0/PublicAPI.Unshipped.txt +++ b/src/TestFramework/TestFramework.Extensions/PublicAPI/net8.0/PublicAPI.Unshipped.txt @@ -1,2 +1 @@ #nullable enable -virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestTempDirectory.get -> string? diff --git a/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0/PublicAPI.Shipped.txt b/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0/PublicAPI.Shipped.txt index 9a7b0bfccc..91ebb602b6 100644 --- a/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0/PublicAPI.Shipped.txt +++ b/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0/PublicAPI.Shipped.txt @@ -9,3 +9,4 @@ virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.ResultsDirector virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestResultsDirectory.get -> string? virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestRunDirectory.get -> string? virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestRunResultsDirectory.get -> string? +virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestTempDirectory.get -> string? diff --git a/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0/PublicAPI.Unshipped.txt b/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0/PublicAPI.Unshipped.txt index 8b88426584..7dc5c58110 100644 --- a/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0/PublicAPI.Unshipped.txt +++ b/src/TestFramework/TestFramework.Extensions/PublicAPI/net9.0/PublicAPI.Unshipped.txt @@ -1,2 +1 @@ #nullable enable -virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestTempDirectory.get -> string? diff --git a/src/TestFramework/TestFramework.Extensions/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt b/src/TestFramework/TestFramework.Extensions/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt index 9a7b0bfccc..91ebb602b6 100644 --- a/src/TestFramework/TestFramework.Extensions/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt +++ b/src/TestFramework/TestFramework.Extensions/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt @@ -9,3 +9,4 @@ virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.ResultsDirector virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestResultsDirectory.get -> string? virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestRunDirectory.get -> string? virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestRunResultsDirectory.get -> string? +virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestTempDirectory.get -> string? diff --git a/src/TestFramework/TestFramework.Extensions/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt b/src/TestFramework/TestFramework.Extensions/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt index 8b88426584..7dc5c58110 100644 --- a/src/TestFramework/TestFramework.Extensions/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/TestFramework/TestFramework.Extensions/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt @@ -1,2 +1 @@ #nullable enable -virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestContext.TestTempDirectory.get -> string? diff --git a/src/TestFramework/TestFramework/InternalAPI/InternalAPI.Shipped.txt b/src/TestFramework/TestFramework/InternalAPI/InternalAPI.Shipped.txt index 061440afad..e4abb0cfbb 100644 --- a/src/TestFramework/TestFramework/InternalAPI/InternalAPI.Shipped.txt +++ b/src/TestFramework/TestFramework/InternalAPI/InternalAPI.Shipped.txt @@ -3,6 +3,7 @@ [MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.RetryResult.TryGetLast() -> Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]? ~override Microsoft.VisualStudio.TestTools.UnitTesting.EvidenceLine.Equals(object obj) -> bool ~override Microsoft.VisualStudio.TestTools.UnitTesting.EvidenceLine.ToString() -> string +const Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataOperations.RequiredMemberTypes = (System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes)-1 -> System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes const Microsoft.VisualStudio.TestTools.UnitTesting.FrameworkConstants.DoNotUseAssertEquals = "Assert.Equals should not be used for Assertions. Please use Assert.AreEqual & overloads instead." -> string! const Microsoft.VisualStudio.TestTools.UnitTesting.FrameworkConstants.DoNotUseAssertReferenceEquals = "Assert.ReferenceEquals should not be used for Assertions. Please use Assert.AreSame & overloads instead." -> string! const Microsoft.VisualStudio.TestTools.UnitTesting.FrameworkConstants.DoNotUseCollectionAssertEquals = "CollectionAssert.Equals should not be used for Assertions. Please use CollectionAssert.AreEqual & overloads instead." -> string! @@ -89,6 +90,7 @@ Microsoft.VisualStudio.TestTools.UnitTesting.IEnvironment Microsoft.VisualStudio.TestTools.UnitTesting.IEnvironment.GetEnvironmentVariable(string! name) -> string? Microsoft.VisualStudio.TestTools.UnitTesting.IEnvironment.MachineName.get -> string! Microsoft.VisualStudio.TestTools.UnitTesting.IEnvironment.SetEnvironmentVariable(string! variable, string? value) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Internal.CombinatorialValuesUtilities Microsoft.VisualStudio.TestTools.UnitTesting.Internal.ReflectionTestMethodInfo Microsoft.VisualStudio.TestTools.UnitTesting.Internal.ReflectionTestMethodInfo.DisplayName.get -> string! Microsoft.VisualStudio.TestTools.UnitTesting.Internal.ReflectionTestMethodInfo.ReflectionTestMethodInfo(System.Reflection.MethodInfo! methodInfo, string? displayName) -> void @@ -98,6 +100,8 @@ Microsoft.VisualStudio.TestTools.UnitTesting.ITestDataRow.DisplayName.get -> str Microsoft.VisualStudio.TestTools.UnitTesting.ITestDataRow.IgnoreMessage.get -> string? Microsoft.VisualStudio.TestTools.UnitTesting.ITestDataRow.TestCategories.get -> System.Collections.Generic.IList? Microsoft.VisualStudio.TestTools.UnitTesting.ITestDataRow.Value.get -> object? +Microsoft.VisualStudio.TestTools.UnitTesting.ITestFilterProviderAttribute +Microsoft.VisualStudio.TestTools.UnitTesting.ITestFilterProviderAttribute.FilterType.get -> System.Type! Microsoft.VisualStudio.TestTools.UnitTesting.MSTestException Microsoft.VisualStudio.TestTools.UnitTesting.MSTestException.MSTestException() -> void Microsoft.VisualStudio.TestTools.UnitTesting.MSTestException.MSTestException(string! msg, System.Exception! ex) -> void @@ -121,12 +125,20 @@ Microsoft.VisualStudio.TestTools.UnitTesting.StructuredAssertionMessage.WithUser Microsoft.VisualStudio.TestTools.UnitTesting.TelemetryCollector Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.AssociatedUnitTestElement.get -> object? Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.AssociatedUnitTestElement.set -> void +Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.ExceptionActualText.get -> string? +Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.ExceptionActualText.set -> void +Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.ExceptionExpectedText.get -> string? +Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.ExceptionExpectedText.set -> void Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.ExceptionMessage.get -> string? Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.ExceptionMessage.set -> void Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.ExceptionStackTrace.get -> string? Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.ExceptionStackTrace.set -> void Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.IgnoreReason.get -> string? Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.IgnoreReason.set -> void +Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.IsSupersededRetryAttempt.get -> bool +Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.IsSupersededRetryAttempt.set -> void +Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.RetryAttemptNumber.get -> int +Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.RetryAttemptNumber.set -> void Microsoft.VisualStudio.TestTools.UnitTesting.TimeoutAttribute.HasCorrectTimeout.get -> bool Microsoft.VisualStudio.TestTools.UnitTesting.TimeoutAttribute.IsCooperativeCancellationSet.get -> bool override Microsoft.Testing.Platform.RoslynHashCode.Equals(object? obj) -> bool @@ -186,17 +198,22 @@ static Microsoft.VisualStudio.TestTools.UnitTesting.AssertionFailureSettings.Lau static Microsoft.VisualStudio.TestTools.UnitTesting.AssertionValueFormatterRegistry.Add(System.Func!, System.Func!>! factory) -> System.IDisposable! static Microsoft.VisualStudio.TestTools.UnitTesting.AssertionValueFormatterRegistry.HasFormatters.get -> bool static Microsoft.VisualStudio.TestTools.UnitTesting.AssertionValueFormatterRegistry.Render(object? value, System.Func! builtIn) -> string! +static Microsoft.VisualStudio.TestTools.UnitTesting.AssertionValueRenderer.IsBuiltInStringRendering(string! value, string! rendered) -> bool static Microsoft.VisualStudio.TestTools.UnitTesting.AssertionValueRenderer.RenderValue(object? value) -> string! static Microsoft.VisualStudio.TestTools.UnitTesting.AssertScope.Current.get -> Microsoft.VisualStudio.TestTools.UnitTesting.AssertScope? static Microsoft.VisualStudio.TestTools.UnitTesting.CIEnvironmentDetector.Instance.get -> Microsoft.VisualStudio.TestTools.UnitTesting.CIEnvironmentDetector! static Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert.IsSubsetOfHelper(System.Collections.ICollection! subset, System.Collections.ICollection! superset) -> System.Tuple!>! static Microsoft.VisualStudio.TestTools.UnitTesting.DebugEx.Assert(bool b, string! message) -> void static Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataOperations.GetData(System.Type? dynamicDataDeclaringType, Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceType dynamicDataSourceType, string! dynamicDataSourceName, object?[]! dynamicDataSourceArguments, System.Reflection.MethodInfo! methodInfo) -> System.Collections.Generic.IEnumerable! +static Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataOperations.GetTestMethodDeclaringType(System.Reflection.MethodInfo! methodInfo) -> System.Type? +static Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceResolver.TryGetData(System.Type! declaringType, string! sourceName, Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceType sourceType, object?[]! arguments, out object? data) -> bool +static Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceResolver.TryGetDisplayName(System.Type! declaringType, string! methodName, System.Reflection.MethodInfo! testMethodInfo, object?[]? data, out string? displayName) -> bool static Microsoft.VisualStudio.TestTools.UnitTesting.EmptyDataSourceExceptionInfoExtensions.GetExceptionForEmptyDataSource(this Microsoft.VisualStudio.TestTools.UnitTesting.ITestDataSource! dataSource, System.Reflection.MethodInfo! testMethodInfo) -> System.ArgumentException! static Microsoft.VisualStudio.TestTools.UnitTesting.EnvironmentWrapper.Instance.get -> Microsoft.VisualStudio.TestTools.UnitTesting.EnvironmentWrapper! static Microsoft.VisualStudio.TestTools.UnitTesting.EvidenceBlock.Create() -> Microsoft.VisualStudio.TestTools.UnitTesting.EvidenceBlock! static Microsoft.VisualStudio.TestTools.UnitTesting.EvidenceLine.operator !=(Microsoft.VisualStudio.TestTools.UnitTesting.EvidenceLine left, Microsoft.VisualStudio.TestTools.UnitTesting.EvidenceLine right) -> bool static Microsoft.VisualStudio.TestTools.UnitTesting.EvidenceLine.operator ==(Microsoft.VisualStudio.TestTools.UnitTesting.EvidenceLine left, Microsoft.VisualStudio.TestTools.UnitTesting.EvidenceLine right) -> bool +static Microsoft.VisualStudio.TestTools.UnitTesting.Internal.CombinatorialValuesUtilities.GetValuesFor(System.Reflection.ParameterInfo! parameter) -> System.Collections.Generic.IEnumerable! static Microsoft.VisualStudio.TestTools.UnitTesting.Internal.TestDataSourceUtilities.ComputeDefaultDisplayName(System.Reflection.MethodInfo! methodInfo, object?[]? data) -> string? static Microsoft.VisualStudio.TestTools.UnitTesting.RetryBaseAttribute.IsAcceptableResultForRetry(Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! results) -> bool static Microsoft.VisualStudio.TestTools.UnitTesting.StringEx.IsNullOrEmpty(string? value) -> bool diff --git a/src/TestFramework/TestFramework/InternalAPI/InternalAPI.Unshipped.txt b/src/TestFramework/TestFramework/InternalAPI/InternalAPI.Unshipped.txt index 49f337b59b..7dc5c58110 100644 --- a/src/TestFramework/TestFramework/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/TestFramework/TestFramework/InternalAPI/InternalAPI.Unshipped.txt @@ -1,18 +1 @@ #nullable enable -static Microsoft.VisualStudio.TestTools.UnitTesting.AssertionValueRenderer.IsBuiltInStringRendering(string! value, string! rendered) -> bool -const Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataOperations.RequiredMemberTypes = (System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes)-1 -> System.Diagnostics.CodeAnalysis.DynamicallyAccessedMemberTypes -static Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataOperations.GetTestMethodDeclaringType(System.Reflection.MethodInfo! methodInfo) -> System.Type? -static Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceResolver.TryGetData(System.Type! declaringType, string! sourceName, Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceType sourceType, object?[]! arguments, out object? data) -> bool -static Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceResolver.TryGetDisplayName(System.Type! declaringType, string! methodName, System.Reflection.MethodInfo! testMethodInfo, object?[]? data, out string? displayName) -> bool -Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.RetryAttemptNumber.get -> int -Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.RetryAttemptNumber.set -> void -Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.IsSupersededRetryAttempt.get -> bool -Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.IsSupersededRetryAttempt.set -> void -Microsoft.VisualStudio.TestTools.UnitTesting.ITestFilterProviderAttribute -Microsoft.VisualStudio.TestTools.UnitTesting.ITestFilterProviderAttribute.FilterType.get -> System.Type! -Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.ExceptionActualText.get -> string? -Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.ExceptionActualText.set -> void -Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.ExceptionExpectedText.get -> string? -Microsoft.VisualStudio.TestTools.UnitTesting.TestResult.ExceptionExpectedText.set -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Internal.CombinatorialValuesUtilities -static Microsoft.VisualStudio.TestTools.UnitTesting.Internal.CombinatorialValuesUtilities.GetValuesFor(System.Reflection.ParameterInfo! parameter) -> System.Collections.Generic.IEnumerable! diff --git a/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Shipped.txt b/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Shipped.txt index a3afd13a22..33336832f8 100644 --- a/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Shipped.txt +++ b/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Shipped.txt @@ -11,6 +11,7 @@ [MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.RetryContext.RetryContext() -> void [MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.RetryResult [MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.RetryResult.AddResult(Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! testResults) -> void +[MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.RetryResult.AllResults.get -> System.Collections.Generic.IReadOnlyList! [MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.RetryResult.RetryResult() -> void [MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.TestFilterAction [MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.TestFilterAction.Drop = 1 -> Microsoft.VisualStudio.TestTools.UnitTesting.TestFilterAction @@ -65,6 +66,10 @@ abstract Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute.GroupName.get -> string! abstract Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute.IsConditionMet.get -> bool abstract Microsoft.VisualStudio.TestTools.UnitTesting.TestCategoryBaseAttribute.TestCategories.get -> System.Collections.Generic.IList! +const Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.NoSeed = 0 -> int +const Microsoft.VisualStudio.TestTools.UnitTesting.WellKnownResources.Console = "System.Console" -> string! +const Microsoft.VisualStudio.TestTools.UnitTesting.WellKnownResources.CurrentDirectory = "System.Environment.CurrentDirectory" -> string! +const Microsoft.VisualStudio.TestTools.UnitTesting.WellKnownResources.EnvironmentVariables = "System.Environment.Variables" -> string! Microsoft.VisualStudio.TestTools.UnitTesting.AssemblyCleanupAttribute Microsoft.VisualStudio.TestTools.UnitTesting.AssemblyCleanupAttribute.AssemblyCleanupAttribute() -> void Microsoft.VisualStudio.TestTools.UnitTesting.AssemblyFixtureProviderAttribute @@ -388,6 +393,33 @@ Microsoft.VisualStudio.TestTools.UnitTesting.ClassInitializeAttribute.ClassIniti Microsoft.VisualStudio.TestTools.UnitTesting.ClassInitializeAttribute.ClassInitializeAttribute(Microsoft.VisualStudio.TestTools.UnitTesting.InheritanceBehavior inheritanceBehavior) -> void Microsoft.VisualStudio.TestTools.UnitTesting.ClassInitializeAttribute.InheritanceBehavior.get -> Microsoft.VisualStudio.TestTools.UnitTesting.InheritanceBehavior Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialDataAttribute +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialDataAttribute.CombinatorialDataAttribute() -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialDataAttribute.GetData(System.Reflection.MethodInfo! methodInfo) -> System.Collections.Generic.IEnumerable! +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialDataAttribute.GetDisplayName(System.Reflection.MethodInfo! methodInfo, object?[]? data) -> string? +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.CombinatorialRandomDataAttribute() -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Count.get -> int +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Count.set -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.GetValues(System.Reflection.ParameterInfo! parameter) -> object![]! +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Maximum.get -> int +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Maximum.set -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Minimum.get -> int +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Minimum.set -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Seed.get -> int +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Seed.set -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRangeAttribute +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRangeAttribute.CombinatorialRangeAttribute(int from, int count) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRangeAttribute.CombinatorialRangeAttribute(int from, int to, int step) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRangeAttribute.CombinatorialRangeAttribute(uint from, uint count) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRangeAttribute.CombinatorialRangeAttribute(uint from, uint to, uint step) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRangeAttribute.GetValues(System.Reflection.ParameterInfo! parameter) -> object![]! +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialValuesAttribute +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialValuesAttribute.CombinatorialValuesAttribute(params object?[]? values) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialValuesAttribute.GetValues(System.Reflection.ParameterInfo! parameter) -> object?[]! +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialValuesAttribute.Values.get -> object?[]! +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.ICombinatorialValuesProvider +Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.ICombinatorialValuesProvider.GetValues(System.Reflection.ParameterInfo! parameter) -> object?[]! Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute.ConditionBaseAttribute(Microsoft.VisualStudio.TestTools.UnitTesting.ConditionMode mode) -> void Microsoft.VisualStudio.TestTools.UnitTesting.ConditionBaseAttribute.IgnoreMessage.get -> string? @@ -424,6 +456,14 @@ Microsoft.VisualStudio.TestTools.UnitTesting.DataTestMethodAttribute.DataTestMet Microsoft.VisualStudio.TestTools.UnitTesting.DelayBackoffType Microsoft.VisualStudio.TestTools.UnitTesting.DelayBackoffType.Constant = 0 -> Microsoft.VisualStudio.TestTools.UnitTesting.DelayBackoffType Microsoft.VisualStudio.TestTools.UnitTesting.DelayBackoffType.Exponential = 1 -> Microsoft.VisualStudio.TestTools.UnitTesting.DelayBackoffType +Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute +Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.DependsOnAttribute(string! testMethodName) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.DependsOnAttribute(System.Type! testClass, string! testMethodName) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.DependsOnAttribute(System.Type! testClass) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.ProceedOnFailure.get -> bool +Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.ProceedOnFailure.set -> void +Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.TestClass.get -> System.Type? +Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.TestMethodName.get -> string? Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute.Description.get -> string? Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute.DescriptionAttribute(string? description) -> void @@ -446,6 +486,7 @@ Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataAttribute.GetData(System Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataAttribute.GetDisplayName(System.Reflection.MethodInfo! methodInfo, object?[]? data) -> string? Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataAttribute.IgnoreMessage.get -> string? Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataAttribute.IgnoreMessage.set -> void +Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceResolver Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceType Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceType.AutoDetect = 2 -> Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceType Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceType.Field = 3 -> Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceType @@ -522,6 +563,14 @@ Microsoft.VisualStudio.TestTools.UnitTesting.ParallelizeAttribute.Workers.set -> Microsoft.VisualStudio.TestTools.UnitTesting.PriorityAttribute Microsoft.VisualStudio.TestTools.UnitTesting.PriorityAttribute.Priority.get -> int Microsoft.VisualStudio.TestTools.UnitTesting.PriorityAttribute.PriorityAttribute(int priority) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode +Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode.Read = 1 -> Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode +Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode.ReadWrite = 0 -> Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode +Microsoft.VisualStudio.TestTools.UnitTesting.ResourceLockAttribute +Microsoft.VisualStudio.TestTools.UnitTesting.ResourceLockAttribute.Mode.get -> Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode +Microsoft.VisualStudio.TestTools.UnitTesting.ResourceLockAttribute.Mode.set -> void +Microsoft.VisualStudio.TestTools.UnitTesting.ResourceLockAttribute.Resource.get -> string! +Microsoft.VisualStudio.TestTools.UnitTesting.ResourceLockAttribute.ResourceLockAttribute(string! resource) -> void Microsoft.VisualStudio.TestTools.UnitTesting.RetryAttribute Microsoft.VisualStudio.TestTools.UnitTesting.RetryAttribute.BackoffType.get -> Microsoft.VisualStudio.TestTools.UnitTesting.DelayBackoffType Microsoft.VisualStudio.TestTools.UnitTesting.RetryAttribute.BackoffType.set -> void @@ -638,6 +687,7 @@ Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.NotRunnable = 8 -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.Passed = 2 -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.Timeout = 5 -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.Unknown = 7 -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome +Microsoft.VisualStudio.TestTools.UnitTesting.WellKnownResources Microsoft.VisualStudio.TestTools.UnitTesting.WorkItemAttribute Microsoft.VisualStudio.TestTools.UnitTesting.WorkItemAttribute.Id.get -> int Microsoft.VisualStudio.TestTools.UnitTesting.WorkItemAttribute.WorkItemAttribute(int id) -> void @@ -857,6 +907,8 @@ static Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert.IsSubsetOf( static Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert.IsSubsetOf(System.Collections.ICollection? subset, System.Collections.ICollection? superset) -> void static Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert.ReferenceEquals(object? objA, object? objB) -> bool static Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert.That.get -> Microsoft.VisualStudio.TestTools.UnitTesting.CollectionAssert! +static Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceResolver.RegisterDataProvider(System.Type! declaringType, string! sourceName, Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceType sourceType, System.Func! dataProvider) -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceResolver.RegisterDisplayNameProvider(System.Type! declaringType, string! methodName, System.Func! displayNameProvider) -> void static Microsoft.VisualStudio.TestTools.UnitTesting.Logging.Logger.LogMessage(string! format, params object?[]! args) -> void static Microsoft.VisualStudio.TestTools.UnitTesting.Logging.Logger.OnLogMessage -> Microsoft.VisualStudio.TestTools.UnitTesting.Logging.Logger.LogMessageHandler? static Microsoft.VisualStudio.TestTools.UnitTesting.StringAssert.Contains(string? value, string? substring, string? message) -> void diff --git a/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Unshipped.txt b/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Unshipped.txt index bfc3d4c5f0..7dc5c58110 100644 --- a/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Unshipped.txt +++ b/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Unshipped.txt @@ -1,53 +1 @@ #nullable enable -Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute -Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.DependsOnAttribute(System.Type! testClass) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.DependsOnAttribute(System.Type! testClass, string! testMethodName) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.DependsOnAttribute(string! testMethodName) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.ProceedOnFailure.get -> bool -Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.ProceedOnFailure.set -> void -Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.TestClass.get -> System.Type? -Microsoft.VisualStudio.TestTools.UnitTesting.DependsOnAttribute.TestMethodName.get -> string? -Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode -Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode.Read = 1 -> Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode -Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode.ReadWrite = 0 -> Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode -Microsoft.VisualStudio.TestTools.UnitTesting.ResourceLockAttribute -Microsoft.VisualStudio.TestTools.UnitTesting.ResourceLockAttribute.Mode.get -> Microsoft.VisualStudio.TestTools.UnitTesting.ResourceAccessMode -Microsoft.VisualStudio.TestTools.UnitTesting.ResourceLockAttribute.Mode.set -> void -Microsoft.VisualStudio.TestTools.UnitTesting.ResourceLockAttribute.Resource.get -> string! -Microsoft.VisualStudio.TestTools.UnitTesting.ResourceLockAttribute.ResourceLockAttribute(string! resource) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.WellKnownResources -const Microsoft.VisualStudio.TestTools.UnitTesting.WellKnownResources.Console = "System.Console" -> string! -const Microsoft.VisualStudio.TestTools.UnitTesting.WellKnownResources.CurrentDirectory = "System.Environment.CurrentDirectory" -> string! -const Microsoft.VisualStudio.TestTools.UnitTesting.WellKnownResources.EnvironmentVariables = "System.Environment.Variables" -> string! -[MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.RetryResult.AllResults.get -> System.Collections.Generic.IReadOnlyList! -Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceResolver -static Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceResolver.RegisterDataProvider(System.Type! declaringType, string! sourceName, Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceType sourceType, System.Func! dataProvider) -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.DynamicDataSourceResolver.RegisterDisplayNameProvider(System.Type! declaringType, string! methodName, System.Func! displayNameProvider) -> void -const Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.NoSeed = 0 -> int -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialDataAttribute -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialDataAttribute.CombinatorialDataAttribute() -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialDataAttribute.GetData(System.Reflection.MethodInfo! methodInfo) -> System.Collections.Generic.IEnumerable! -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialDataAttribute.GetDisplayName(System.Reflection.MethodInfo! methodInfo, object?[]? data) -> string? -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.CombinatorialRandomDataAttribute() -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Count.get -> int -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Count.set -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.GetValues(System.Reflection.ParameterInfo! parameter) -> object![]! -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Maximum.get -> int -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Maximum.set -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Minimum.get -> int -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Minimum.set -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Seed.get -> int -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRandomDataAttribute.Seed.set -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRangeAttribute -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRangeAttribute.CombinatorialRangeAttribute(int from, int count) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRangeAttribute.CombinatorialRangeAttribute(int from, int to, int step) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRangeAttribute.CombinatorialRangeAttribute(uint from, uint count) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRangeAttribute.CombinatorialRangeAttribute(uint from, uint to, uint step) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialRangeAttribute.GetValues(System.Reflection.ParameterInfo! parameter) -> object![]! -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialValuesAttribute -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialValuesAttribute.CombinatorialValuesAttribute(params object?[]? values) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialValuesAttribute.GetValues(System.Reflection.ParameterInfo! parameter) -> object?[]! -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.CombinatorialValuesAttribute.Values.get -> object?[]! -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.ICombinatorialValuesProvider -Microsoft.VisualStudio.TestTools.UnitTesting.Combinatorial.ICombinatorialValuesProvider.GetValues(System.Reflection.ParameterInfo! parameter) -> object?[]! diff --git a/src/TestFramework/TestFramework/PublicAPI/net/PublicAPI.Shipped.txt b/src/TestFramework/TestFramework/PublicAPI/net/PublicAPI.Shipped.txt index cc2b75b383..8ed23b496b 100644 --- a/src/TestFramework/TestFramework/PublicAPI/net/PublicAPI.Shipped.txt +++ b/src/TestFramework/TestFramework/PublicAPI/net/PublicAPI.Shipped.txt @@ -1,4 +1,6 @@ #nullable enable +[MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.TestFilterProviderAttribute +[MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.TestFilterProviderAttribute.TestFilterProviderAttribute() -> void Microsoft.VisualStudio.TestTools.UnitTesting.ArchitectureConditionAttribute Microsoft.VisualStudio.TestTools.UnitTesting.ArchitectureConditionAttribute.ArchitectureConditionAttribute(Microsoft.VisualStudio.TestTools.UnitTesting.ConditionMode mode, Microsoft.VisualStudio.TestTools.UnitTesting.TestArchitectures architectures) -> void Microsoft.VisualStudio.TestTools.UnitTesting.ArchitectureConditionAttribute.ArchitectureConditionAttribute(Microsoft.VisualStudio.TestTools.UnitTesting.TestArchitectures architectures) -> void @@ -16,6 +18,10 @@ Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStrin Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler.AssertCountInterpolatedStringHandler(int literalLength, int formattedCount, int count, System.ReadOnlyMemory collection, out bool shouldAppend) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler.AssertCountInterpolatedStringHandler(int literalLength, int formattedCount, int count, System.ReadOnlySpan collection, out bool shouldAppend) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler.AssertCountInterpolatedStringHandler(int literalLength, int formattedCount, int count, System.Span collection, out bool shouldAppend) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler.AssertCountInterpolatedStringHandler(int literalLength, int formattedCount, System.Memory collection, out bool shouldAppend) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler.AssertCountInterpolatedStringHandler(int literalLength, int formattedCount, System.ReadOnlyMemory collection, out bool shouldAppend) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler.AssertCountInterpolatedStringHandler(int literalLength, int formattedCount, System.ReadOnlySpan collection, out bool shouldAppend) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler.AssertCountInterpolatedStringHandler(int literalLength, int formattedCount, System.Span collection, out bool shouldAppend) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertGenericIsExactInstanceOfTypeInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value, int alignment = 0, string? format = null) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertGenericIsExactInstanceOfTypeInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertGenericIsInstanceOfTypeInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value, int alignment = 0, string? format = null) -> void @@ -32,6 +38,10 @@ Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsInstanceOfTypeInterp Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsInstanceOfTypeInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value, int alignment = 0, string? format = null) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler.AssertIsNotEmptyInterpolatedStringHandler(int literalLength, int formattedCount, System.Memory collection, out bool shouldAppend) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler.AssertIsNotEmptyInterpolatedStringHandler(int literalLength, int formattedCount, System.ReadOnlyMemory collection, out bool shouldAppend) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler.AssertIsNotEmptyInterpolatedStringHandler(int literalLength, int formattedCount, System.ReadOnlySpan collection, out bool shouldAppend) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler.AssertIsNotEmptyInterpolatedStringHandler(int literalLength, int formattedCount, System.Span collection, out bool shouldAppend) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotExactInstanceOfTypeInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value, int alignment = 0, string? format = null) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotExactInstanceOfTypeInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotInstanceOfTypeInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value, int alignment = 0, string? format = null) -> void @@ -52,6 +62,10 @@ Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertNonStrictThrowsInterpo Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertNonStrictThrowsInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value, int alignment = 0, string? format = null) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler.AssertSingleInterpolatedStringHandler(int literalLength, int formattedCount, System.Memory collection, out bool shouldAppend) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler.AssertSingleInterpolatedStringHandler(int literalLength, int formattedCount, System.ReadOnlyMemory collection, out bool shouldAppend) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler.AssertSingleInterpolatedStringHandler(int literalLength, int formattedCount, System.ReadOnlySpan collection, out bool shouldAppend) -> void +Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler.AssertSingleInterpolatedStringHandler(int literalLength, int formattedCount, System.Span collection, out bool shouldAppend) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertThrowsExactlyAsyncInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value, int alignment = 0, string? format = null) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertThrowsExactlyAsyncInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value) -> void Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertThrowsExactlyInterpolatedStringHandler.AppendFormatted(System.ReadOnlySpan value, int alignment = 0, string? format = null) -> void @@ -68,6 +82,126 @@ Microsoft.VisualStudio.TestTools.UnitTesting.TestArchitectures.X64 = 2 -> Micros Microsoft.VisualStudio.TestTools.UnitTesting.TestArchitectures.X86 = 1 -> Microsoft.VisualStudio.TestTools.UnitTesting.TestArchitectures override Microsoft.VisualStudio.TestTools.UnitTesting.ArchitectureConditionAttribute.GroupName.get -> string! override Microsoft.VisualStudio.TestTools.UnitTesting.ArchitectureConditionAttribute.IsConditionMet.get -> bool +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.Memory collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.Memory collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.ReadOnlyMemory collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.ReadOnlyMemory collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.ReadOnlySpan collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.Span collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.Span collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllNotNull(System.Memory collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllNotNull(System.ReadOnlyMemory collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllNotNull(System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllNotNull(System.Span collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.Memory collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.ReadOnlyMemory collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.Span collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.Type? expectedType, System.Memory collection, string? message = "", string! expectedTypeExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.Type? expectedType, System.ReadOnlyMemory collection, string? message = "", string! expectedTypeExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.Type? expectedType, System.ReadOnlySpan collection, string? message = "", string! expectedTypeExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.Type? expectedType, System.Span collection, string? message = "", string! expectedTypeExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.Memory expected, System.Memory actual, bool strict, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.Memory expected, System.Memory actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.ReadOnlyMemory expected, System.ReadOnlyMemory actual, bool strict, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.ReadOnlyMemory expected, System.ReadOnlyMemory actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.ReadOnlySpan expected, System.ReadOnlySpan actual, bool strict, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.ReadOnlySpan expected, System.ReadOnlySpan actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.Span expected, System.Span actual, bool strict, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.Span expected, System.Span actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.Memory notExpected, System.Memory actual, bool strict, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.Memory notExpected, System.Memory actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory actual, bool strict, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.ReadOnlySpan notExpected, System.ReadOnlySpan actual, bool strict, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.ReadOnlySpan notExpected, System.ReadOnlySpan actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.Span notExpected, System.Span actual, bool strict, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.Span notExpected, System.Span actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Memory notExpected, System.Memory actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Memory notExpected, System.Memory actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Memory notExpected, System.Memory actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Memory notExpected, System.Memory actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlySpan notExpected, System.ReadOnlySpan actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlySpan notExpected, System.ReadOnlySpan actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlySpan notExpected, System.ReadOnlySpan actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlySpan notExpected, System.ReadOnlySpan actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Span notExpected, System.Span actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Span notExpected, System.Span actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Span notExpected, System.Span actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Span notExpected, System.Span actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Memory expected, System.Memory actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Memory expected, System.Memory actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Memory expected, System.Memory actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Memory expected, System.Memory actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlyMemory expected, System.ReadOnlyMemory actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlyMemory expected, System.ReadOnlyMemory actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlyMemory expected, System.ReadOnlyMemory actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlyMemory expected, System.ReadOnlyMemory actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlySpan expected, System.ReadOnlySpan actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlySpan expected, System.ReadOnlySpan actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlySpan expected, System.ReadOnlySpan actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlySpan expected, System.ReadOnlySpan actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Span expected, System.Span actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Span expected, System.Span actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Span expected, System.Span actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Span expected, System.Span actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(System.Func! predicate, System.Memory collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(System.Func! predicate, System.ReadOnlyMemory collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(System.Func! predicate, System.ReadOnlySpan collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(System.Func! predicate, System.Span collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.Memory collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.Memory collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.ReadOnlyMemory collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.ReadOnlyMemory collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.ReadOnlySpan collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.ReadOnlySpan collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.Span collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.Span collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.Memory expected, System.Memory collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.Memory expected, System.Memory collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.ReadOnlyMemory expected, System.ReadOnlyMemory collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.ReadOnlyMemory expected, System.ReadOnlyMemory collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.ReadOnlySpan expected, System.ReadOnlySpan collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.ReadOnlySpan expected, System.ReadOnlySpan collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.Span expected, System.Span collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.Span expected, System.Span collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Func! predicate, System.Memory collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> T +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Func! predicate, System.ReadOnlyMemory collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> T +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Func! predicate, System.ReadOnlySpan collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> T +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Func! predicate, System.Span collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> T +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Memory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler message, string! collectionExpression = "") -> T +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Memory collection, string? message = "", string! collectionExpression = "") -> T +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.ReadOnlyMemory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler message, string! collectionExpression = "") -> T +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.ReadOnlyMemory collection, string? message = "", string! collectionExpression = "") -> T +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.ReadOnlySpan collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler message, string! collectionExpression = "") -> T +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> T +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Span collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler message, string! collectionExpression = "") -> T +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Span collection, string? message = "", string! collectionExpression = "") -> T +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(System.Func! predicate, System.Memory collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(System.Func! predicate, System.ReadOnlyMemory collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(System.Func! predicate, System.ReadOnlySpan collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(System.Func! predicate, System.Span collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.Memory collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.Memory collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.ReadOnlyMemory collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.ReadOnlyMemory collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.ReadOnlySpan collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.ReadOnlySpan collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.Span collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.Span collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.Memory notExpected, System.Memory collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.Memory notExpected, System.Memory collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.ReadOnlySpan notExpected, System.ReadOnlySpan collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.ReadOnlySpan notExpected, System.ReadOnlySpan collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.Span notExpected, System.Span collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.Span notExpected, System.Span collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.HasCount(int expected, System.Memory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler message, string! collectionExpression = "") -> void static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.HasCount(int expected, System.Memory collection, string? message = "", string! collectionExpression = "") -> void static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.HasCount(int expected, System.ReadOnlyMemory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler message, string! collectionExpression = "") -> void @@ -76,3 +210,19 @@ static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.HasCount(int expec static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.HasCount(int expected, System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> void static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.HasCount(int expected, System.Span collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler message, string! collectionExpression = "") -> void static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.HasCount(int expected, System.Span collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.Memory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler message, string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.Memory collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.ReadOnlyMemory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler message, string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.ReadOnlyMemory collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.ReadOnlySpan collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler message, string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.Span collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler message, string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.Span collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.Memory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler message, string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.Memory collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.ReadOnlyMemory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler message, string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.ReadOnlyMemory collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.ReadOnlySpan collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler message, string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.Span collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler message, string! collectionExpression = "") -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.Span collection, string? message = "", string! collectionExpression = "") -> void diff --git a/src/TestFramework/TestFramework/PublicAPI/net/PublicAPI.Unshipped.txt b/src/TestFramework/TestFramework/PublicAPI/net/PublicAPI.Unshipped.txt index 59a9e9d274..7dc5c58110 100644 --- a/src/TestFramework/TestFramework/PublicAPI/net/PublicAPI.Unshipped.txt +++ b/src/TestFramework/TestFramework/PublicAPI/net/PublicAPI.Unshipped.txt @@ -1,151 +1 @@ #nullable enable -Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler.AssertCountInterpolatedStringHandler(int literalLength, int formattedCount, System.Memory collection, out bool shouldAppend) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler.AssertCountInterpolatedStringHandler(int literalLength, int formattedCount, System.ReadOnlyMemory collection, out bool shouldAppend) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler.AssertCountInterpolatedStringHandler(int literalLength, int formattedCount, System.ReadOnlySpan collection, out bool shouldAppend) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler.AssertCountInterpolatedStringHandler(int literalLength, int formattedCount, System.Span collection, out bool shouldAppend) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler.AssertIsNotEmptyInterpolatedStringHandler(int literalLength, int formattedCount, System.Memory collection, out bool shouldAppend) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler.AssertIsNotEmptyInterpolatedStringHandler(int literalLength, int formattedCount, System.ReadOnlyMemory collection, out bool shouldAppend) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler.AssertIsNotEmptyInterpolatedStringHandler(int literalLength, int formattedCount, System.ReadOnlySpan collection, out bool shouldAppend) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler.AssertIsNotEmptyInterpolatedStringHandler(int literalLength, int formattedCount, System.Span collection, out bool shouldAppend) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler.AssertSingleInterpolatedStringHandler(int literalLength, int formattedCount, System.Memory collection, out bool shouldAppend) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler.AssertSingleInterpolatedStringHandler(int literalLength, int formattedCount, System.ReadOnlyMemory collection, out bool shouldAppend) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler.AssertSingleInterpolatedStringHandler(int literalLength, int formattedCount, System.ReadOnlySpan collection, out bool shouldAppend) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler.AssertSingleInterpolatedStringHandler(int literalLength, int formattedCount, System.Span collection, out bool shouldAppend) -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.Memory collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.Memory collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.ReadOnlyMemory collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.ReadOnlyMemory collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.ReadOnlySpan collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.Span collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllDistinct(System.Span collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllNotNull(System.Memory collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllNotNull(System.ReadOnlyMemory collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllNotNull(System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllNotNull(System.Span collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.Memory collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.ReadOnlyMemory collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.Span collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.Type? expectedType, System.Memory collection, string? message = "", string! expectedTypeExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.Type? expectedType, System.ReadOnlyMemory collection, string? message = "", string! expectedTypeExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.Type? expectedType, System.ReadOnlySpan collection, string? message = "", string! expectedTypeExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreAllOfType(System.Type? expectedType, System.Span collection, string? message = "", string! expectedTypeExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.Memory expected, System.Memory actual, bool strict, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.Memory expected, System.Memory actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.ReadOnlyMemory expected, System.ReadOnlyMemory actual, bool strict, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.ReadOnlyMemory expected, System.ReadOnlyMemory actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.ReadOnlySpan expected, System.ReadOnlySpan actual, bool strict, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.ReadOnlySpan expected, System.ReadOnlySpan actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.Span expected, System.Span actual, bool strict, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEquivalent(System.Span expected, System.Span actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.Memory notExpected, System.Memory actual, bool strict, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.Memory notExpected, System.Memory actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory actual, bool strict, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.ReadOnlySpan notExpected, System.ReadOnlySpan actual, bool strict, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.ReadOnlySpan notExpected, System.ReadOnlySpan actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.Span notExpected, System.Span actual, bool strict, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotEquivalent(System.Span notExpected, System.Span actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Memory notExpected, System.Memory actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Memory notExpected, System.Memory actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Memory notExpected, System.Memory actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Memory notExpected, System.Memory actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlySpan notExpected, System.ReadOnlySpan actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlySpan notExpected, System.ReadOnlySpan actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlySpan notExpected, System.ReadOnlySpan actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.ReadOnlySpan notExpected, System.ReadOnlySpan actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Span notExpected, System.Span actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Span notExpected, System.Span actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Span notExpected, System.Span actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreNotSequenceEqual(System.Span notExpected, System.Span actual, string? message = "", string! notExpectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Memory expected, System.Memory actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Memory expected, System.Memory actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Memory expected, System.Memory actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Memory expected, System.Memory actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlyMemory expected, System.ReadOnlyMemory actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlyMemory expected, System.ReadOnlyMemory actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlyMemory expected, System.ReadOnlyMemory actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlyMemory expected, System.ReadOnlyMemory actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlySpan expected, System.ReadOnlySpan actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlySpan expected, System.ReadOnlySpan actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlySpan expected, System.ReadOnlySpan actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.ReadOnlySpan expected, System.ReadOnlySpan actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Span expected, System.Span actual, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Span expected, System.Span actual, System.Collections.Generic.IEqualityComparer? comparer, Microsoft.VisualStudio.TestTools.UnitTesting.SequenceOrder order, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Span expected, System.Span actual, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreSequenceEqual(System.Span expected, System.Span actual, string? message = "", string! expectedExpression = "", string! actualExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(System.Func! predicate, System.Memory collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(System.Func! predicate, System.ReadOnlyMemory collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(System.Func! predicate, System.ReadOnlySpan collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(System.Func! predicate, System.Span collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.Memory collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.Memory collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.ReadOnlyMemory collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.ReadOnlyMemory collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.ReadOnlySpan collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.ReadOnlySpan collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.Span collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.Contains(T expected, System.Span collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.Memory expected, System.Memory collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.Memory expected, System.Memory collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.ReadOnlyMemory expected, System.ReadOnlyMemory collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.ReadOnlyMemory expected, System.ReadOnlyMemory collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.ReadOnlySpan expected, System.ReadOnlySpan collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.ReadOnlySpan expected, System.ReadOnlySpan collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.Span expected, System.Span collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsAll(System.Span expected, System.Span collection, string? message = "", string! expectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Func! predicate, System.Memory collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> T -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Func! predicate, System.ReadOnlyMemory collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> T -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Func! predicate, System.ReadOnlySpan collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> T -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Func! predicate, System.Span collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> T -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Memory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler message, string! collectionExpression = "") -> T -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Memory collection, string? message = "", string! collectionExpression = "") -> T -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.ReadOnlyMemory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler message, string! collectionExpression = "") -> T -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.ReadOnlyMemory collection, string? message = "", string! collectionExpression = "") -> T -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.ReadOnlySpan collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler message, string! collectionExpression = "") -> T -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> T -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Span collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertSingleInterpolatedStringHandler message, string! collectionExpression = "") -> T -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.ContainsSingle(System.Span collection, string? message = "", string! collectionExpression = "") -> T -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(System.Func! predicate, System.Memory collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(System.Func! predicate, System.ReadOnlyMemory collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(System.Func! predicate, System.ReadOnlySpan collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(System.Func! predicate, System.Span collection, string? message = "", string! predicateExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.Memory collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.Memory collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.ReadOnlyMemory collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.ReadOnlyMemory collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.ReadOnlySpan collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.ReadOnlySpan collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.Span collection, System.Collections.Generic.IEqualityComparer! comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContain(T notExpected, System.Span collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.Memory notExpected, System.Memory collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.Memory notExpected, System.Memory collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.ReadOnlyMemory notExpected, System.ReadOnlyMemory collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.ReadOnlySpan notExpected, System.ReadOnlySpan collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.ReadOnlySpan notExpected, System.ReadOnlySpan collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.Span notExpected, System.Span collection, System.Collections.Generic.IEqualityComparer? comparer, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.DoesNotContainAll(System.Span notExpected, System.Span collection, string? message = "", string! notExpectedExpression = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.Memory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler message, string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.Memory collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.ReadOnlyMemory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler message, string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.ReadOnlyMemory collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.ReadOnlySpan collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler message, string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.Span collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertCountInterpolatedStringHandler message, string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsEmpty(System.Span collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.Memory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler message, string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.Memory collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.ReadOnlyMemory collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler message, string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.ReadOnlyMemory collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.ReadOnlySpan collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler message, string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.ReadOnlySpan collection, string? message = "", string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.Span collection, ref Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AssertIsNotEmptyInterpolatedStringHandler message, string! collectionExpression = "") -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.IsNotEmpty(System.Span collection, string? message = "", string! collectionExpression = "") -> void -[MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.TestFilterProviderAttribute -[MSTESTEXP]Microsoft.VisualStudio.TestTools.UnitTesting.TestFilterProviderAttribute.TestFilterProviderAttribute() -> void From a81dff85c81f88b1cd0421619225b1037341d201 Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Wed, 2 Sep 2026 21:30:07 +0200 Subject: [PATCH 02/33] Bump CodeCoverage to 18.11.0 by @Evangelink in #10952 (backport to rel/4.4) (#10955) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- eng/Versions.props | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/eng/Versions.props b/eng/Versions.props index 3a09e67b80..d894f56a5e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -8,7 +8,7 @@ 11.0.0-beta.26451.4 - 18.11.0-preview.26451.4 + 18.11.0 4.4.0-preview.26451.11 2.4.0-preview.26451.10 From c53b77e7f855d6d9d147053940938e38aa8abcc2 Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Wed, 2 Sep 2026 23:18:10 +0200 Subject: [PATCH 03/33] Move analyzer releases to shipped by @Evangelink in #10961 (backport to rel/4.4) (#10962) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../AnalyzerReleases.Shipped.md | 19 +++++++++++++++++++ .../AnalyzerReleases.Unshipped.md | 17 ----------------- .../AnalyzerReleases.Shipped.md | 13 +++++++++++++ .../AnalyzerReleases.Unshipped.md | 11 ----------- 4 files changed, 32 insertions(+), 28 deletions(-) diff --git a/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Shipped.md b/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Shipped.md index fe447bae07..941e16d6d1 100644 --- a/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Shipped.md +++ b/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Shipped.md @@ -1,3 +1,22 @@ +## Release 4.4.0 + +### New Rules + +Rule ID | Category | Severity | Notes +--------|----------|----------|------- +MSTEST0072 | Usage | Warning | AssemblyFixtureProviderNotSupportedWithNativeAotAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0072) +MSTEST0073 | Usage | Info | PreferConstantForResourceLockAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0073) +MSTEST0074 | Usage | Info | UndeclaredProcessGlobalStateMutationAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0074) +MSTEST0075 | Usage | Info | CurrentDirectoryMutationUnderParallelizationAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0075) +MSTEST0076 | Usage | Info | CultureMutationUnderParallelizationAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0076) +MSTEST0077 | Usage | Info | SharedFileSystemPathInTestAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0077) +MSTEST0078 | Usage | Warning | DependsOnShouldBeValidAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0078) +MSTEST0079 | Usage | Info | UseArchitectureConditionAttributeInsteadOfRuntimeCheckAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0079) +MSTEST0080 | Usage | Info | UseCIConditionAttributeInsteadOfEnvironmentCheckAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0080) +MSTEST0081 | Usage | Warning | TestFilterProviderShouldBeValidAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0081) +MSTEST0082 | Usage | Warning | InheritedMemberFromDifferentMSTestVersionAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0082) +MSTEST0083 | Usage | Info | UseExecutableConditionAttributeInsteadOfProcessCheckAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0083) + ## Release 4.3.0 ### New Rules diff --git a/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Unshipped.md b/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Unshipped.md index a9175981a0..f2b7fad657 100644 --- a/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Unshipped.md +++ b/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Unshipped.md @@ -1,19 +1,2 @@ ; Unshipped analyzer release ; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md - -### New Rules - -Rule ID | Category | Severity | Notes ---------|----------|----------|------- -MSTEST0072 | Usage | Warning | AssemblyFixtureProviderNotSupportedWithNativeAotAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0072) -MSTEST0073 | Usage | Info | PreferConstantForResourceLockAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0073) -MSTEST0074 | Usage | Info | UndeclaredProcessGlobalStateMutationAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0074) -MSTEST0075 | Usage | Info | CurrentDirectoryMutationUnderParallelizationAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0075) -MSTEST0076 | Usage | Info | CultureMutationUnderParallelizationAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0076) -MSTEST0077 | Usage | Info | SharedFileSystemPathInTestAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0077) -MSTEST0078 | Usage | Warning | DependsOnShouldBeValidAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0078) -MSTEST0079 | Usage | Info | UseArchitectureConditionAttributeInsteadOfRuntimeCheckAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0079) -MSTEST0080 | Usage | Info | UseCIConditionAttributeInsteadOfEnvironmentCheckAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0080) -MSTEST0081 | Usage | Warning | TestFilterProviderShouldBeValidAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0081) -MSTEST0082 | Usage | Warning | InheritedMemberFromDifferentMSTestVersionAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0082) -MSTEST0083 | Usage | Info | UseExecutableConditionAttributeInsteadOfProcessCheckAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0083) diff --git a/src/Analyzers/MSTest.SourceGeneration/AnalyzerReleases.Shipped.md b/src/Analyzers/MSTest.SourceGeneration/AnalyzerReleases.Shipped.md index f50bb1fe21..afeed73731 100644 --- a/src/Analyzers/MSTest.SourceGeneration/AnalyzerReleases.Shipped.md +++ b/src/Analyzers/MSTest.SourceGeneration/AnalyzerReleases.Shipped.md @@ -1,2 +1,15 @@ ; Shipped analyzer releases ; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md + +## Release 4.4.0 + +### New Rules + +Rule ID | Category | Severity | Notes +--------|----------|----------|------- +MSTEST0069 | Usage | Warning | InheritedTestClassAttributeWithSourceGeneratorAnalyzer +AOTSG0001 | MSTest.AotReflection | Warning | StaticTestClass +AOTSG0002 | MSTest.AotReflection | Warning | GenericTestClass +AOTSG0003 | MSTest.AotReflection | Warning | InaccessibleTestClass +AOTSG0004 | MSTest.AotReflection | Warning | GenericTestMethod +AOTSG0005 | MSTest.AotReflection | Warning | ByRefParameter diff --git a/src/Analyzers/MSTest.SourceGeneration/AnalyzerReleases.Unshipped.md b/src/Analyzers/MSTest.SourceGeneration/AnalyzerReleases.Unshipped.md index 1c6b2c37df..f2b7fad657 100644 --- a/src/Analyzers/MSTest.SourceGeneration/AnalyzerReleases.Unshipped.md +++ b/src/Analyzers/MSTest.SourceGeneration/AnalyzerReleases.Unshipped.md @@ -1,13 +1,2 @@ ; Unshipped analyzer release ; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md - -### New Rules - -Rule ID | Category | Severity | Notes ---------|----------|----------|------- -MSTEST0069 | Usage | Warning | InheritedTestClassAttributeWithSourceGeneratorAnalyzer -AOTSG0001 | MSTest.AotReflection | Warning | StaticTestClass -AOTSG0002 | MSTest.AotReflection | Warning | GenericTestClass -AOTSG0003 | MSTest.AotReflection | Warning | InaccessibleTestClass -AOTSG0004 | MSTest.AotReflection | Warning | GenericTestMethod -AOTSG0005 | MSTest.AotReflection | Warning | ByRefParameter From a3ae78ea31d7933c60d55b9125d6a499db8a3076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Wed, 2 Sep 2026 23:18:32 +0200 Subject: [PATCH 04/33] Prepare rel/4.4 for bug fix release (#10959) --- eng/Versions.props | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eng/Versions.props b/eng/Versions.props index d894f56a5e..657b8854df 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -1,9 +1,9 @@ - 4.4.0 + 4.4.1 - 2.4.0 + 2.4.1 preview From c872a0233f794f929638433f2670adce0956db8c Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Thu, 3 Sep 2026 09:51:37 +0200 Subject: [PATCH 05/33] Localized file check-in by OneLocBuild Task: Build definition ID 1218: Build ID 3065095 by @dotnet-oneloc-localization[bot] in #10967 (backport to rel/4.4) (#10979) Co-authored-by: dotnet-oneloc-localization[bot] <310689744+dotnet-oneloc-localization[bot]@users.noreply.github.com> --- .../Resources/xlf/PlatformResources.es.xlf | 6 +++--- .../Resources/xlf/PlatformResources.it.xlf | 4 ++-- .../Resources/xlf/PlatformResources.ru.xlf | 6 +++--- .../Resources/xlf/PlatformResources.tr.xlf | 6 +++--- .../Resources/xlf/PlatformResources.zh-Hant.xlf | 6 +++--- 5 files changed, 14 insertions(+), 14 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf index 58f2c83532..28d02d5aac 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf @@ -646,17 +646,17 @@ The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. - The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. + La entrada "{0}" de la sección "{1}" del archivo testconfig.json ("{2}") debe proporcionar un valor escalar no nulo o una matriz no vacía de valores escalares. {0} is the option name. {1} is the section name. {2} is the path to the testconfig.json file. {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} In testconfig.json under 'commandLineOptionDefaults': {0} - In testconfig.json under 'commandLineOptionDefaults': {0} + En testconfig.json en "commandLineOptionDefaults": {0} {0} is the underlying validation error message (unknown option, arity mismatch, invalid arguments...). {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. - The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. + La opción "--{0}" se lee durante el arranque de la plataforma (antes de que se cargue el archivo testconfig.json) y, por tanto, se debe pasar en la línea de comandos en lugar de declararse en "{1}" en testconfig.json. {0} is the bare bootstrap-only option name without the leading "--" (e.g. config-file, diagnostic, diagnostic-verbosity); the "--" prefix is already in the format string. {1} is the JSON section name. {Locked="--"}{Locked="testconfig.json"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf index 622a90f34e..d7791f4685 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf @@ -646,7 +646,7 @@ The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. - The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. + La voce '{0}' nella sezione '{1}' del file testconfig.json ('{2}') deve fornire un valore scalare non null, oppure una matrice non vuota di valori scalari. {0} is the option name. {1} is the section name. {2} is the path to the testconfig.json file. {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} @@ -656,7 +656,7 @@ The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. - The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. + L'opzione '--{0}' viene letta durante il bootstrap della piattaforma (prima del caricamento del file testconfig.json) e deve quindi essere passata sulla riga di comando anziché dichiarata in '{1}' in testconfig.json. {0} is the bare bootstrap-only option name without the leading "--" (e.g. config-file, diagnostic, diagnostic-verbosity); the "--" prefix is already in the format string. {1} is the JSON section name. {Locked="--"}{Locked="testconfig.json"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf index 17619850bd..1de40ab8f6 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf @@ -646,17 +646,17 @@ The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. - The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. + Запись "{0}" в разделе "{1}" файла testconfig.json ("{2}") должна содержать ненулевое скалярное значение или непустой массив скалярных значений. {0} is the option name. {1} is the section name. {2} is the path to the testconfig.json file. {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} In testconfig.json under 'commandLineOptionDefaults': {0} - In testconfig.json under 'commandLineOptionDefaults': {0} + В testconfig.json в разделе commandLineOptionDefaults: {0} {0} is the underlying validation error message (unknown option, arity mismatch, invalid arguments...). {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. - The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. + Параметр "--{0}" считывается во время начальной загрузки платформы (до загрузки файла testconfig.json) и поэтому должен передаваться в командной строке, а не указываться в "{1}" в testconfig.json. {0} is the bare bootstrap-only option name without the leading "--" (e.g. config-file, diagnostic, diagnostic-verbosity); the "--" prefix is already in the format string. {1} is the JSON section name. {Locked="--"}{Locked="testconfig.json"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf index 81bc477c11..f9382b8eb7 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf @@ -646,17 +646,17 @@ The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. - The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. + testconfig.json dosyasında ('{2}') '{1}' bölümü altındaki '{0}' girdisi boş olmayan bir skaler değer ya da skaler değerlerden oluşan boş olmayan bir dizi sağlamalıdır. {0} is the option name. {1} is the section name. {2} is the path to the testconfig.json file. {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} In testconfig.json under 'commandLineOptionDefaults': {0} - In testconfig.json under 'commandLineOptionDefaults': {0} + testconfig.json dosyasındaki 'commandLineOptionDefaults' altında: {0} {0} is the underlying validation error message (unknown option, arity mismatch, invalid arguments...). {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. - The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. + '--{0}' seçeneği, platformda önyükleme sırasında (testconfig.json dosyası yüklenmeden önce) okunur. Bu nedenle, testconfig.json içinde '{1}' altında değil komut satırında bildirilmelidir. {0} is the bare bootstrap-only option name without the leading "--" (e.g. config-file, diagnostic, diagnostic-verbosity); the "--" prefix is already in the format string. {1} is the JSON section name. {Locked="--"}{Locked="testconfig.json"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf index 4e0cacadef..eb97215ea8 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf @@ -646,17 +646,17 @@ The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. - The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. + testconfig.json 檔案 ('{2}') 中區段 '{1}' 下的 '{0}' 項目必須提供非 null 的純量值,或非空的純量值陣列。 {0} is the option name. {1} is the section name. {2} is the path to the testconfig.json file. {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} In testconfig.json under 'commandLineOptionDefaults': {0} - In testconfig.json under 'commandLineOptionDefaults': {0} + 在 'commandLineOptionDefaults' 之下的 testconfig.json 中: {0} {0} is the underlying validation error message (unknown option, arity mismatch, invalid arguments...). {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. - The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. + 選項 '--{0}' 在平台啟動程序期間讀取 (載入 testconfig.json 檔案之前),因此必須在命令列上傳遞,而不是在 testconfig.json 中的 '{1}' 之下宣告。 {0} is the bare bootstrap-only option name without the leading "--" (e.g. config-file, diagnostic, diagnostic-verbosity); the "--" prefix is already in the format string. {1} is the JSON section name. {Locked="--"}{Locked="testconfig.json"} From ede50d7f45d96dd32bf9a44d9341eb53f1461e4a Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Thu, 3 Sep 2026 12:14:40 +0200 Subject: [PATCH 06/33] Document experimental API instability by @Evangelink in #10985 (backport to rel/4.4) (#10986) Co-authored-by: Copilot Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .github/copilot-instructions.md | 3 +++ .../TestApplicationBuilderExtensions.cs | 3 +++ .../CtrfReportExtensions.cs | 3 +++ .../HtmlReportExtensions.cs | 3 +++ .../JUnitReportExtensions.cs | 3 +++ ...osoftExtensionsLoggingBuilderExtensions.cs | 3 +++ .../VideoRecorderExtensions.cs | 5 +++- .../VideoRecorderOptions.cs | 17 ++++++++++++- .../ChatClientProviderExtensions.cs | 3 +++ .../IChatClientProvider.cs | 3 +++ ...rtifactPostProcessingApplicationBuilder.cs | 3 +++ .../Builder/ITestApplicationBuilder.cs | 9 +++++++ .../Builder/TestApplicationBuilder.cs | 20 ++++++++++++++++ .../IBannerMessageOwnerCapability.cs | 3 +++ .../IGracefulStopTestExecutionCapability.cs | 6 +++++ .../TestFrameworkCapabilitiesExtensions.cs | 3 +++ .../CommandLineOptionsProviderBase.cs | 3 +++ .../CommandLine/ICommandLineManager.cs | 3 +++ .../CommandLine/OptionRecord.cs | 3 +++ .../CommandLine/ParseResult.cs | 3 +++ .../Configurations/IConfigurationManager.cs | 3 +++ .../Configurations/IConfigurationProvider.cs | 3 +++ .../Configurations/IConfigurationSource.cs | 3 +++ .../IHierarchicalConfigurationProvider.cs | 3 +++ .../IArtifactPostProcessingManager.cs | 3 +++ .../IArtifactPostProcessor.cs | 24 +++++++++++++++++++ .../Extensions/IBlockingDataConsumer.cs | 5 +++- .../Helpers/System/IClock.cs | 3 +++ .../TestApplicationBuilderExtensions.cs | 6 +++++ .../Logging/ILoggerProvider.cs | 3 +++ .../Logging/ILoggingManager.cs | 3 +++ .../Messages/FileArtifacts.cs | 12 ++++++++++ .../Requests/CompositeTestExecutionFilter.cs | 3 +++ .../IExecuteRequestCompletionNotifier.cs | 3 +++ .../Requests/ITestExecutionFilterProvider.cs | 3 +++ .../Requests/TestExecutionFilterContext.cs | 3 +++ .../Requests/TestExecutionFilterOperator.cs | 3 +++ .../Requests/TestExecutionRequestKind.cs | 3 +++ .../Requests/TestExecutionRequestOrigin.cs | 3 +++ .../Requests/TreeNodeFilter/TreeNodeFilter.cs | 3 +++ .../Services/IClientCapabilities.cs | 3 +++ .../Services/IClientInfo.cs | 3 +++ .../Services/IPlatformInformation.cs | 3 +++ .../Services/ServiceProviderExtensions.cs | 6 +++++ .../TestFramework/ExecuteRequestContext.cs | 3 +++ ...ITestHostControllerConnectionAuthorizer.cs | 3 +++ .../ITestHostControllerManager.cs | 6 +++++ .../TestHostControllers/ITestHostHandle.cs | 5 +++- .../TestHostControllers/ITestHostLauncher.cs | 5 +++- .../TestHostLaunchContext.cs | 5 +++- .../ITestHostExecutionOrchestrator.cs | 3 +++ ...TestHostOrchestratorApplicationLifetime.cs | 3 +++ .../ITestHostOrchestratorExtension.cs | 3 +++ .../ITestHostOrchestratorManager.cs | 3 +++ .../Microsoft.Testing.Platform/Tools/ITool.cs | 3 +++ .../Tools/IToolCommandLineOptionsProvider.cs | 3 +++ .../Tools/IToolsManager.cs | 3 +++ .../TestFramework.Extensions/ITestRunInfo.cs | 3 +++ .../TestFramework.Extensions/PlannedTest.cs | 3 +++ .../TestFramework.Extensions/TestContext.cs | 3 +++ .../TestFramework.Extensions/TestRun.cs | 3 +++ .../Assertions/Assert.AddValueFormatter.cs | 8 ++++++- .../TestFramework/Assertions/Assert.Scope.cs | 5 +++- .../Lifecycle/TestFilterProviderAttribute.cs | 5 +++- .../TestFilterProviderAttributeOfT.cs | 3 +++ .../TestMethod/RetryBaseAttribute.cs | 3 +++ .../Attributes/TestMethod/RetryContext.cs | 3 +++ .../Attributes/TestMethod/RetryResult.cs | 3 +++ .../TestFramework/Filtering/ITestFilter.cs | 5 +++- .../Filtering/TestFilterAction.cs | 5 +++- .../Filtering/TestFilterContext.cs | 5 +++- .../Filtering/TestFilterResult.cs | 5 +++- ...tDataSourceEmptyDataSourceExceptionInfo.cs | 3 +++ 73 files changed, 312 insertions(+), 13 deletions(-) diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index adeef7d8ee..01c488fb8f 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -99,6 +99,9 @@ When making change to resource files, you MUST: - Public API for MSTest and Microsoft.Testing.Platform MUST NOT use `init` accessors. - Exception: Existing APIs in Microsoft.Testing.Platform, because changing them right now would be a breaking change. However, we MUST NOT introduce **new** APIs using `init` accessors. - IMPORTANT: Make sure to apply this rule strictly both during PR review and when working on code changes. +- Every API marked with `[Experimental]` MUST include this sentence in its XML documentation ``: `This API is experimental. It may change, break, or be removed at any time without notice.` Documentation tooling does not reliably surface the attribute itself. + - Add the sentence in a `` when `` already contains other text; otherwise, add a new `` block. + - Apply this rule to experimental members as well as types. ## Testing Guidelines diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/TestApplicationBuilderExtensions.cs b/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/TestApplicationBuilderExtensions.cs index e64ee0b43c..08545a07ff 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/TestApplicationBuilderExtensions.cs +++ b/src/Platform/Microsoft.Testing.Extensions.AzureFoundry/TestApplicationBuilderExtensions.cs @@ -11,6 +11,9 @@ namespace Microsoft.Testing.Extensions.AzureFoundry; /// /// Extension methods for configuring Azure Foundry services. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public static class TestApplicationBuilderExtensions { diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/CtrfReportExtensions.cs b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/CtrfReportExtensions.cs index 856abdd899..01c5e9954e 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/CtrfReportExtensions.cs +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/CtrfReportExtensions.cs @@ -10,6 +10,9 @@ namespace Microsoft.Testing.Extensions; /// /// Provides extension methods for adding CTRF (Common Test Report Format) report generation to a test application. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public static class CtrfReportExtensions { diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/HtmlReportExtensions.cs b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/HtmlReportExtensions.cs index a9c0f2e929..51ca23d8d3 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/HtmlReportExtensions.cs +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/HtmlReportExtensions.cs @@ -10,6 +10,9 @@ namespace Microsoft.Testing.Extensions; /// /// Provides extension methods for adding HTML report generation to a test application. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public static class HtmlReportExtensions { diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/JUnitReportExtensions.cs b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/JUnitReportExtensions.cs index 49238b2995..5c5269d244 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/JUnitReportExtensions.cs +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/JUnitReportExtensions.cs @@ -10,6 +10,9 @@ namespace Microsoft.Testing.Extensions; /// /// Provides extension methods for adding JUnit XML report generation to a test application. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public static class JUnitReportExtensions { diff --git a/src/Platform/Microsoft.Testing.Extensions.Logging/MicrosoftExtensionsLoggingBuilderExtensions.cs b/src/Platform/Microsoft.Testing.Extensions.Logging/MicrosoftExtensionsLoggingBuilderExtensions.cs index 06a7c4c280..8eddcdda05 100644 --- a/src/Platform/Microsoft.Testing.Extensions.Logging/MicrosoftExtensionsLoggingBuilderExtensions.cs +++ b/src/Platform/Microsoft.Testing.Extensions.Logging/MicrosoftExtensionsLoggingBuilderExtensions.cs @@ -14,6 +14,9 @@ namespace Microsoft.Testing.Extensions; /// Extension methods on for forwarding the /// Microsoft Testing Platform diagnostic logs to Microsoft.Extensions.Logging providers. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public static class MicrosoftExtensionsLoggingBuilderExtensions { diff --git a/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/VideoRecorderExtensions.cs b/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/VideoRecorderExtensions.cs index d2d7aa97aa..d0c1009f5b 100644 --- a/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/VideoRecorderExtensions.cs +++ b/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/VideoRecorderExtensions.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using Microsoft.Testing.Extensions.VideoRecorder; @@ -12,6 +12,9 @@ namespace Microsoft.Testing.Extensions; /// /// Provides extension methods to add the video recorder to a test application. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public static class VideoRecorderExtensions { diff --git a/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/VideoRecorderOptions.cs b/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/VideoRecorderOptions.cs index 51ade0db01..a4e02b9b02 100644 --- a/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/VideoRecorderOptions.cs +++ b/src/Platform/Microsoft.Testing.Extensions.VideoRecorder/VideoRecorderOptions.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. namespace Microsoft.Testing.Extensions.VideoRecorder; @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Extensions.VideoRecorder; /// /// The output video format produced by the recorder. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public enum VideoRecorderFormat { @@ -26,6 +29,9 @@ public enum VideoRecorderFormat /// /// Controls when a recorded video is persisted (kept and attached to the test session). /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public enum VideoRecorderPersistenceMode { @@ -45,6 +51,9 @@ public enum VideoRecorderPersistenceMode /// /// Controls how recordings are split across a test run. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public enum VideoCaptureGranularity { @@ -65,6 +74,9 @@ public enum VideoCaptureGranularity /// /// What the recorder captures. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public enum VideoCaptureSource { @@ -83,6 +95,9 @@ public enum VideoCaptureSource /// /// Options controlling how the video recorder captures and encodes video. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public sealed class VideoRecorderOptions { diff --git a/src/Platform/Microsoft.Testing.Platform.AI/ChatClientProviderExtensions.cs b/src/Platform/Microsoft.Testing.Platform.AI/ChatClientProviderExtensions.cs index e8221b4c11..154f5a7dcd 100644 --- a/src/Platform/Microsoft.Testing.Platform.AI/ChatClientProviderExtensions.cs +++ b/src/Platform/Microsoft.Testing.Platform.AI/ChatClientProviderExtensions.cs @@ -10,6 +10,9 @@ namespace Microsoft.Testing.Platform.AI; /// /// Extension methods for chat client provider. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public static class ChatClientProviderExtensions { diff --git a/src/Platform/Microsoft.Testing.Platform.AI/IChatClientProvider.cs b/src/Platform/Microsoft.Testing.Platform.AI/IChatClientProvider.cs index 72b766f9f9..9d03f9b4ae 100644 --- a/src/Platform/Microsoft.Testing.Platform.AI/IChatClientProvider.cs +++ b/src/Platform/Microsoft.Testing.Platform.AI/IChatClientProvider.cs @@ -8,6 +8,9 @@ namespace Microsoft.Testing.Platform.AI; /// /// Provider interface for creating and configuring chat clients. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/experimental")] public interface IChatClientProvider { diff --git a/src/Platform/Microsoft.Testing.Platform/Builder/IArtifactPostProcessingApplicationBuilder.cs b/src/Platform/Microsoft.Testing.Platform/Builder/IArtifactPostProcessingApplicationBuilder.cs index 6c0f4ffc60..c3cc7e6c81 100644 --- a/src/Platform/Microsoft.Testing.Platform/Builder/IArtifactPostProcessingApplicationBuilder.cs +++ b/src/Platform/Microsoft.Testing.Platform/Builder/IArtifactPostProcessingApplicationBuilder.cs @@ -9,6 +9,9 @@ namespace Microsoft.Testing.Platform.Builder; /// /// Represents a test application builder that supports registering artifact post-processors and tools. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IArtifactPostProcessingApplicationBuilder : ITestApplicationBuilder { diff --git a/src/Platform/Microsoft.Testing.Platform/Builder/ITestApplicationBuilder.cs b/src/Platform/Microsoft.Testing.Platform/Builder/ITestApplicationBuilder.cs index 7ad9101abb..4fc4ce2ab2 100644 --- a/src/Platform/Microsoft.Testing.Platform/Builder/ITestApplicationBuilder.cs +++ b/src/Platform/Microsoft.Testing.Platform/Builder/ITestApplicationBuilder.cs @@ -30,6 +30,9 @@ public interface ITestApplicationBuilder /// /// Gets the test host orchestrator manager. /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] ITestHostOrchestratorManager TestHostOrchestrator { get; } @@ -41,12 +44,18 @@ public interface ITestApplicationBuilder /// /// Gets the configuration manager. /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] IConfigurationManager Configuration { get; } /// /// Gets the logging manager. /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] ILoggingManager Logging { get; } diff --git a/src/Platform/Microsoft.Testing.Platform/Builder/TestApplicationBuilder.cs b/src/Platform/Microsoft.Testing.Platform/Builder/TestApplicationBuilder.cs index 5e83502579..ed2a1410a7 100644 --- a/src/Platform/Microsoft.Testing.Platform/Builder/TestApplicationBuilder.cs +++ b/src/Platform/Microsoft.Testing.Platform/Builder/TestApplicationBuilder.cs @@ -57,6 +57,10 @@ internal TestApplicationBuilder( public ITestHostControllersManager TestHostControllers => _testHostBuilder.TestHostControllers; + /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] ITestHostOrchestratorManager ITestApplicationBuilder.TestHostOrchestrator => _testHostBuilder.TestHostOrchestrator; @@ -65,17 +69,33 @@ internal TestApplicationBuilder( public ICommandLineManager CommandLine => _testHostBuilder.CommandLine; + /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public IConfigurationManager Configuration => _testHostBuilder.Configuration; + /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public ILoggingManager Logging => _testHostBuilder.Logging; internal ITelemetryManager Telemetry => _testHostBuilder.Telemetry; + /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public IArtifactPostProcessingManager ArtifactPostProcessing => _testHostBuilder.ArtifactPostProcessing; + /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public IToolsManager Tools => _testHostBuilder.Tools; diff --git a/src/Platform/Microsoft.Testing.Platform/Capabilities/TestFramework/IBannerMessageOwnerCapability.cs b/src/Platform/Microsoft.Testing.Platform/Capabilities/TestFramework/IBannerMessageOwnerCapability.cs index 97f4c19d24..754d3802e3 100644 --- a/src/Platform/Microsoft.Testing.Platform/Capabilities/TestFramework/IBannerMessageOwnerCapability.cs +++ b/src/Platform/Microsoft.Testing.Platform/Capabilities/TestFramework/IBannerMessageOwnerCapability.cs @@ -10,6 +10,9 @@ namespace Microsoft.Testing.Platform.Capabilities.TestFramework; /// This capability implementation allows to abstract away the various conditions that the test framework may need to consider /// to decide whether or not the banner message should be displayed. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IBannerMessageOwnerCapability : ITestFrameworkCapability { diff --git a/src/Platform/Microsoft.Testing.Platform/Capabilities/TestFramework/IGracefulStopTestExecutionCapability.cs b/src/Platform/Microsoft.Testing.Platform/Capabilities/TestFramework/IGracefulStopTestExecutionCapability.cs index 6e60a16121..b65e57183f 100644 --- a/src/Platform/Microsoft.Testing.Platform/Capabilities/TestFramework/IGracefulStopTestExecutionCapability.cs +++ b/src/Platform/Microsoft.Testing.Platform/Capabilities/TestFramework/IGracefulStopTestExecutionCapability.cs @@ -9,6 +9,9 @@ namespace Microsoft.Testing.Platform.Capabilities.TestFramework; /// /// /// Test frameworks can choose to run any needed cleanup when cancellation is requested. +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IGracefulStopTestExecutionCapability : ITestFrameworkCapability @@ -27,6 +30,9 @@ public interface IGracefulStopTestExecutionCapability : ITestFrameworkCapability /// /// Test frameworks should implement this capability when a successful stop request can be a no-op because /// execution has already completed. +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IGracefulStopTestExecutionResultCapability : IGracefulStopTestExecutionCapability diff --git a/src/Platform/Microsoft.Testing.Platform/Capabilities/TestFramework/TestFrameworkCapabilitiesExtensions.cs b/src/Platform/Microsoft.Testing.Platform/Capabilities/TestFramework/TestFrameworkCapabilitiesExtensions.cs index 821b5280cb..225bb58251 100644 --- a/src/Platform/Microsoft.Testing.Platform/Capabilities/TestFramework/TestFrameworkCapabilitiesExtensions.cs +++ b/src/Platform/Microsoft.Testing.Platform/Capabilities/TestFramework/TestFrameworkCapabilitiesExtensions.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Capabilities.TestFramework; /// /// Provides extension methods for . /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public static class TestFrameworkCapabilitiesExtensions { diff --git a/src/Platform/Microsoft.Testing.Platform/CommandLine/CommandLineOptionsProviderBase.cs b/src/Platform/Microsoft.Testing.Platform/CommandLine/CommandLineOptionsProviderBase.cs index 495deaa77d..34a1f224e4 100644 --- a/src/Platform/Microsoft.Testing.Platform/CommandLine/CommandLineOptionsProviderBase.cs +++ b/src/Platform/Microsoft.Testing.Platform/CommandLine/CommandLineOptionsProviderBase.cs @@ -17,6 +17,9 @@ namespace Microsoft.Testing.Platform.CommandLine; /// that first-party platform extensions can derive from it across the assembly boundary without an /// InternalsVisibleTo grant. Its shape is an implementation detail; do not depend on it from /// your own code. +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [EditorBrowsable(EditorBrowsableState.Never)] [Experimental("TPINTERNAL")] diff --git a/src/Platform/Microsoft.Testing.Platform/CommandLine/ICommandLineManager.cs b/src/Platform/Microsoft.Testing.Platform/CommandLine/ICommandLineManager.cs index 481bd37a20..67988f3287 100644 --- a/src/Platform/Microsoft.Testing.Platform/CommandLine/ICommandLineManager.cs +++ b/src/Platform/Microsoft.Testing.Platform/CommandLine/ICommandLineManager.cs @@ -20,6 +20,9 @@ public interface ICommandLineManager /// Adds a command line options provider. /// /// The factory method for creating the command line options provider, given a service provider. + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] void AddProvider(Func commandLineProviderFactory); } diff --git a/src/Platform/Microsoft.Testing.Platform/CommandLine/OptionRecord.cs b/src/Platform/Microsoft.Testing.Platform/CommandLine/OptionRecord.cs index 5d46af9e6b..a1d67cbbc0 100644 --- a/src/Platform/Microsoft.Testing.Platform/CommandLine/OptionRecord.cs +++ b/src/Platform/Microsoft.Testing.Platform/CommandLine/OptionRecord.cs @@ -8,6 +8,9 @@ namespace Microsoft.Testing.Platform.CommandLine; /// /// The name of the option. /// The arguments associated to this option. +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public sealed class CommandLineParseOption(string name, string[] arguments) { diff --git a/src/Platform/Microsoft.Testing.Platform/CommandLine/ParseResult.cs b/src/Platform/Microsoft.Testing.Platform/CommandLine/ParseResult.cs index b10f66f160..7aa9f94e89 100644 --- a/src/Platform/Microsoft.Testing.Platform/CommandLine/ParseResult.cs +++ b/src/Platform/Microsoft.Testing.Platform/CommandLine/ParseResult.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.CommandLine; /// /// Represents the result of parsing a command line. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public sealed class CommandLineParseResult : IEquatable { diff --git a/src/Platform/Microsoft.Testing.Platform/Configurations/IConfigurationManager.cs b/src/Platform/Microsoft.Testing.Platform/Configurations/IConfigurationManager.cs index d43fc84eac..6939710a94 100644 --- a/src/Platform/Microsoft.Testing.Platform/Configurations/IConfigurationManager.cs +++ b/src/Platform/Microsoft.Testing.Platform/Configurations/IConfigurationManager.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Configurations; /// /// Represents a configuration manager. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IConfigurationManager { diff --git a/src/Platform/Microsoft.Testing.Platform/Configurations/IConfigurationProvider.cs b/src/Platform/Microsoft.Testing.Platform/Configurations/IConfigurationProvider.cs index 7f7a06e1ba..cd36335697 100644 --- a/src/Platform/Microsoft.Testing.Platform/Configurations/IConfigurationProvider.cs +++ b/src/Platform/Microsoft.Testing.Platform/Configurations/IConfigurationProvider.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Configurations; /// /// Represents a configuration provider. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IConfigurationProvider { diff --git a/src/Platform/Microsoft.Testing.Platform/Configurations/IConfigurationSource.cs b/src/Platform/Microsoft.Testing.Platform/Configurations/IConfigurationSource.cs index 2552264c2d..bfadf33bd3 100644 --- a/src/Platform/Microsoft.Testing.Platform/Configurations/IConfigurationSource.cs +++ b/src/Platform/Microsoft.Testing.Platform/Configurations/IConfigurationSource.cs @@ -9,6 +9,9 @@ namespace Microsoft.Testing.Platform.Configurations; /// /// Represents a configuration source. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IConfigurationSource : IExtension { diff --git a/src/Platform/Microsoft.Testing.Platform/Configurations/IHierarchicalConfigurationProvider.cs b/src/Platform/Microsoft.Testing.Platform/Configurations/IHierarchicalConfigurationProvider.cs index 6322c56d4f..ec92d0abf8 100644 --- a/src/Platform/Microsoft.Testing.Platform/Configurations/IHierarchicalConfigurationProvider.cs +++ b/src/Platform/Microsoft.Testing.Platform/Configurations/IHierarchicalConfigurationProvider.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Configurations; /// /// Represents a configuration provider that exposes hierarchical configuration sections. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IHierarchicalConfigurationProvider : IConfigurationProvider { diff --git a/src/Platform/Microsoft.Testing.Platform/Extensions/ArtifactPostProcessing/IArtifactPostProcessingManager.cs b/src/Platform/Microsoft.Testing.Platform/Extensions/ArtifactPostProcessing/IArtifactPostProcessingManager.cs index 256dcb76ba..86987f3b26 100644 --- a/src/Platform/Microsoft.Testing.Platform/Extensions/ArtifactPostProcessing/IArtifactPostProcessingManager.cs +++ b/src/Platform/Microsoft.Testing.Platform/Extensions/ArtifactPostProcessing/IArtifactPostProcessingManager.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing; /// /// Registers artifact post-processors with a test application. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IArtifactPostProcessingManager { diff --git a/src/Platform/Microsoft.Testing.Platform/Extensions/ArtifactPostProcessing/IArtifactPostProcessor.cs b/src/Platform/Microsoft.Testing.Platform/Extensions/ArtifactPostProcessing/IArtifactPostProcessor.cs index 3ad6fb47ec..3467b97643 100644 --- a/src/Platform/Microsoft.Testing.Platform/Extensions/ArtifactPostProcessing/IArtifactPostProcessor.cs +++ b/src/Platform/Microsoft.Testing.Platform/Extensions/ArtifactPostProcessing/IArtifactPostProcessor.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Extensions.ArtifactPostProcessing; /// /// Processes artifacts of one or more well-known kinds after test execution completes. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IArtifactPostProcessor : IExtension { @@ -66,6 +69,9 @@ public interface IArtifactPostProcessor : IExtension /// /// Orchestrators that support this capability advertise that support in the handshake response before a test /// session starts. Producers must preserve their standalone behavior when the capability is unavailable. +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IArtifactPostProcessorRequiresPostProcessing : IArtifactPostProcessor; @@ -73,6 +79,9 @@ public interface IArtifactPostProcessorRequiresPostProcessing : IArtifactPostPro /// /// Describes the test run that produced artifacts supplied to an . /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public sealed class ArtifactPostProcessingContext { @@ -150,6 +159,9 @@ public ArtifactPostProcessingContext( /// /// Describes authoritative run-level values supplied by the outer test orchestrator. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public sealed class ArtifactPostProcessingRunSummary { @@ -243,6 +255,9 @@ public ArtifactPostProcessingRunSummary( /// /// Specifies how the supplied artifacts relate to one another. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public enum ArtifactPostProcessingMode { @@ -261,6 +276,9 @@ public enum ArtifactPostProcessingMode /// /// Specifies why a test run was truncated before every scheduled test module completed. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public enum ArtifactPostProcessingTruncationReason { @@ -283,6 +301,9 @@ public enum ArtifactPostProcessingTruncationReason /// /// Describes an artifact supplied to an . /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public sealed class InputArtifact { @@ -339,6 +360,9 @@ public InputArtifact( /// /// Describes an artifact produced by an . /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public sealed class ProcessedArtifact { diff --git a/src/Platform/Microsoft.Testing.Platform/Extensions/IBlockingDataConsumer.cs b/src/Platform/Microsoft.Testing.Platform/Extensions/IBlockingDataConsumer.cs index d0e43d4293..91ab4bd269 100644 --- a/src/Platform/Microsoft.Testing.Platform/Extensions/IBlockingDataConsumer.cs +++ b/src/Platform/Microsoft.Testing.Platform/Extensions/IBlockingDataConsumer.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. namespace Microsoft.Testing.Platform.Extensions; @@ -31,6 +31,9 @@ namespace Microsoft.Testing.Platform.Extensions; /// risk is specifically re-entrant publishing that routes back to this consumer under a /// different producer UID. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IBlockingDataConsumer : IDataConsumer; diff --git a/src/Platform/Microsoft.Testing.Platform/Helpers/System/IClock.cs b/src/Platform/Microsoft.Testing.Platform/Helpers/System/IClock.cs index f67ecde9ee..af5a1aaff7 100644 --- a/src/Platform/Microsoft.Testing.Platform/Helpers/System/IClock.cs +++ b/src/Platform/Microsoft.Testing.Platform/Helpers/System/IClock.cs @@ -15,6 +15,9 @@ namespace Microsoft.Testing.Platform.Helpers; /// InternalsVisibleTo grant (its instances are provided by the platform's service provider, /// so it cannot be source-embedded). Its shape is an implementation detail; do not depend on it /// from your own code. +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [EditorBrowsable(EditorBrowsableState.Never)] [Experimental("TPINTERNAL")] diff --git a/src/Platform/Microsoft.Testing.Platform/Helpers/TestApplicationBuilderExtensions.cs b/src/Platform/Microsoft.Testing.Platform/Helpers/TestApplicationBuilderExtensions.cs index 8819526d0e..e1d5fda997 100644 --- a/src/Platform/Microsoft.Testing.Platform/Helpers/TestApplicationBuilderExtensions.cs +++ b/src/Platform/Microsoft.Testing.Platform/Helpers/TestApplicationBuilderExtensions.cs @@ -12,6 +12,9 @@ namespace Microsoft.Testing.Platform.Helpers; /// /// A collection of extension methods for . /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public static class TestApplicationBuilderExtensions { @@ -38,6 +41,9 @@ public static void AddTestExecutionFilterProvider( /// /// The test application builder. /// The extension owner of the maximum failed tests service. + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public static void AddMaximumFailedTestsService(this ITestApplicationBuilder builder, IExtension extension) => builder.CommandLine.AddProvider(serviceProvider => new MaxFailedTestsCommandLineOptionsProvider(extension, serviceProvider)); diff --git a/src/Platform/Microsoft.Testing.Platform/Logging/ILoggerProvider.cs b/src/Platform/Microsoft.Testing.Platform/Logging/ILoggerProvider.cs index 7c0aea6f1b..faa654618d 100644 --- a/src/Platform/Microsoft.Testing.Platform/Logging/ILoggerProvider.cs +++ b/src/Platform/Microsoft.Testing.Platform/Logging/ILoggerProvider.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Logging; /// /// Represents a logger provider that can be used to create loggers. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface ILoggerProvider { diff --git a/src/Platform/Microsoft.Testing.Platform/Logging/ILoggingManager.cs b/src/Platform/Microsoft.Testing.Platform/Logging/ILoggingManager.cs index de1779fdfb..1a1863c234 100644 --- a/src/Platform/Microsoft.Testing.Platform/Logging/ILoggingManager.cs +++ b/src/Platform/Microsoft.Testing.Platform/Logging/ILoggingManager.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Logging; /// /// Represents a logging manager that can be used to add logger providers. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface ILoggingManager { diff --git a/src/Platform/Microsoft.Testing.Platform/Messages/FileArtifacts.cs b/src/Platform/Microsoft.Testing.Platform/Messages/FileArtifacts.cs index c1659e6dd6..c405b879ad 100644 --- a/src/Platform/Microsoft.Testing.Platform/Messages/FileArtifacts.cs +++ b/src/Platform/Microsoft.Testing.Platform/Messages/FileArtifacts.cs @@ -37,6 +37,9 @@ public FileArtifact(FileInfo fileInfo, string displayName, string? description = /// the same kind for consolidation. when the producer does not /// declare a kind. /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public FileArtifact(FileInfo fileInfo, string displayName, string? description, string? kind) : base(displayName, description) @@ -55,6 +58,9 @@ public FileArtifact(FileInfo fileInfo, string displayName, string? description, /// (e.g. microsoft.testing.trx), or when the producer /// did not declare one. /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public string? Kind { get; } @@ -129,6 +135,9 @@ public SessionFileArtifact(SessionUid sessionUid, FileInfo fileInfo, string disp /// the same kind for consolidation. when the producer does not /// declare a kind. /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public SessionFileArtifact(SessionUid sessionUid, FileInfo fileInfo, string displayName, string? description, string? kind) : base(displayName, description, sessionUid) @@ -147,6 +156,9 @@ public SessionFileArtifact(SessionUid sessionUid, FileInfo fileInfo, string disp /// (e.g. microsoft.testing.trx), or when the producer /// did not declare one. /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public string? Kind { get; } diff --git a/src/Platform/Microsoft.Testing.Platform/Requests/CompositeTestExecutionFilter.cs b/src/Platform/Microsoft.Testing.Platform/Requests/CompositeTestExecutionFilter.cs index ffd73d1b1a..b5853674a0 100644 --- a/src/Platform/Microsoft.Testing.Platform/Requests/CompositeTestExecutionFilter.cs +++ b/src/Platform/Microsoft.Testing.Platform/Requests/CompositeTestExecutionFilter.cs @@ -8,6 +8,9 @@ namespace Microsoft.Testing.Platform.Requests; /// /// Represents an explicit composition of test execution filters. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public sealed class CompositeTestExecutionFilter : ITestExecutionFilter { diff --git a/src/Platform/Microsoft.Testing.Platform/Requests/IExecuteRequestCompletionNotifier.cs b/src/Platform/Microsoft.Testing.Platform/Requests/IExecuteRequestCompletionNotifier.cs index db45d96743..c376d6b1ba 100644 --- a/src/Platform/Microsoft.Testing.Platform/Requests/IExecuteRequestCompletionNotifier.cs +++ b/src/Platform/Microsoft.Testing.Platform/Requests/IExecuteRequestCompletionNotifier.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Requests; /// /// Interface to notify the completion of a request. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IExecuteRequestCompletionNotifier { diff --git a/src/Platform/Microsoft.Testing.Platform/Requests/ITestExecutionFilterProvider.cs b/src/Platform/Microsoft.Testing.Platform/Requests/ITestExecutionFilterProvider.cs index 8d284785b0..fbbb112479 100644 --- a/src/Platform/Microsoft.Testing.Platform/Requests/ITestExecutionFilterProvider.cs +++ b/src/Platform/Microsoft.Testing.Platform/Requests/ITestExecutionFilterProvider.cs @@ -8,6 +8,9 @@ namespace Microsoft.Testing.Platform.Requests; /// /// Provides an additional constraint for a test execution request. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface ITestExecutionFilterProvider : IExtension { diff --git a/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionFilterContext.cs b/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionFilterContext.cs index 039163507f..104e1629ea 100644 --- a/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionFilterContext.cs +++ b/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionFilterContext.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Requests; /// /// Describes the request for which a test execution filter provider is being evaluated. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public sealed class TestExecutionFilterContext { diff --git a/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionFilterOperator.cs b/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionFilterOperator.cs index a935e1a31c..a987473d3c 100644 --- a/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionFilterOperator.cs +++ b/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionFilterOperator.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Requests; /// /// Specifies how child test execution filters are combined. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public enum TestExecutionFilterOperator { diff --git a/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionRequestKind.cs b/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionRequestKind.cs index 85f855e7df..3368e62e63 100644 --- a/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionRequestKind.cs +++ b/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionRequestKind.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Requests; /// /// Specifies the kind of test execution request. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public enum TestExecutionRequestKind { diff --git a/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionRequestOrigin.cs b/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionRequestOrigin.cs index bdbf810ea9..0b8187db8a 100644 --- a/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionRequestOrigin.cs +++ b/src/Platform/Microsoft.Testing.Platform/Requests/TestExecutionRequestOrigin.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Requests; /// /// Specifies where a test execution request originated. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public enum TestExecutionRequestOrigin { diff --git a/src/Platform/Microsoft.Testing.Platform/Requests/TreeNodeFilter/TreeNodeFilter.cs b/src/Platform/Microsoft.Testing.Platform/Requests/TreeNodeFilter/TreeNodeFilter.cs index 301c3de513..4779761190 100644 --- a/src/Platform/Microsoft.Testing.Platform/Requests/TreeNodeFilter/TreeNodeFilter.cs +++ b/src/Platform/Microsoft.Testing.Platform/Requests/TreeNodeFilter/TreeNodeFilter.cs @@ -10,6 +10,9 @@ namespace Microsoft.Testing.Platform.Requests; /// /// A tree based filter for test execution. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public sealed partial class TreeNodeFilter : ITestExecutionFilter { diff --git a/src/Platform/Microsoft.Testing.Platform/Services/IClientCapabilities.cs b/src/Platform/Microsoft.Testing.Platform/Services/IClientCapabilities.cs index 77c0c816b4..6faf893b4a 100644 --- a/src/Platform/Microsoft.Testing.Platform/Services/IClientCapabilities.cs +++ b/src/Platform/Microsoft.Testing.Platform/Services/IClientCapabilities.cs @@ -10,6 +10,9 @@ namespace Microsoft.Testing.Platform.Services; /// Capabilities are opt-in: unless a client explicitly declares a capability, the platform assumes the /// most conservative (default) behavior. This lets a test framework tailor its behavior to how the client /// intends to consume the results without having to guess based on the environment or transport. +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IClientCapabilities diff --git a/src/Platform/Microsoft.Testing.Platform/Services/IClientInfo.cs b/src/Platform/Microsoft.Testing.Platform/Services/IClientInfo.cs index ff4f76a30e..8aadb21e22 100644 --- a/src/Platform/Microsoft.Testing.Platform/Services/IClientInfo.cs +++ b/src/Platform/Microsoft.Testing.Platform/Services/IClientInfo.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Services; /// /// Represents the client information. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IClientInfo { diff --git a/src/Platform/Microsoft.Testing.Platform/Services/IPlatformInformation.cs b/src/Platform/Microsoft.Testing.Platform/Services/IPlatformInformation.cs index 98959a6647..f7854c9090 100644 --- a/src/Platform/Microsoft.Testing.Platform/Services/IPlatformInformation.cs +++ b/src/Platform/Microsoft.Testing.Platform/Services/IPlatformInformation.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Services; /// /// Provides information about the platform. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IPlatformInformation { diff --git a/src/Platform/Microsoft.Testing.Platform/Services/ServiceProviderExtensions.cs b/src/Platform/Microsoft.Testing.Platform/Services/ServiceProviderExtensions.cs index 4080af534b..37c2724fae 100644 --- a/src/Platform/Microsoft.Testing.Platform/Services/ServiceProviderExtensions.cs +++ b/src/Platform/Microsoft.Testing.Platform/Services/ServiceProviderExtensions.cs @@ -120,6 +120,9 @@ public static IOutputDevice GetOutputDevice(this IServiceProvider serviceProvide /// /// The service provider. /// The IClientInfo object. + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public static IClientInfo GetClientInfo(this IServiceProvider serviceProvider) => serviceProvider.GetRequiredServiceInternal(); @@ -211,6 +214,9 @@ internal static ITestSessionContext GetTestSessionContext(this IServiceProvider /// /// The service provider. /// The platform . + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [EditorBrowsable(EditorBrowsableState.Never)] [Experimental("TPINTERNAL")] public static IClock GetSystemClock(this IServiceProvider serviceProvider) diff --git a/src/Platform/Microsoft.Testing.Platform/TestFramework/ExecuteRequestContext.cs b/src/Platform/Microsoft.Testing.Platform/TestFramework/ExecuteRequestContext.cs index 3ee6ba6e0e..b8286b776b 100644 --- a/src/Platform/Microsoft.Testing.Platform/TestFramework/ExecuteRequestContext.cs +++ b/src/Platform/Microsoft.Testing.Platform/TestFramework/ExecuteRequestContext.cs @@ -23,6 +23,9 @@ public sealed class ExecuteRequestContext /// The message bus. /// The request completion notifier. /// The cancellation token. + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public ExecuteRequestContext(IRequest request, IMessageBus messageBus, IExecuteRequestCompletionNotifier executeRequestCompletionNotifier, CancellationToken cancellationToken) diff --git a/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostControllerConnectionAuthorizer.cs b/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostControllerConnectionAuthorizer.cs index 496943dfee..ecd54527f1 100644 --- a/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostControllerConnectionAuthorizer.cs +++ b/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostControllerConnectionAuthorizer.cs @@ -40,6 +40,9 @@ namespace Microsoft.Testing.Platform.Extensions.TestHostControllers; /// where a sandboxed application is an AppContainer and the values below are its package SID. Elsewhere /// the returned values are ignored and the connection is created unchanged. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface ITestHostControllerConnectionAuthorizer diff --git a/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostControllerManager.cs b/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostControllerManager.cs index 35cea9d046..070484ae49 100644 --- a/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostControllerManager.cs +++ b/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostControllerManager.cs @@ -44,6 +44,9 @@ void AddProcessLifetimeHandler(CompositeExtensionFactory compositeServiceF /// default Process.Start behavior. At most one launcher can be registered. /// /// The factory method that creates the test host launcher. + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] void AddTestHostLauncher(Func testHostLauncherFactory); @@ -53,6 +56,9 @@ void AddProcessLifetimeHandler(CompositeExtensionFactory compositeServiceF /// /// The type of the test host launcher. /// The factory method that creates the composite service. + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] void AddTestHostLauncher(CompositeExtensionFactory compositeServiceFactory) where T : class, ITestHostLauncher; diff --git a/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostHandle.cs b/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostHandle.cs index 9f701c57b1..e029c84eac 100644 --- a/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostHandle.cs +++ b/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostHandle.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. namespace Microsoft.Testing.Platform.Extensions.TestHostControllers; @@ -14,6 +14,9 @@ namespace Microsoft.Testing.Platform.Extensions.TestHostControllers; /// lifetime of the test host and disposes it (via ) once the host has /// exited, so implementations should release any OS resources they hold (process objects, sockets, /// container clients, …) in . +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface ITestHostHandle : IDisposable diff --git a/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostLauncher.cs b/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostLauncher.cs index 62ec4c7241..204ce1f4a7 100644 --- a/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostLauncher.cs +++ b/src/Platform/Microsoft.Testing.Platform/TestHostControllers/ITestHostLauncher.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. namespace Microsoft.Testing.Platform.Extensions.TestHostControllers; @@ -14,6 +14,9 @@ namespace Microsoft.Testing.Platform.Extensions.TestHostControllers; /// carry extension-specific connection metadata such as Retry. Launchers must forward the supplied context /// opaquely rather than require one specific handshake. The launcher does not have to start a local OS /// process as long as it returns an the platform can monitor. +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface ITestHostLauncher : ITestHostControllersExtension diff --git a/src/Platform/Microsoft.Testing.Platform/TestHostControllers/TestHostLaunchContext.cs b/src/Platform/Microsoft.Testing.Platform/TestHostControllers/TestHostLaunchContext.cs index 7081677fa4..1ca4ccd1c3 100644 --- a/src/Platform/Microsoft.Testing.Platform/TestHostControllers/TestHostLaunchContext.cs +++ b/src/Platform/Microsoft.Testing.Platform/TestHostControllers/TestHostLaunchContext.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. namespace Microsoft.Testing.Platform.Extensions.TestHostControllers; @@ -7,6 +7,9 @@ namespace Microsoft.Testing.Platform.Extensions.TestHostControllers; /// Carries the fully prepared information the platform would have used to start the test host, /// passed to an . /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public sealed class TestHostLaunchContext { diff --git a/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostExecutionOrchestrator.cs b/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostExecutionOrchestrator.cs index 382f43ee0b..a5fece6d29 100644 --- a/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostExecutionOrchestrator.cs +++ b/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostExecutionOrchestrator.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Extensions.TestHostOrchestrator; /// /// Represents an extension that orchestrates test host execution. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface ITestHostExecutionOrchestrator : ITestHostOrchestratorExtension { diff --git a/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostOrchestratorApplicationLifetime.cs b/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostOrchestratorApplicationLifetime.cs index 8e1118cdd6..9ebd1ec6ac 100644 --- a/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostOrchestratorApplicationLifetime.cs +++ b/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostOrchestratorApplicationLifetime.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Extensions.TestHostOrchestrator; /// /// Represents the application lifetime for a test host orchestrator. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface ITestHostOrchestratorApplicationLifetime : ITestHostOrchestratorExtension { diff --git a/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostOrchestratorExtension.cs b/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostOrchestratorExtension.cs index 84046d93b2..4f0ebe53d1 100644 --- a/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostOrchestratorExtension.cs +++ b/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostOrchestratorExtension.cs @@ -6,5 +6,8 @@ namespace Microsoft.Testing.Platform.Extensions.TestHostOrchestrator; /// /// Represents an extension for test host orchestrators. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface ITestHostOrchestratorExtension : IExtension; diff --git a/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostOrchestratorManager.cs b/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostOrchestratorManager.cs index 86a9163699..594080d6b0 100644 --- a/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostOrchestratorManager.cs +++ b/src/Platform/Microsoft.Testing.Platform/TestHostOrchestrator/ITestHostOrchestratorManager.cs @@ -8,6 +8,9 @@ namespace Microsoft.Testing.Platform.TestHostOrchestrator; /// /// Represents a manager for test host orchestrators. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface ITestHostOrchestratorManager { diff --git a/src/Platform/Microsoft.Testing.Platform/Tools/ITool.cs b/src/Platform/Microsoft.Testing.Platform/Tools/ITool.cs index 9cb5aeed0e..3abbbf1cfe 100644 --- a/src/Platform/Microsoft.Testing.Platform/Tools/ITool.cs +++ b/src/Platform/Microsoft.Testing.Platform/Tools/ITool.cs @@ -9,6 +9,9 @@ namespace Microsoft.Testing.Platform.Tools; /// Represents a non-test command that can be invoked by passing its /// as the first positional command-line argument. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface ITool : IExtension { diff --git a/src/Platform/Microsoft.Testing.Platform/Tools/IToolCommandLineOptionsProvider.cs b/src/Platform/Microsoft.Testing.Platform/Tools/IToolCommandLineOptionsProvider.cs index d84b344e3d..a2327daa2b 100644 --- a/src/Platform/Microsoft.Testing.Platform/Tools/IToolCommandLineOptionsProvider.cs +++ b/src/Platform/Microsoft.Testing.Platform/Tools/IToolCommandLineOptionsProvider.cs @@ -8,6 +8,9 @@ namespace Microsoft.Testing.Platform.Tools; /// /// Represents command-line options that apply to a specific . /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IToolCommandLineOptionsProvider : ICommandLineOptionsProvider { diff --git a/src/Platform/Microsoft.Testing.Platform/Tools/IToolsManager.cs b/src/Platform/Microsoft.Testing.Platform/Tools/IToolsManager.cs index eccbeefb43..0c4b2455e5 100644 --- a/src/Platform/Microsoft.Testing.Platform/Tools/IToolsManager.cs +++ b/src/Platform/Microsoft.Testing.Platform/Tools/IToolsManager.cs @@ -6,6 +6,9 @@ namespace Microsoft.Testing.Platform.Tools; /// /// Registers tools with a test application. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("TPEXP", UrlFormat = "https://aka.ms/testingplatform/diagnostics#{0}")] public interface IToolsManager { diff --git a/src/TestFramework/TestFramework.Extensions/ITestRunInfo.cs b/src/TestFramework/TestFramework.Extensions/ITestRunInfo.cs index cc56fa1226..71fe1ea96e 100644 --- a/src/TestFramework/TestFramework.Extensions/ITestRunInfo.cs +++ b/src/TestFramework/TestFramework.Extensions/ITestRunInfo.cs @@ -10,6 +10,9 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting; /// Unlike , which describes the test currently executing, an /// describes the run as a whole and is queryable from any code reachable /// during a test run (for example helpers, fixtures, or [AssemblyInitialize] methods). +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public interface ITestRunInfo diff --git a/src/TestFramework/TestFramework.Extensions/PlannedTest.cs b/src/TestFramework/TestFramework.Extensions/PlannedTest.cs index 2ed218210a..9af8edeae7 100644 --- a/src/TestFramework/TestFramework.Extensions/PlannedTest.cs +++ b/src/TestFramework/TestFramework.Extensions/PlannedTest.cs @@ -12,6 +12,9 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting; /// They are intended for read-only inspection (for example to decide whether expensive setup is /// needed in [AssemblyInitialize]); they do not carry execution-time state such as outcome, /// exceptions, or data-driven rows. +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public sealed class PlannedTest diff --git a/src/TestFramework/TestFramework.Extensions/TestContext.cs b/src/TestFramework/TestFramework.Extensions/TestContext.cs index cc431e9c75..4d2d59d25c 100644 --- a/src/TestFramework/TestFramework.Extensions/TestContext.cs +++ b/src/TestFramework/TestFramework.Extensions/TestContext.cs @@ -23,6 +23,9 @@ public abstract class TestContext /// /// This property returns the context for the currently executing test. When accessed outside of a test execution, /// it returns . + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// /// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public static TestContext? Current diff --git a/src/TestFramework/TestFramework.Extensions/TestRun.cs b/src/TestFramework/TestFramework.Extensions/TestRun.cs index 74f228ceab..f88716f1de 100644 --- a/src/TestFramework/TestFramework.Extensions/TestRun.cs +++ b/src/TestFramework/TestFramework.Extensions/TestRun.cs @@ -15,6 +15,9 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting; /// The information is scoped to the current process and (on .NET Framework) the current /// AppDomain. Cross-process or cross-AppDomain test runs each have their own snapshot. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public static class TestRun diff --git a/src/TestFramework/TestFramework/Assertions/Assert.AddValueFormatter.cs b/src/TestFramework/TestFramework/Assertions/Assert.AddValueFormatter.cs index 8b0bad4e54..38c786105f 100644 --- a/src/TestFramework/TestFramework/Assertions/Assert.AddValueFormatter.cs +++ b/src/TestFramework/TestFramework/Assertions/Assert.AddValueFormatter.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. namespace Microsoft.VisualStudio.TestTools.UnitTesting; @@ -44,6 +44,9 @@ public sealed partial class Assert /// [ClassInitialize]: all tests in the containing class. /// [AssemblyInitialize]: all tests in the containing assembly. /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// /// /// /// @@ -98,6 +101,9 @@ public static IDisposable AddValueFormatter(Func formatter) /// side-effect free; perform any expensive setup outside the factory and have it return a formatter that /// closes over the precomputed state. /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// /// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public static IDisposable AddValueFormatter(Func, Func> factory) diff --git a/src/TestFramework/TestFramework/Assertions/Assert.Scope.cs b/src/TestFramework/TestFramework/Assertions/Assert.Scope.cs index a46fad8ad3..2320ac16cb 100644 --- a/src/TestFramework/TestFramework/Assertions/Assert.Scope.cs +++ b/src/TestFramework/TestFramework/Assertions/Assert.Scope.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. namespace Microsoft.VisualStudio.TestTools.UnitTesting; @@ -25,6 +25,9 @@ public sealed partial class Assert /// // AssertFailedException is thrown here with all collected failures. /// /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public static IDisposable Scope() => new AssertScope(); } diff --git a/src/TestFramework/TestFramework/Attributes/Lifecycle/TestFilterProviderAttribute.cs b/src/TestFramework/TestFramework/Attributes/Lifecycle/TestFilterProviderAttribute.cs index b9d1ef37d7..855cd42846 100644 --- a/src/TestFramework/TestFramework/Attributes/Lifecycle/TestFilterProviderAttribute.cs +++ b/src/TestFramework/TestFramework/Attributes/Lifecycle/TestFilterProviderAttribute.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. namespace Microsoft.VisualStudio.TestTools.UnitTesting; @@ -33,6 +33,9 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting; /// before [ClassInitialize], and before the test constructor is invoked, so dropping or /// skipping a test through avoids paying any of those costs. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// /// /// diff --git a/src/TestFramework/TestFramework/Attributes/Lifecycle/TestFilterProviderAttributeOfT.cs b/src/TestFramework/TestFramework/Attributes/Lifecycle/TestFilterProviderAttributeOfT.cs index 523b4c3389..469b43bb77 100644 --- a/src/TestFramework/TestFramework/Attributes/Lifecycle/TestFilterProviderAttributeOfT.cs +++ b/src/TestFramework/TestFramework/Attributes/Lifecycle/TestFilterProviderAttributeOfT.cs @@ -46,6 +46,9 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting; /// #endif /// /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// /// /// diff --git a/src/TestFramework/TestFramework/Attributes/TestMethod/RetryBaseAttribute.cs b/src/TestFramework/TestFramework/Attributes/TestMethod/RetryBaseAttribute.cs index c5110d6291..93f844c6c7 100644 --- a/src/TestFramework/TestFramework/Attributes/TestMethod/RetryBaseAttribute.cs +++ b/src/TestFramework/TestFramework/Attributes/TestMethod/RetryBaseAttribute.cs @@ -34,6 +34,9 @@ public abstract class RetryBaseAttribute : Attribute /// reported, tagged as superseded, so tooling can surface the retry (attempt count, flaky detection, /// per-attempt error messages). The VSTest host receives only the final result. /// + /// + /// This API is experimental. It may change, break, or be removed at any time without notice. + /// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] protected internal abstract Task ExecuteAsync(RetryContext retryContext); diff --git a/src/TestFramework/TestFramework/Attributes/TestMethod/RetryContext.cs b/src/TestFramework/TestFramework/Attributes/TestMethod/RetryContext.cs index ac92b4b178..2ffcad978e 100644 --- a/src/TestFramework/TestFramework/Attributes/TestMethod/RetryContext.cs +++ b/src/TestFramework/TestFramework/Attributes/TestMethod/RetryContext.cs @@ -6,6 +6,9 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting; /// /// Represents the context for a test retry. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public readonly struct RetryContext { diff --git a/src/TestFramework/TestFramework/Attributes/TestMethod/RetryResult.cs b/src/TestFramework/TestFramework/Attributes/TestMethod/RetryResult.cs index fef4da16e1..eca1ef08b5 100644 --- a/src/TestFramework/TestFramework/Attributes/TestMethod/RetryResult.cs +++ b/src/TestFramework/TestFramework/Attributes/TestMethod/RetryResult.cs @@ -8,6 +8,9 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting; /// /// The result of a test retry. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public sealed class RetryResult { diff --git a/src/TestFramework/TestFramework/Filtering/ITestFilter.cs b/src/TestFramework/TestFramework/Filtering/ITestFilter.cs index ff5663be59..a4cb0ab69f 100644 --- a/src/TestFramework/TestFramework/Filtering/ITestFilter.cs +++ b/src/TestFramework/TestFramework/Filtering/ITestFilter.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. namespace Microsoft.VisualStudio.TestTools.UnitTesting; @@ -28,6 +28,9 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting; /// to avoid). Returning does not override a later /// [Ignore]; an ignored test is still ignored. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public interface ITestFilter diff --git a/src/TestFramework/TestFramework/Filtering/TestFilterAction.cs b/src/TestFramework/TestFramework/Filtering/TestFilterAction.cs index e3c6a3bfa9..0f033b4112 100644 --- a/src/TestFramework/TestFramework/Filtering/TestFilterAction.cs +++ b/src/TestFramework/TestFramework/Filtering/TestFilterAction.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. namespace Microsoft.VisualStudio.TestTools.UnitTesting; @@ -7,6 +7,9 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting; /// Indicates how the MSTest adapter should treat a test for which an /// returned a particular . /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public enum TestFilterAction { diff --git a/src/TestFramework/TestFramework/Filtering/TestFilterContext.cs b/src/TestFramework/TestFramework/Filtering/TestFilterContext.cs index 89d999a23d..f4829420d6 100644 --- a/src/TestFramework/TestFramework/Filtering/TestFilterContext.cs +++ b/src/TestFramework/TestFramework/Filtering/TestFilterContext.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. namespace Microsoft.VisualStudio.TestTools.UnitTesting; @@ -37,6 +37,9 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting; /// instances using an object initializer (e.g. new TestFilterContext { FullyQualifiedName = "…" }); /// no positional constructor needs to be updated when new properties land. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public sealed class TestFilterContext diff --git a/src/TestFramework/TestFramework/Filtering/TestFilterResult.cs b/src/TestFramework/TestFramework/Filtering/TestFilterResult.cs index 485969f404..45e03d8d3c 100644 --- a/src/TestFramework/TestFramework/Filtering/TestFilterResult.cs +++ b/src/TestFramework/TestFramework/Filtering/TestFilterResult.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. namespace Microsoft.VisualStudio.TestTools.UnitTesting; @@ -11,6 +11,9 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting; /// allocation-free. Use the static / properties (one shared /// value each) or the parameterized factory to create explicit results. /// The default value also represents . +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// /// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public readonly struct TestFilterResult : IEquatable diff --git a/src/TestFramework/TestFramework/Interfaces/ITestDataSourceEmptyDataSourceExceptionInfo.cs b/src/TestFramework/TestFramework/Interfaces/ITestDataSourceEmptyDataSourceExceptionInfo.cs index 8ea34818d4..4fea481b16 100644 --- a/src/TestFramework/TestFramework/Interfaces/ITestDataSourceEmptyDataSourceExceptionInfo.cs +++ b/src/TestFramework/TestFramework/Interfaces/ITestDataSourceEmptyDataSourceExceptionInfo.cs @@ -8,6 +8,9 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting; /// returns no rows. When a data source implements this interface, MSTest uses the returned member and type names to /// build a more actionable exception message instead of the generic GetData returned empty collection message. /// +/// +/// This API is experimental. It may change, break, or be removed at any time without notice. +/// [Experimental("MSTESTEXP", UrlFormat = "https://aka.ms/mstest/diagnostics#{0}")] public interface ITestDataSourceEmptyDataSourceExceptionInfo { From e773c047891c297546fae0888454fa2cef4f91ea Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Thu, 3 Sep 2026 12:15:02 +0200 Subject: [PATCH 07/33] Fix Retry extension warning under Native AOT by @Evangelink in #10981 (backport to rel/4.4) (#10984) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- src/Package/MSTest.Sdk/Sdk/Runner/NativeAOT.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Package/MSTest.Sdk/Sdk/Runner/NativeAOT.targets b/src/Package/MSTest.Sdk/Sdk/Runner/NativeAOT.targets index b581c9ef99..8df6027cca 100644 --- a/src/Package/MSTest.Sdk/Sdk/Runner/NativeAOT.targets +++ b/src/Package/MSTest.Sdk/Sdk/Runner/NativeAOT.targets @@ -23,7 +23,7 @@ - + From 61fb285182c6133b29ebd7077b8dc4bb279c8dbf Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Thu, 3 Sep 2026 12:17:26 +0200 Subject: [PATCH 08/33] Prevent .NET Framework telemetry consumer starvation by @Evangelink in #10988 (backport to rel/4.4) (#10989) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Copilot-Session: 42fd90cd-4366-4b86-89ec-cda14f5f569f --- .../AppInsightsProvider.cs | 18 ++++++++++-- .../AppInsightsProviderTests.cs | 28 +++++++++++++++++++ 2 files changed, 44 insertions(+), 2 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Extensions.Telemetry/AppInsightsProvider.cs b/src/Platform/Microsoft.Testing.Extensions.Telemetry/AppInsightsProvider.cs index 3c01f5dc13..07d265dc03 100644 --- a/src/Platform/Microsoft.Testing.Extensions.Telemetry/AppInsightsProvider.cs +++ b/src/Platform/Microsoft.Testing.Extensions.Telemetry/AppInsightsProvider.cs @@ -120,12 +120,16 @@ public AppInsightsProvider( #endif // On single-threaded wasm runtimes (browser-wasm / wasi-wasm) there is no thread pool, so the - // background ingest loop (started via Task.Run) would never run and Dispose's blocking + // background ingest loop would never run and Dispose's blocking // _telemetryTask.Wait(...) would throw PlatformNotSupportedException. Telemetry requires a // background sender, so skip the loop entirely there and keep Dispose non-blocking by leaving // the task completed. LogEventAsync short-circuits in this mode, so no events are queued. _telemetryTask = RuntimeFeatureHelper.IsMultiThreaded +#if NETCOREAPP ? task.Run(IngestLoopAsync, _testApplicationCancellationTokenSource.CancellationToken) +#else + ? task.RunLongRunning(IngestLoopAsync, "AppInsights telemetry ingest", _testApplicationCancellationTokenSource.CancellationToken) +#endif : Task.CompletedTask; _logger = loggerFactory.CreateLogger(); } @@ -139,14 +143,24 @@ private async Task IngestLoopAsync() } DateTimeOffset? lastLoggedError = null; +#if NETCOREAPP _testApplicationCancellationTokenSource.CancellationToken.Register(_flushTimeoutOrStop.Cancel); +#else + _testApplicationCancellationTokenSource.CancellationToken.Register(() => + { + _flushTimeoutOrStop.Cancel(); + _payloads.Complete(); + }); +#endif try { #if NETCOREAPP while (await _payloads.Reader.WaitToReadAsync(_flushTimeoutOrStop.Token).ConfigureAwait(false)) #else - while (await _payloads.WaitToReadAsync(_flushTimeoutOrStop.Token).ConfigureAwait(false)) +#pragma warning disable VSTHRD103 // The consumer runs on a dedicated thread; synchronous waiting prevents thread-pool starvation. + while (_payloads.WaitToRead()) +#pragma warning restore VSTHRD103 #endif { if (_client is null) diff --git a/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AppInsightsProviderTests.cs b/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AppInsightsProviderTests.cs index 2e64f0d28d..a82ece73dd 100644 --- a/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AppInsightsProviderTests.cs +++ b/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AppInsightsProviderTests.cs @@ -36,6 +36,34 @@ public async Task DisposeWithoutPayload_DoesNotInitializeTelemetryClient() telemetryClient.Verify(x => x.Flush(), Times.Never); } +#if !NETCOREAPP + [TestMethod] + public void Constructor_StartsTelemetryConsumerOnDedicatedThread() + { + Mock task = new(); + task.Setup(x => x.RunLongRunning(It.IsAny>(), It.IsAny(), It.IsAny())) + .Returns(Task.CompletedTask); + + _ = new AppInsightsProvider( + new Mock().Object, + new Mock().Object, + task.Object, + new Mock().Object, + new Mock().Object, + new Mock().Object, + new Mock().Object, + new Mock().Object, + "sessionId"); + + task.Verify( + x => x.RunLongRunning(It.IsAny>(), "AppInsights telemetry ingest", It.IsAny()), + Times.Once); + task.Verify( + x => x.Run(It.IsAny>(), It.IsAny()), + Times.Never); + } +#endif + [TestMethod] public async Task FirstPayload_InitializesTelemetryClientOnce() { From 8efaf655c9e87784e54062275abb4cdf5406080e Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Thu, 3 Sep 2026 13:25:26 +0200 Subject: [PATCH 09/33] Localized file check-in by OneLocBuild Task: Build definition ID 1218: Build ID 3065269 by @dotnet-oneloc-localization[bot] in #10995 (backport to rel/4.4) (#11000) Co-authored-by: Evangelink <11340282+Evangelink@users.noreply.github.com> --- changes.patch | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 83 insertions(+) create mode 100644 changes.patch diff --git a/changes.patch b/changes.patch new file mode 100644 index 0000000000..151206ca99 --- /dev/null +++ b/changes.patch @@ -0,0 +1,83 @@ + + + + + + + Too many requests · GitHub + + + + + +
+ +

Too many requests

+

You have exceeded a secondary rate limit.

+ Please wait a few minutes before you try again;
+ in some cases this may take up to an hour.
+ Signing in may provide a higher rate limit if you are not already signed in.

+ For more on scraping GitHub and how it may affect your rights, please review our Terms of Service. +

+ + + + + + +
+ + From 350790156fd8278407710cfd06d22a2b7483f968 Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Thu, 3 Sep 2026 13:52:13 +0200 Subject: [PATCH 10/33] Respect SatelliteResourceLanguages for adapter resources by @Evangelink in #10987 (backport to rel/4.4) (#11002) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Co-authored-by: Evangelink <11340282+Evangelink@users.noreply.github.com> Copilot-Session: c2c74f31-1da2-4351-9191-e1963906ce63 --- changes.patch | 83 -------------- .../common/MSTest.TestAdapter.targets | 28 ++++- .../uwp/MSTest.TestAdapter.targets | 15 ++- .../SdkTests.cs | 105 ++++++++++++++++++ 4 files changed, 140 insertions(+), 91 deletions(-) delete mode 100644 changes.patch diff --git a/changes.patch b/changes.patch deleted file mode 100644 index 151206ca99..0000000000 --- a/changes.patch +++ /dev/null @@ -1,83 +0,0 @@ - - - - - - - Too many requests · GitHub - - - - - -
- -

Too many requests

-

You have exceeded a secondary rate limit.

- Please wait a few minutes before you try again;
- in some cases this may take up to an hour.
- Signing in may provide a higher rate limit if you are not already signed in.

- For more on scraping GitHub and how it may affect your rights, please review our Terms of Service. -

- - - - - - -
- - diff --git a/src/Adapter/MSTest.TestAdapter/buildTransitive/common/MSTest.TestAdapter.targets b/src/Adapter/MSTest.TestAdapter/buildTransitive/common/MSTest.TestAdapter.targets index 2ebb462f30..8ae8549ac9 100644 --- a/src/Adapter/MSTest.TestAdapter/buildTransitive/common/MSTest.TestAdapter.targets +++ b/src/Adapter/MSTest.TestAdapter/buildTransitive/common/MSTest.TestAdapter.targets @@ -54,18 +54,28 @@
+ + <_MSTestSatelliteResourceLanguages Include="$(SatelliteResourceLanguages)" /> + + + <_MSTestSatelliteResourceLanguagesWithDelimiters>;@(_MSTestSatelliteResourceLanguages); + <_MSTestSatelliteResourceLanguagesWithDelimiters>$([System.String]::Copy('$(_MSTestSatelliteResourceLanguagesWithDelimiters)').ToLowerInvariant()) + + - + <_MSTestSatelliteResourceLanguages Include="$(SatelliteResourceLanguages)" /> + <_MSTestV2Files Include="$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\_localization'))\**\*.dll" /> - + <_MSTestV2Files Update="@(_MSTestV2Files)"> %(RecursiveDir) - + $([System.String]::Copy('%(RecursiveDir)').TrimEnd('\').TrimEnd('/').ToLowerInvariant()) + - + <_MSTestV2Files Include="$(MSBuildThisFileDirectory)..\_localization\%(CurrentUICultureHierarchy.Identity)\*.dll"> %(CurrentUICultureHierarchy.Identity)\ - + $([System.String]::Copy('%(CurrentUICultureHierarchy.Identity)').ToLowerInvariant()) + + + + + diff --git a/src/Adapter/MSTest.TestAdapter/buildTransitive/uwp/MSTest.TestAdapter.targets b/src/Adapter/MSTest.TestAdapter/buildTransitive/uwp/MSTest.TestAdapter.targets index 00d48395f2..cd5f1702e5 100644 --- a/src/Adapter/MSTest.TestAdapter/buildTransitive/uwp/MSTest.TestAdapter.targets +++ b/src/Adapter/MSTest.TestAdapter/buildTransitive/uwp/MSTest.TestAdapter.targets @@ -14,6 +14,14 @@ + + <_MSTestSatelliteResourceLanguages Include="$(SatelliteResourceLanguages)" /> + + + <_MSTestSatelliteResourceLanguagesWithDelimiters>;@(_MSTestSatelliteResourceLanguages); + <_MSTestSatelliteResourceLanguagesWithDelimiters>$([System.String]::Copy('$(_MSTestSatelliteResourceLanguagesWithDelimiters)').ToLowerInvariant()) + + - + <_MSTestV2Files Include="$(MSBuildThisFileDirectory)..\_localization\%(CurrentUICultureHierarchy.Identity)\*.dll"> %(CurrentUICultureHierarchy.Identity) - + $([System.String]::Copy('%(CurrentUICultureHierarchy.Identity)').ToLowerInvariant()) + + diff --git a/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/SdkTests.cs b/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/SdkTests.cs index 0e81db8027..cf7a6230b2 100644 --- a/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/SdkTests.cs +++ b/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/SdkTests.cs @@ -144,6 +144,97 @@ public async Task RunTests_With_MSTestRunner_Standalone(string multiTfm, BuildCo } } + [TestMethod] + [DataRow("MTP", "Unset", "", "cs;de;es;fr;it;ja;ko;pl;pt-BR;ru;tr;zh-Hans;zh-Hant")] + [DataRow("MTP", "Empty", "", "cs;de;es;fr;it;ja;ko;pl;pt-BR;ru;tr;zh-Hans;zh-Hant")] + [DataRow("MTP", "SingleLanguage", "fr", "fr")] + [DataRow("MTP", "CaseInsensitiveLanguage", "FR", "fr")] + [DataRow("MTP", "MultipleLanguages", "fr;ja", "fr;ja")] + [DataRow("MTP", "SpecificCultureDoesNotMatchParent", "fr-FR", "")] + [DataRow("MTP", "ParentCultureDoesNotMatchSpecific", "pt", "")] + [DataRow("MTP", "NeutralLanguageOnly", "en-US", "cs;de;es;fr;it;ja;ko;pl;pt-BR;ru;tr;zh-Hans;zh-Hant")] + [DataRow("MTP", "NeutralLanguageFilter", "en-USen-US", "")] + [DataRow("VSTest", "Unset", "", "fr")] + [DataRow("VSTest", "Empty", "", "fr")] + [DataRow("VSTest", "SingleLanguage", "fr", "fr")] + [DataRow("VSTest", "CaseInsensitiveLanguage", "FR", "fr")] + [DataRow("VSTest", "MultipleLanguages", "fr;ja", "fr")] + [DataRow("VSTest", "DifferentLanguage", "ja", "")] + [DataRow("VSTest", "SpecificCultureDoesNotMatchParent", "fr-FR", "")] + [DataRow("VSTest", "NeutralLanguageOnly", "en-US", "fr")] + [DataRow("VSTest", "NeutralLanguageFilter", "en-USen-US", "")] + public async Task SatelliteResourceLanguages_FiltersAdapterResources(string runner, string scenario, string properties, string expectedCultures) + { + string assetName = $"{AssetName}{runner}Satellites{scenario}"; + string runnerProperties = runner == "VSTest" ? "true" : string.Empty; + using TestAsset testAsset = await TestAsset.GenerateAssetAsync( + assetName, + SingleTestSourceCode + .PatchCodeWithReplace("MSTestSdk.csproj", $"{assetName}.csproj") + .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion) + .PatchCodeWithReplace("$TargetFramework$", TargetFrameworks.NetCurrent) + .PatchCodeWithReplace("$ExtraProperties$", runnerProperties + properties)); + + DotnetMuxerResult compilationResult = await DotnetCli.RunAsync( + $"build -c {BuildConfiguration.Release} {testAsset.TargetAssetPath}", + environmentVariables: new() { ["DOTNET_CLI_UI_LANGUAGE"] = "fr" }, + cancellationToken: TestContext.CancellationToken); + compilationResult.AssertExitCodeIs(0); + + string outputDirectory = Path.Combine(testAsset.TargetAssetPath, "bin", BuildConfiguration.Release.ToString(), TargetFrameworks.NetCurrent); + string[] expected = expectedCultures.Split(';', StringSplitOptions.RemoveEmptyEntries); + + AssertSatelliteCultures(outputDirectory, "MSTest.TestAdapter.resources.dll", expected); + AssertSatelliteCultures(outputDirectory, "MSTestAdapter.PlatformServices.resources.dll", expected); + } + + [TestMethod] + [OSCondition(OperatingSystems.Windows, IgnoreMessage = "Classic UWP package assets are produced only on Windows.")] + [DataRow("Unset", "", "fr;fr")] + [DataRow("Empty", "", "fr;fr")] + [DataRow("MatchingLanguage", "fr", "fr;fr")] + [DataRow("CaseInsensitiveLanguage", "FR", "fr;fr")] + [DataRow("DifferentLanguage", "ja", "")] + [DataRow("SpecificCultureDoesNotMatchParent", "fr-FR", "")] + public async Task SatelliteResourceLanguages_FiltersClassicUwpAdapterResources(string scenario, string properties, string expectedCultures) + { + const string Source = """ + #file ClassicUwpSatelliteResources.csproj + + + $TargetFramework$ + $Properties$ + + + + + + + + + + + + + """; + + using TestAsset testAsset = await TestAsset.GenerateAssetAsync( + $"{AssetName}ClassicUwpSatellites{scenario}", + Source + .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion) + .PatchCodeWithReplace("$TargetFramework$", TargetFrameworks.NetCurrent) + .PatchCodeWithReplace("$Properties$", properties)); + + DotnetMuxerResult result = await DotnetCli.RunAsync( + $"msbuild {testAsset.TargetAssetPath} -restore -t:PrintSatelliteCultures", + environmentVariables: new() { ["DOTNET_CLI_UI_LANGUAGE"] = "fr" }, + cancellationToken: TestContext.CancellationToken); + + result.AssertExitCodeIs(0); + result.AssertOutputContains($"SatelliteCultures=[{expectedCultures}]"); + } + [TestMethod] [DynamicData(nameof(GetBuildMatrixMultiTfmFoldedBuildConfiguration), typeof(AcceptanceTestBase))] public async Task RunTests_With_CentralPackageManagement_Standalone(string multiTfm, BuildConfiguration buildConfiguration) @@ -964,6 +1055,20 @@ public async Task MSTestSdk_WinUISeparateHost_KeepsGeneratedEntryPoint() result.AssertOutputContains("OutputType=Exe"); } + private static void AssertSatelliteCultures(string outputDirectory, string resourceAssemblyName, string[] expectedCultures) + { + string[] actualCultures = Directory.GetFiles(outputDirectory, resourceAssemblyName, SearchOption.AllDirectories) + .Select(path => Path.GetRelativePath(outputDirectory, Path.GetDirectoryName(path)!)) + .Order(StringComparer.OrdinalIgnoreCase) + .ToArray(); + string[] expected = expectedCultures.Order(StringComparer.OrdinalIgnoreCase).ToArray(); + + CollectionAssert.AreEqual( + expected, + actualCultures, + $"Unexpected cultures for {resourceAssemblyName}. Expected: '{string.Join(";", expected)}'. Actual: '{string.Join(";", actualCultures)}'."); + } + private async Task EvaluateWindowsApplicationModelAsync( string assetName, string applicationModelProperties, From 0ddf59eb472273911d6bb7f1fbf90080a903e4f9 Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Thu, 3 Sep 2026 14:39:16 +0200 Subject: [PATCH 11/33] Fix source-generated constant emission by @Evangelink in #10996 (backport to rel/4.4) (#11005) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../Emitters/ReflectionMetadataEmitter.cs | 1 - .../Generators/MetadataRegistryEmitter.cs | 30 ++- .../Generators/RuntimeRegistrationEmitter.cs | 1 - .../MSTestReflectionMetadataGeneratorTests.cs | 235 +++++++++++++++++- .../ReflectionMetadataGeneratorTests.cs | 1 - 5 files changed, 250 insertions(+), 18 deletions(-) diff --git a/src/Analyzers/MSTest.SourceGeneration/Emitters/ReflectionMetadataEmitter.cs b/src/Analyzers/MSTest.SourceGeneration/Emitters/ReflectionMetadataEmitter.cs index 241b89aa49..1329ab7241 100644 --- a/src/Analyzers/MSTest.SourceGeneration/Emitters/ReflectionMetadataEmitter.cs +++ b/src/Analyzers/MSTest.SourceGeneration/Emitters/ReflectionMetadataEmitter.cs @@ -30,7 +30,6 @@ public static string Emit(TestAssemblyMetadata metadata) Append(sb, string.Empty); Append(sb, "namespace Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.Generated"); Append(sb, "{"); - Append(sb, " /// Source-generated MSTest reflection metadata hook for this test assembly."); Append(sb, $" internal static class {GeneratedTypeName}"); Append(sb, " {"); Append(sb, " [ModuleInitializer]"); diff --git a/src/Analyzers/MSTest.SourceGeneration/Generators/MetadataRegistryEmitter.cs b/src/Analyzers/MSTest.SourceGeneration/Generators/MetadataRegistryEmitter.cs index ae4cf782b3..4b4e48ee76 100644 --- a/src/Analyzers/MSTest.SourceGeneration/Generators/MetadataRegistryEmitter.cs +++ b/src/Analyzers/MSTest.SourceGeneration/Generators/MetadataRegistryEmitter.cs @@ -37,7 +37,6 @@ public static string EmitSupportTypes() using (sb.Block($"namespace {GeneratedNamespace}")) { - sb.AppendLine("/// Describes one test class as discovered at compile-time. Mirrors what IReflectionOperations would return at runtime."); using (sb.Block("internal sealed class TestClassReflectionInfo")) { // The stored Type flows into the generated Initialize method's direct GetMethods / @@ -59,7 +58,6 @@ public static string EmitSupportTypes() using (sb.Block("internal sealed class TestMethodReflectionInfo")) { sb.AppendLine("public string Name { get; set; } = string.Empty;"); - sb.AppendLine("/// True when this method is a [TestMethod] (used to populate the test-method roots); false for fixtures and other registered methods."); sb.AppendLine("public bool IsTestMethod { get; set; }"); sb.AppendLine("public bool IsStatic { get; set; }"); sb.AppendLine("public bool IsAsync { get; set; }"); @@ -70,14 +68,11 @@ public static string EmitSupportTypes() sb.AppendLine("public Type[] ParameterTypes { get; set; } = Array.Empty();"); sb.AppendLine("public Attribute[] Attributes { get; set; } = Array.Empty();"); sb.AppendLine("public bool AreAttributesComplete { get; set; }"); - sb.AppendLine("/// Source-generated accessors for this method's [DynamicData] sources (empty when none were resolved), registered with DynamicDataSourceResolver so the data is read without runtime reflection."); sb.AppendLine("public IReadOnlyList DynamicDataSources { get; set; } = Array.Empty();"); - sb.AppendLine("/// Direct invoker — replaces . Always returns a non-null so the caller can await regardless of whether the underlying test method is void, Task, Task<T>, ValueTask, or ValueTask<T>; the result value (if any) is discarded."); sb.AppendLine("public Func Invoke { get; set; } = static (_, _) => Task.CompletedTask;"); } sb.AppendLine(); - sb.AppendLine("/// A compile-time-resolved [DynamicData] source: the declaring type, the source name, an accessor that returns the raw data object, and (optionally) a custom display-name accessor."); using (sb.Block("internal sealed class DynamicDataSourceReflectionInfo")) { sb.AppendLine("public Type DeclaringType { get; set; } = null!;"); @@ -125,7 +120,6 @@ public static string EmitRegistry(string assemblyName, AssemblyMetadataModel ass using (sb.Block($"namespace {GeneratedNamespace}")) { - sb.AppendLine($"/// Source-generated reflection metadata for assembly {assemblyName}."); using (sb.Block($"internal static class {RegistryClassName}")) { sb.AppendLine($"public const string AssemblyName = \"{Escape(assemblyName)}\";"); @@ -529,7 +523,7 @@ private static string BuildEnumLiteral(TypedConstantModel constant) { string? typeName = constant.FullyQualifiedType; string raw = FormatPrimitive(constant.PrimitiveValue); - return typeName is null ? raw : $"({typeName}){raw}"; + return typeName is null ? raw : $"({typeName})({raw})"; } private static string BuildArrayLiteral(TypedConstantModel constant) @@ -551,17 +545,29 @@ private static string BuildArrayLiteral(TypedConstantModel constant) } private static string BuildPrimitiveLiteral(TypedConstantModel constant) - => FormatPrimitive(constant.PrimitiveValue); + { + string literal = FormatPrimitive(constant.PrimitiveValue); + return constant.PrimitiveValue is byte or sbyte or short or ushort + && constant.FullyQualifiedType is { } typeName + ? $"({typeName}){(literal.StartsWith("-", StringComparison.Ordinal) ? $"({literal})" : literal)}" + : literal; + } private static string FormatPrimitive(object? value) => value switch { null => "null", - string s => $"\"{Escape(s)}\"", + string s => Microsoft.CodeAnalysis.CSharp.SymbolDisplay.FormatLiteral(s, quote: true), bool b => Bool(b), - char c => $"'{(c == '\'' ? "\\'" : c.ToString())}'", - float f => f.ToString("R", CultureInfo.InvariantCulture) + "f", - double d => d.ToString("R", CultureInfo.InvariantCulture) + "d", + char c => Microsoft.CodeAnalysis.CSharp.SymbolDisplay.FormatLiteral(c, quote: true), + float f when float.IsNaN(f) => "global::System.Single.NaN", + float f when float.IsPositiveInfinity(f) => "global::System.Single.PositiveInfinity", + float f when float.IsNegativeInfinity(f) => "global::System.Single.NegativeInfinity", + float f => f.ToString("R", CultureInfo.InvariantCulture) + "F", + double d when double.IsNaN(d) => "global::System.Double.NaN", + double d when double.IsPositiveInfinity(d) => "global::System.Double.PositiveInfinity", + double d when double.IsNegativeInfinity(d) => "global::System.Double.NegativeInfinity", + double d => d.ToString("R", CultureInfo.InvariantCulture) + "D", decimal m => m.ToString(CultureInfo.InvariantCulture) + "m", long l => l.ToString(CultureInfo.InvariantCulture) + "L", ulong ul => ul.ToString(CultureInfo.InvariantCulture) + "UL", diff --git a/src/Analyzers/MSTest.SourceGeneration/Generators/RuntimeRegistrationEmitter.cs b/src/Analyzers/MSTest.SourceGeneration/Generators/RuntimeRegistrationEmitter.cs index 38b1bf244a..80b7936123 100644 --- a/src/Analyzers/MSTest.SourceGeneration/Generators/RuntimeRegistrationEmitter.cs +++ b/src/Analyzers/MSTest.SourceGeneration/Generators/RuntimeRegistrationEmitter.cs @@ -49,7 +49,6 @@ public static string Emit(IReadOnlyList testClasses) using (sb.Block($"namespace {GeneratedNamespace}")) { - sb.AppendLine("/// Source-generated MSTest reflection metadata hook for this test assembly."); using (sb.Block($"internal static class {GeneratedTypeName}")) { sb.AppendLine("[ModuleInitializer]"); diff --git a/test/UnitTests/MSTest.SourceGeneration.UnitTests/MSTestReflectionMetadataGeneratorTests.cs b/test/UnitTests/MSTest.SourceGeneration.UnitTests/MSTestReflectionMetadataGeneratorTests.cs index 40fe19b4b5..fad6c402d2 100644 --- a/test/UnitTests/MSTest.SourceGeneration.UnitTests/MSTestReflectionMetadataGeneratorTests.cs +++ b/test/UnitTests/MSTest.SourceGeneration.UnitTests/MSTestReflectionMetadataGeneratorTests.cs @@ -63,8 +63,15 @@ public class ParallelizeAttribute : System.Attribute [System.AttributeUsage(System.AttributeTargets.Method, AllowMultiple = true, Inherited = false)] public class DataRowAttribute : System.Attribute { - public DataRowAttribute(object? data1) { } - public DataRowAttribute(object? data1, params object?[] moreData) { } + public DataRowAttribute(object? data1) { Data = new object?[] { data1 }; } + public DataRowAttribute(object? data1, params object?[] moreData) + { + Data = new object?[moreData.Length + 1]; + Data[0] = data1; + System.Array.Copy(moreData, 0, Data, 1, moreData.Length); + } + + public object?[] Data { get; } } public enum DynamicDataSourceType { Property = 0, Method = 1, AutoDetect = 2, Field = 3 } @@ -1869,6 +1876,208 @@ public void Test(int a, int b, int c, int d) { } registry.Should().NotContain("DataRows"); } + [TestMethod] + public void Generator_PreservesDataRowConstantTypes() + { + const string userCode = """ + using Microsoft.VisualStudio.TestTools.UnitTesting; + + namespace Sample + { + internal enum ByteEnum : byte { Max = byte.MaxValue } + internal enum SByteEnum : sbyte { Min = sbyte.MinValue } + internal enum ShortEnum : short { Min = short.MinValue } + internal enum UShortEnum : ushort { Max = ushort.MaxValue } + internal enum IntEnum : int { Min = int.MinValue } + internal enum UIntEnum : uint { Max = uint.MaxValue } + internal enum LongEnum : long { Min = long.MinValue } + internal enum ULongEnum : ulong { Max = ulong.MaxValue } + + [TestClass] + public class Tests + { + [TestMethod] + [DataRow(false, (byte)0x4D, (sbyte)-1, (short)-2, (ushort)3, uint.MaxValue, ulong.MaxValue, '\n')] + [DataRow(ByteEnum.Max, SByteEnum.Min, ShortEnum.Min, UShortEnum.Max, IntEnum.Min, UIntEnum.Max, LongEnum.Min, ULongEnum.Max)] + public void Test(params object?[] values) { } + } + } + """; + + Compilation outputCompilation = RunGeneratorAndGetCompilation(MinimalMSTestStub, userCode); + string registry = outputCompilation.SyntaxTrees + .Single(tree => tree.FilePath.EndsWith("MSTestReflectionMetadata.Registry.g.cs", StringComparison.Ordinal)) + .ToString(); + + registry.Should().Contain( + "DataRowAttribute(false, new object[] { (byte)77, (sbyte)(-1), (short)(-2), (ushort)3, 4294967295U, 18446744073709551615UL, '\\n' })"); + registry.Should().Contain("(global::Sample.ByteEnum)(255)"); + registry.Should().Contain("(global::Sample.SByteEnum)(-128)"); + registry.Should().Contain("(global::Sample.ShortEnum)(-32768)"); + registry.Should().Contain("(global::Sample.UShortEnum)(65535)"); + registry.Should().Contain("(global::Sample.IntEnum)(-2147483648)"); + registry.Should().Contain("(global::Sample.UIntEnum)(4294967295U)"); + registry.Should().Contain("(global::Sample.LongEnum)(-9223372036854775808L)"); + registry.Should().Contain("(global::Sample.ULongEnum)(18446744073709551615UL)"); + Diagnostic[] errors = outputCompilation.GetDiagnostics() + .Where(diagnostic => diagnostic.Severity == DiagnosticSeverity.Error) + .ToArray(); + errors.Should().BeEmpty( + "the typed-constant corpus should compile. Diagnostics: {0}", + string.Join(Environment.NewLine, errors.Select(diagnostic => diagnostic.ToString()))); + + object[][] rows = GetMaterializedDataRows(outputCompilation); + + rows[0][1].Should().BeOfType().Which.Should().Be(0x4D); + rows[0][2].Should().BeOfType().Which.Should().Be(-1); + rows[0][3].Should().BeOfType().Which.Should().Be(-2); + rows[0][4].Should().BeOfType().Which.Should().Be(3); + rows[0][5].Should().BeOfType().Which.Should().Be(uint.MaxValue); + rows[0][6].Should().BeOfType().Which.Should().Be(ulong.MaxValue); + rows[0][7].Should().BeOfType().Which.Should().Be('\n'); + rows[1].Select(value => value.GetType().FullName).Should().Equal( + "Sample.ByteEnum", + "Sample.SByteEnum", + "Sample.ShortEnum", + "Sample.UShortEnum", + "Sample.IntEnum", + "Sample.UIntEnum", + "Sample.LongEnum", + "Sample.ULongEnum"); + } + + [TestMethod] + public void Generator_EscapesDataRowStringAndCharacterLiterals() + { + const string userCode = """ + using Microsoft.VisualStudio.TestTools.UnitTesting; + + namespace Sample + { + [TestClass] + public class Tests + { + [TestMethod] + [DataRow("\tMZXW6\r\n", "\"\\\0\u2028\u2029", '\'', '\\', '\0', '\u2028')] + public void Test(params object?[] values) { } + } + } + """; + + Compilation outputCompilation = RunGeneratorAndGetCompilation(MinimalMSTestStub, userCode); + string registry = outputCompilation.SyntaxTrees + .Single(tree => tree.FilePath.EndsWith("MSTestReflectionMetadata.Registry.g.cs", StringComparison.Ordinal)) + .ToString(); + + registry.Should().Contain("\"\\tMZXW6\\r\\n\""); + registry.Should().Contain("\"\\\"\\\\\\0\\u2028\\u2029\""); + registry.Should().Contain("'\\''"); + registry.Should().Contain("'\\\\'"); + registry.Should().Contain("'\\0'"); + registry.Should().Contain("'\\u2028'"); + outputCompilation.GetDiagnostics().Where(diagnostic => diagnostic.Severity == DiagnosticSeverity.Error).Should().BeEmpty(); + + object[][] rows = GetMaterializedDataRows(outputCompilation); + rows[0][0].Should().Be("\tMZXW6\r\n"); + rows[0][1].Should().Be("\"\\\0\u2028\u2029"); + rows[0][2].Should().Be('\''); + rows[0][3].Should().Be('\\'); + rows[0][4].Should().Be('\0'); + rows[0][5].Should().Be('\u2028'); + } + + [TestMethod] + public void Generator_DeterministicLiteralCorpus_CompilesWithoutGeneratedDiagnostics() + { + const int seed = 0x5EED; + var random = new Random(seed); + string[] values = + [ + "\uD800", + "\uDFFF", + "\uD83D\uDE00", + .. Enumerable.Range(0, 64) + .Select(_ => new string(Enumerable.Range(0, random.Next(0, 24)) + .Select(_ => (char)random.Next(char.MinValue, char.MaxValue + 1)) + .ToArray())) + ]; + string dataRows = string.Join( + Environment.NewLine, + values.Select(value => $" [DataRow({Microsoft.CodeAnalysis.CSharp.SymbolDisplay.FormatLiteral(value, quote: true)})]")); + string userCode = $$""" + using Microsoft.VisualStudio.TestTools.UnitTesting; + + namespace Sample + { + [TestClass] + public class Tests + { + {{dataRows}} + [DataRow(float.NaN)] + [DataRow(float.PositiveInfinity)] + [DataRow(float.NegativeInfinity)] + [DataRow(double.NaN)] + [DataRow(double.PositiveInfinity)] + [DataRow(double.NegativeInfinity)] + [DataRow(float.MinValue)] + [DataRow(float.MaxValue)] + [DataRow(-0.0F)] + [DataRow(float.Epsilon)] + [DataRow(double.MinValue)] + [DataRow(double.MaxValue)] + [DataRow(-0.0D)] + [DataRow(double.Epsilon)] + [DataRow(new int[] { int.MinValue, 0, int.MaxValue })] + [TestMethod] + public void Test(object? value) { } + } + } + """; + var parseOptions = new CSharpParseOptions(documentationMode: DocumentationMode.Diagnose); + CSharpCompilation compilation = CreateCompilation(parseOptions, MinimalMSTestStub, userCode); + GeneratorDriver driver = CreateDriver(compilation); + driver.RunGeneratorsAndUpdateCompilation(compilation, out Compilation outputCompilation, out _); + + Diagnostic[] generatedDiagnostics = outputCompilation.GetDiagnostics() + .Where(diagnostic => diagnostic.Severity >= DiagnosticSeverity.Warning + && diagnostic.Location.SourceTree?.FilePath.EndsWith(".g.cs", StringComparison.Ordinal) is true) + .ToArray(); + + generatedDiagnostics.Should().BeEmpty($"the deterministic literal corpus with seed {seed} should produce clean generated source"); + + string registry = outputCompilation.SyntaxTrees + .Single(tree => tree.FilePath.EndsWith("MSTestReflectionMetadata.Registry.g.cs", StringComparison.Ordinal)) + .ToString(); + registry.Should().Contain("global::System.Single.NaN"); + registry.Should().Contain("global::System.Single.PositiveInfinity"); + registry.Should().Contain("global::System.Single.NegativeInfinity"); + registry.Should().Contain("global::System.Double.NaN"); + registry.Should().Contain("global::System.Double.PositiveInfinity"); + registry.Should().Contain("global::System.Double.NegativeInfinity"); + + object[][] rows = GetMaterializedDataRows(outputCompilation); + string[] actualValues = rows.Take(values.Length).Select(row => (string)row[0]).ToArray(); + actualValues.Should().Equal(values, $"the deterministic literal corpus with seed {seed} should round-trip"); + + int rowIndex = values.Length; + float.IsNaN((float)rows[rowIndex++][0]).Should().BeTrue(); + float.IsPositiveInfinity((float)rows[rowIndex++][0]).Should().BeTrue(); + float.IsNegativeInfinity((float)rows[rowIndex++][0]).Should().BeTrue(); + double.IsNaN((double)rows[rowIndex++][0]).Should().BeTrue(); + double.IsPositiveInfinity((double)rows[rowIndex++][0]).Should().BeTrue(); + double.IsNegativeInfinity((double)rows[rowIndex++][0]).Should().BeTrue(); + rows[rowIndex++][0].Should().Be(float.MinValue); + rows[rowIndex++][0].Should().Be(float.MaxValue); + BitConverter.SingleToInt32Bits((float)rows[rowIndex++][0]).Should().Be(BitConverter.SingleToInt32Bits(-0.0F)); + rows[rowIndex++][0].Should().Be(float.Epsilon); + rows[rowIndex++][0].Should().Be(double.MinValue); + rows[rowIndex++][0].Should().Be(double.MaxValue); + BitConverter.DoubleToInt64Bits((double)rows[rowIndex++][0]).Should().Be(BitConverter.DoubleToInt64Bits(-0.0D)); + rows[rowIndex++][0].Should().Be(double.Epsilon); + rows[rowIndex++][0].Should().BeOfType().Which.Should().Equal(int.MinValue, 0, int.MaxValue); + rowIndex.Should().Be(rows.Length); + } + [TestMethod] public void Generator_HandlesNullValueInDataRow() { @@ -3544,6 +3753,23 @@ private static Compilation RunGeneratorAndGetCompilation(params string[] sources return outputCompilation; } + private static object[][] GetMaterializedDataRows(Compilation outputCompilation) + { + using var assemblyStream = new MemoryStream(); + outputCompilation.Emit(assemblyStream).Success.Should().BeTrue(); + var assembly = System.Reflection.Assembly.Load(assemblyStream.ToArray()); + Type registryType = assembly.GetType("MSTest.SourceGenerated.MSTestReflectionMetadata")!; + var testClasses = (System.Collections.IEnumerable)registryType.GetProperty("TestClasses")!.GetValue(null)!; + object testClass = testClasses.Cast().Single(); + var methods = (System.Collections.IEnumerable)testClass.GetType().GetProperty("Methods")!.GetValue(testClass)!; + object method = methods.Cast().Single(); + var attributes = (Attribute[])method.GetType().GetProperty("Attributes")!.GetValue(method)!; + return attributes + .Where(attribute => attribute.GetType().Name == "DataRowAttribute") + .Select(attribute => (object[])attribute.GetType().GetProperty("Data")!.GetValue(attribute)!) + .ToArray(); + } + // Drives the generator in ReflectionFree mode (the mode under test). Without the // MSTestSourceGenMode=ReflectionFree option the generator stays silent (rooting is the default), // so the test harness always opts in. @@ -3556,11 +3782,14 @@ private static GeneratorDriver CreateDriver(CSharpCompilation compilation, bool driverOptions: new GeneratorDriverOptions(IncrementalGeneratorOutputKind.None, trackIncrementalGeneratorSteps)); private static CSharpCompilation CreateCompilation(params string[] sources) + => CreateCompilation(CSharpParseOptions.Default, sources); + + private static CSharpCompilation CreateCompilation(CSharpParseOptions parseOptions, params string[] sources) { // Always include the adapter hook stub so the emitted [ModuleInitializer] registration // (which calls ReflectionMetadataHook.Register) compiles in the Roslyn test compilation // without referencing MSTestAdapter.PlatformServices. - IEnumerable trees = sources.Append(RuntimeHookStub).Select(s => CSharpSyntaxTree.ParseText(s)); + IEnumerable trees = sources.Append(RuntimeHookStub).Select(source => CSharpSyntaxTree.ParseText(source, parseOptions)); MetadataReference[] references = new[] { MetadataReference.CreateFromFile(typeof(object).Assembly.Location), diff --git a/test/UnitTests/MSTest.SourceGeneration.UnitTests/ReflectionMetadataGeneratorTests.cs b/test/UnitTests/MSTest.SourceGeneration.UnitTests/ReflectionMetadataGeneratorTests.cs index 91d3c79108..a44f44221e 100644 --- a/test/UnitTests/MSTest.SourceGeneration.UnitTests/ReflectionMetadataGeneratorTests.cs +++ b/test/UnitTests/MSTest.SourceGeneration.UnitTests/ReflectionMetadataGeneratorTests.cs @@ -78,7 +78,6 @@ public void NotATest() {} namespace Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.Generated { - /// Source-generated MSTest reflection metadata hook for this test assembly. internal static class MSTestSourceGeneratedReflectionMetadata { [ModuleInitializer] From d1b3fa197e16ef7600b4dc5df88db820f98f15fc Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Thu, 3 Sep 2026 14:49:31 +0200 Subject: [PATCH 12/33] Narrow source generator DynamicDependency rooting by @Evangelink in #10998 (backport to rel/4.4) (#11006) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- docs/source-generator/design.md | 24 ++--- .../SourceGeneratedReflectionOperations.cs | 9 +- .../Emitters/ReflectionMetadataEmitter.cs | 32 +++++-- .../Generators/ReflectionMetadataGenerator.cs | 9 +- .../Generators/RuntimeRegistrationEmitter.cs | 25 ++++- .../Generators/TestClassModelBuilder.cs | 4 +- .../DataSource/DynamicDataOperations.cs | 15 ++- .../NativeAotTests.cs | 29 +++++- .../MSTestReflectionMetadataGeneratorTests.cs | 96 ++++++++++++++++++- .../ReflectionMetadataGeneratorTests.cs | 89 +++++++++++++---- 10 files changed, 268 insertions(+), 64 deletions(-) diff --git a/docs/source-generator/design.md b/docs/source-generator/design.md index fdb1bab6d9..d96e486166 100644 --- a/docs/source-generator/design.md +++ b/docs/source-generator/design.md @@ -29,9 +29,10 @@ The selected mode determines the rest: assembly, and method attribute arrays; constructor and method invocation delegates; and applicable property setter delegates. It also emits direct references that root the modeled members. -- **`Rooting` (compatibility mode)** emits `DynamicDependency(All, typeof(T))` for each - test class and accessible non-generic base type, plus the type/method registry. Its rich - attribute and delegate dictionaries are empty. +- **`Rooting` (compatibility mode)** emits member-scoped `DynamicDependency` roots for + constructors, methods, fields, and properties on each test class and accessible + closed base type, plus the type/method registry. Nested types are deliberately not + rooted. Its rich attribute and delegate dictionaries are empty. Both modes still resolve the `MethodInfo` keys used by the adapter at module initialization. Reflection-free mode also resolves `PropertyInfo` keys for emitted setters. @@ -176,9 +177,10 @@ their members. The choices are: #### Option 1 — The current source generator Reflection-free mode emits direct attribute construction and invocation references, which -root the modeled members, while rooting mode emits -`[DynamicDependency(All, typeof(MyTests))]` per `[TestClass]` and accessible base type. -Both preserve test-related types while leaving unrelated code eligible for trimming. +root the modeled members. Both modes emit member-scoped `[DynamicDependency]` attributes +for constructors, methods, fields, and properties on each `[TestClass]` and accessible +base type. Nested types are excluded so unrelated nested fakes and helpers remain eligible +for trimming and cannot surface trim/AOT warnings through their inherited members. Unsupported shapes and missing provider entries can still require reflection-compatible preservation (see Category A above). @@ -208,8 +210,8 @@ source generator**. The differences are concrete: - `TrimmerRootAssembly Include="$(AssemblyName)"` only preserves *your* assembly. Base classes that live in a shared library (a `TestCommon.dll` carrying `[AssemblyInitialize]`-bearing fixtures, etc.) are still trimmable. The source - generator emits `[DynamicDependency(All, typeof(BaseInOtherAssembly))]` which the - trimmer honors across assemblies. + generator emits member-scoped `[DynamicDependency]` roots for + `BaseInOtherAssembly`, which the trimmer honors across assemblies. - `TrimmerRootAssembly` keeps the entire test assembly — helpers, mocks, fixtures, dead code. Source generation roots only the test classes and their base chain; everything else remains trimmable. Smaller published binary. @@ -228,8 +230,8 @@ below), but they are not interchangeable. #### Option 3 — Hand-written `[DynamicDependency]` -The user puts `[DynamicDependency(All, typeof(MyTests))]` on a stub method per test -class. **Pros:** preserves exactly what's needed. **Cons:** tedious, easy to forget; the +The user puts member-scoped `[DynamicDependency]` attributes for `MyTests` on a stub +method per test class. **Pros:** preserves exactly what's needed. **Cons:** tedious, easy to forget; the analyzer warning surface to catch missing roots would essentially have to reinvent the source generator. Not recommended in practice. @@ -382,7 +384,7 @@ entries. necessary and must stay truthful for the explicitly documented fallback paths. - **Direct references provide rooting in reflection-free mode.** A static delegate `static (instance, args) => ((MyTests)instance).MyTest((int)args[0])` roots its target. - Rooting mode continues to emit the explicit `[DynamicDependency]` base chain. + Both modes also emit the explicit, member-scoped `[DynamicDependency]` base chain. - **Compile-time validation of attribute shapes becomes possible.** Reading `[DataRow]` / `[DataSource]` / `[ExpectedException]` etc. at compile time to bake them also lets the generator surface analyzer diagnostics for: diff --git a/src/Adapter/MSTestAdapter.PlatformServices/SourceGeneration/SourceGeneratedReflectionOperations.cs b/src/Adapter/MSTestAdapter.PlatformServices/SourceGeneration/SourceGeneratedReflectionOperations.cs index be84a05e5c..4f69e16761 100644 --- a/src/Adapter/MSTestAdapter.PlatformServices/SourceGeneration/SourceGeneratedReflectionOperations.cs +++ b/src/Adapter/MSTestAdapter.PlatformServices/SourceGeneration/SourceGeneratedReflectionOperations.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Helpers; @@ -72,9 +72,10 @@ namespace Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Sou /// /// /// Trim/AOT safety. Reflection-free mode directly references modeled attributes and -/// invocation targets; rooting mode uses [DynamicDependency(All, typeof(T))] for each -/// [TestClass] and accessible base type. Reflection fallback remains for unsupported, -/// unresolved, cross-assembly, and general enumeration operations. +/// invocation targets; both modes use member-scoped [DynamicDependency] roots for each +/// [TestClass] and accessible base type. Nested types are deliberately excluded from those +/// roots. Reflection fallback remains for unsupported, unresolved, cross-assembly, and general +/// enumeration operations. /// /// /// Adding a new fallback? Mark the method with a // Category A/B/C comment and diff --git a/src/Analyzers/MSTest.SourceGeneration/Emitters/ReflectionMetadataEmitter.cs b/src/Analyzers/MSTest.SourceGeneration/Emitters/ReflectionMetadataEmitter.cs index 1329ab7241..7c9ba56817 100644 --- a/src/Analyzers/MSTest.SourceGeneration/Emitters/ReflectionMetadataEmitter.cs +++ b/src/Analyzers/MSTest.SourceGeneration/Emitters/ReflectionMetadataEmitter.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.Helpers; @@ -32,20 +32,19 @@ public static string Emit(TestAssemblyMetadata metadata) Append(sb, "{"); Append(sb, $" internal static class {GeneratedTypeName}"); Append(sb, " {"); + EmitTestClassMemberTypes(sb); + Append(sb, string.Empty); Append(sb, " [ModuleInitializer]"); var emittedBaseTypeDependencies = new HashSet(StringComparer.Ordinal); foreach (TestClassMetadata cls in metadata.Classes) { - // Preserve the test class members at runtime even when the assembly is published with - // Native AOT / IL trimming. MSTest's adapter still needs to call GetConstructors, - // GetProperties and other reflection APIs on the class (the source generator only - // populates TypeMethods; constructors, properties, etc. fall back to runtime reflection). - // Without this hint the trimmer removes those members and discovery fails with - // "Cannot find a valid constructor for test class". - Append(sb, $" [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof({cls.FullyQualifiedName}))]"); + // Preserve the member kinds that MSTest reflects over at runtime, while deliberately + // excluding nested types. Rooting nested types recursively preserves unrelated fakes and + // helpers and can surface IL2026 / IL3050 from their base-class members. + Append(sb, $" [DynamicDependency(TestClassMemberTypes, typeof({cls.FullyQualifiedName}))]"); } - // Emit a [DynamicDependency] for every accessible non-generic base type of every + // Emit a [DynamicDependency] for every closed, referenceable base type of every // discovered [TestClass]. This roots members declared on the abstract base — most // importantly [ClassInitialize] / [ClassCleanup] / [AssemblyInitialize] / [AssemblyCleanup] // and any [TestContext] property — so the trimmer / Native AOT does not remove them. @@ -56,7 +55,7 @@ public static string Emit(TestAssemblyMetadata metadata) { if (emittedBaseTypeDependencies.Add(baseTypeName)) { - Append(sb, $" [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof({baseTypeName}))]"); + Append(sb, $" [DynamicDependency(TestClassMemberTypes, typeof({baseTypeName}))]"); } } } @@ -111,6 +110,19 @@ public static string Emit(TestAssemblyMetadata metadata) return sb.ToString(); } + private static void EmitTestClassMemberTypes(StringBuilder sb) + { + Append(sb, " private const DynamicallyAccessedMemberTypes TestClassMemberTypes ="); + Append(sb, " DynamicallyAccessedMemberTypes.PublicConstructors |"); + Append(sb, " DynamicallyAccessedMemberTypes.NonPublicConstructors |"); + Append(sb, " DynamicallyAccessedMemberTypes.PublicMethods |"); + Append(sb, " DynamicallyAccessedMemberTypes.NonPublicMethods |"); + Append(sb, " DynamicallyAccessedMemberTypes.PublicFields |"); + Append(sb, " DynamicallyAccessedMemberTypes.NonPublicFields |"); + Append(sb, " DynamicallyAccessedMemberTypes.PublicProperties |"); + Append(sb, " DynamicallyAccessedMemberTypes.NonPublicProperties;"); + } + private static string EmitTypesExpression(TestAssemblyMetadata metadata) { if (metadata.Classes.Count == 0) diff --git a/src/Analyzers/MSTest.SourceGeneration/Generators/ReflectionMetadataGenerator.cs b/src/Analyzers/MSTest.SourceGeneration/Generators/ReflectionMetadataGenerator.cs index 3217901411..ea04cc057e 100644 --- a/src/Analyzers/MSTest.SourceGeneration/Generators/ReflectionMetadataGenerator.cs +++ b/src/Analyzers/MSTest.SourceGeneration/Generators/ReflectionMetadataGenerator.cs @@ -112,16 +112,15 @@ public void Initialize(IncrementalGeneratorInitializationContext context) { cancellationToken.ThrowIfCancellationRequested(); - // Capture every base type that the generated module initializer can reference, so we + // Capture every closed base type that the generated module initializer can reference, so we // can root its members (ClassInitialize / ClassCleanup / AssemblyInitialize / // AssemblyCleanup / TestContext setter) via [DynamicDependency] under trimming or // Native AOT. Without this, those members live on the abstract base only and the - // trimmer removes them because [DynamicDependency(All, typeof(Concrete))] does not - // preserve base-type members. We intentionally do NOT add the base to types[] or + // test-class member roots on the concrete type do not preserve base-type members. + // We intentionally do NOT add the base to types[] or // testMethods{}; runtime discovery still flows through the concrete [TestClass]. if (!SymbolEqualityComparer.Default.Equals(currentType, typeSymbol) - && !currentType.IsGenericType - && SymbolAccessibilityHelper.IsAccessibleFromGeneratedCode(currentType)) + && SymbolReferenceabilityHelper.IsClosedReferenceableType(currentType, typeSymbol.ContainingAssembly)) { baseTypes.Add(currentType.ToDisplayString(SymbolDisplayFormat.FullyQualifiedFormat)); } diff --git a/src/Analyzers/MSTest.SourceGeneration/Generators/RuntimeRegistrationEmitter.cs b/src/Analyzers/MSTest.SourceGeneration/Generators/RuntimeRegistrationEmitter.cs index 80b7936123..9864aa7476 100644 --- a/src/Analyzers/MSTest.SourceGeneration/Generators/RuntimeRegistrationEmitter.cs +++ b/src/Analyzers/MSTest.SourceGeneration/Generators/RuntimeRegistrationEmitter.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.SourceGeneration.Helpers; @@ -19,7 +19,7 @@ namespace Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Sou /// Activator.CreateInstance / PropertyInfo.SetValue). The reflection objects that /// the adapter still keys on (, /// ) are resolved once at module-load time under the -/// [DynamicDependency(All)] roots emitted below. +/// member-scoped [DynamicDependency] roots emitted below. /// /// internal static class RuntimeRegistrationEmitter @@ -51,6 +51,8 @@ public static string Emit(IReadOnlyList testClasses) { using (sb.Block($"internal static class {GeneratedTypeName}")) { + EmitTestClassMemberTypes(sb); + sb.AppendLine(); sb.AppendLine("[ModuleInitializer]"); EmitDynamicDependencies(sb, testClasses); @@ -69,12 +71,27 @@ public static string Emit(IReadOnlyList testClasses) return sb.ToString(); } + private static void EmitTestClassMemberTypes(IndentedStringBuilder sb) + { + sb.AppendLine("private const DynamicallyAccessedMemberTypes TestClassMemberTypes ="); + sb.IndentationLevel++; + sb.AppendLine("DynamicallyAccessedMemberTypes.PublicConstructors |"); + sb.AppendLine("DynamicallyAccessedMemberTypes.NonPublicConstructors |"); + sb.AppendLine("DynamicallyAccessedMemberTypes.PublicMethods |"); + sb.AppendLine("DynamicallyAccessedMemberTypes.NonPublicMethods |"); + sb.AppendLine("DynamicallyAccessedMemberTypes.PublicFields |"); + sb.AppendLine("DynamicallyAccessedMemberTypes.NonPublicFields |"); + sb.AppendLine("DynamicallyAccessedMemberTypes.PublicProperties |"); + sb.AppendLine("DynamicallyAccessedMemberTypes.NonPublicProperties;"); + sb.IndentationLevel--; + } + private static void EmitDynamicDependencies(IndentedStringBuilder sb, IReadOnlyList testClasses) { var emittedBases = new HashSet(StringComparer.Ordinal); foreach (TestClassModel cls in testClasses) { - sb.AppendLine($"[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof({cls.FullyQualifiedTypeName}))]"); + sb.AppendLine($"[DynamicDependency(TestClassMemberTypes, typeof({cls.FullyQualifiedTypeName}))]"); } foreach (TestClassModel cls in testClasses) @@ -83,7 +100,7 @@ private static void EmitDynamicDependencies(IndentedStringBuilder sb, IReadOnlyL { if (emittedBases.Add(baseType)) { - sb.AppendLine($"[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof({baseType}))]"); + sb.AppendLine($"[DynamicDependency(TestClassMemberTypes, typeof({baseType}))]"); } } } diff --git a/src/Analyzers/MSTest.SourceGeneration/Generators/TestClassModelBuilder.cs b/src/Analyzers/MSTest.SourceGeneration/Generators/TestClassModelBuilder.cs index 85f8284317..c9c11b95c8 100644 --- a/src/Analyzers/MSTest.SourceGeneration/Generators/TestClassModelBuilder.cs +++ b/src/Analyzers/MSTest.SourceGeneration/Generators/TestClassModelBuilder.cs @@ -67,11 +67,11 @@ public static TestClassModel Build(INamedTypeSymbol typeSymbol, List can resolve the source by name at runtime. /// /// - /// This mirrors the [DynamicDependency(DynamicallyAccessedMemberTypes.All, ...)] that - /// MSTest.SourceGeneration already emits for every discovered test class and its base types. It over-preserves - /// (constructors, events, instance members, and so on) because there is no static-only or member-kind-scoped variant - /// that also walks the base hierarchy; this is intentional and unavoidable to keep the inherited-source scenario - /// trim-safe. + /// MSTest.SourceGeneration emits explicit method, field, and property roots for every discovered test class + /// and its base types. This broader annotation remains necessary for reflection-only callers because there is no + /// static-only or member-kind-scoped variant that also walks the base hierarchy. /// internal const DynamicallyAccessedMemberTypes RequiredMemberTypes = DynamicallyAccessedMemberTypes.All; @@ -30,8 +28,9 @@ public static IEnumerable GetData([DynamicallyAccessedMembers(Required { // Check if the declaring type of test data is passed in. If not, default to test method's class type. // In the supported trimming/NativeAOT configuration the test class (and its base types) are rooted by the - // [DynamicDependency(All)] that MSTest.SourceGeneration emits, so MethodInfo.DeclaringType stays trim-safe even - // though it is not statically annotated with DynamicallyAccessedMembersAttribute (see GetTestMethodDeclaringType). + // member-scoped [DynamicDependency] attributes that MSTest.SourceGeneration emits, so + // MethodInfo.DeclaringType stays trim-safe even though it is not statically annotated with + // DynamicallyAccessedMembersAttribute (see GetTestMethodDeclaringType). dynamicDataDeclaringType ??= GetTestMethodDeclaringType(methodInfo); DebugEx.Assert(dynamicDataDeclaringType is not null, "Declaring type of test data cannot be null."); @@ -199,7 +198,7 @@ private static bool TryGetData(object dataSource, [NotNullWhen(true)] out IEnume } [return: DynamicallyAccessedMembers(RequiredMemberTypes)] - [UnconditionalSuppressMessage("Trimming", "IL2073:Value returned does not have matching annotations", Justification = "In the supported trimming/NativeAOT configuration, test classes are source-generated: MSTest.SourceGeneration emits [DynamicDependency(DynamicallyAccessedMemberTypes.All, ...)] for every discovered test class and its base types, so MethodInfo.DeclaringType and its members are already rooted. This fallback only runs for the test method's own declaring type; it does not claim safety for unsupported reflection-only trimmed callers that discover tests without the source generator.")] + [UnconditionalSuppressMessage("Trimming", "IL2073:Value returned does not have matching annotations", Justification = "In the supported trimming/NativeAOT configuration, test classes are source-generated: MSTest.SourceGeneration emits explicit constructor, method, field, and property roots for every discovered test class and its base types, so MethodInfo.DeclaringType and the members DynamicData reflects over are already rooted. This fallback only runs for the test method's own declaring type; it does not claim safety for unsupported reflection-only trimmed callers that discover tests without the source generator.")] internal static Type? GetTestMethodDeclaringType(MethodInfo methodInfo) => methodInfo.DeclaringType; } diff --git a/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/NativeAotTests.cs b/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/NativeAotTests.cs index 00f8dc2c42..1b4dd4e813 100644 --- a/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/NativeAotTests.cs +++ b/test/IntegrationTests/MSTest.Acceptance.IntegrationTests/NativeAotTests.cs @@ -50,14 +50,29 @@ public class NativeAotTests : AcceptanceTestBase namespace MyTests; +public abstract class GenericBase +{ + protected static IEnumerable GenericData { get; } + = new[] + { + new object[] { 2, 3 } + }; +} + public sealed class RunAllFilter : ITestFilter { public TestFilterResult Filter(TestFilterContext context) => TestFilterResult.Run; } [TestClass] -public class UnitTest1 +public class UnitTest1 : GenericBase { + // These ordinary nested helper shapes used to be recursively rooted by + // DynamicDependency(All), surfacing IL2026 and IL3050 from their base types. + private sealed class NestedStream : MemoryStream { } + private sealed class NestedException : Exception { } + private enum ScenarioState { Ready } + [TestMethod] public void TestMethod1() { @@ -101,6 +116,16 @@ public void TestMethod5(int a, int b) new object[] { 1, 2 } }; + // The protected source cannot be called by generated code, so this exercises the reflection + // fallback and requires the closed generic base's non-public properties to remain rooted. + [TestMethod] + [DynamicData(nameof(GenericData))] + public void TestMethodFromGenericBase(int a, int b) + { + Assert.AreEqual(2, a); + Assert.AreEqual(3, b); + } + [TestMethod] [CombinatorialData] public void TestMethod6(CustomValue? value) @@ -191,7 +216,7 @@ public async Task NativeAotTests_WillRunWithExitCodeZero(string tfm) var testHost = TestHost.LocateFrom(generator.TargetAssetPath, "MSTestNativeAotTests", tfm, RID, Verb.publish); TestHostResult result = await testHost.ExecuteAsync(cancellationToken: TestContext.CancellationToken); - result.AssertOutputContainsSummary(failed: 0, passed: 8, skipped: 0); + result.AssertOutputContainsSummary(failed: 0, passed: 9, skipped: 0); result.AssertExitCodeIs(0); TestHostResult asyncGeneratedResult = await testHost.ExecuteAsync( diff --git a/test/UnitTests/MSTest.SourceGeneration.UnitTests/MSTestReflectionMetadataGeneratorTests.cs b/test/UnitTests/MSTest.SourceGeneration.UnitTests/MSTestReflectionMetadataGeneratorTests.cs index fad6c402d2..72b3b777b6 100644 --- a/test/UnitTests/MSTest.SourceGeneration.UnitTests/MSTestReflectionMetadataGeneratorTests.cs +++ b/test/UnitTests/MSTest.SourceGeneration.UnitTests/MSTestReflectionMetadataGeneratorTests.cs @@ -2843,6 +2843,100 @@ public void Test() { } support.Should().NotContain("{ get; init; }"); } + [TestMethod] + public void Generator_DynamicDependenciesDoNotRootNestedTypes() + { + const string userCode = """ + using Microsoft.VisualStudio.TestTools.UnitTesting; + + namespace Sample + { + public class BaseTests + { + private sealed class NestedException : System.Exception { } + + [TestMethod] + public void InheritedTest() { } + } + + [TestClass] + public class DerivedTests : BaseTests + { + private sealed class NestedStream : System.IO.MemoryStream { } + private enum ScenarioState { Ready } + + [TestMethod] + public void Test() { } + } + } + """; + + GeneratorRunResult result = RunGenerator(MinimalMSTestStub, userCode); + + result.Diagnostics.Should().BeEmpty(); + string registration = result.GeneratedSources + .Single(s => s.HintName == "MSTestReflectionMetadata.Registration.g.cs") + .SourceText.ToString(); + + registration.Should().Contain("[DynamicDependency(TestClassMemberTypes, typeof(global::Sample.DerivedTests))]"); + registration.Should().Contain("[DynamicDependency(TestClassMemberTypes, typeof(global::Sample.BaseTests))]"); + foreach (string memberType in new[] + { + "PublicConstructors", + "NonPublicConstructors", + "PublicMethods", + "NonPublicMethods", + "PublicFields", + "NonPublicFields", + "PublicProperties", + "NonPublicProperties", + }) + { + registration.Should().Contain($"DynamicallyAccessedMemberTypes.{memberType}"); + } + + registration.Should().NotContain("DynamicallyAccessedMemberTypes.All"); + registration.Should().NotContain("DynamicallyAccessedMemberTypes.PublicNestedTypes"); + registration.Should().NotContain("DynamicallyAccessedMemberTypes.NonPublicNestedTypes"); + } + + [TestMethod] + public void Generator_RootsClosedGenericBaseForDynamicDataReflectionFallback() + { + const string userCode = """ + using System.Collections.Generic; + using Microsoft.VisualStudio.TestTools.UnitTesting; + + namespace Sample + { + public abstract class GenericBase + { + protected static IEnumerable Data => new[] { new object[] { 1 } }; + } + + [TestClass] + public class DerivedTests : GenericBase + { + [TestMethod] + [DynamicData(nameof(Data))] + public void Test(int value) { } + } + } + """; + + GeneratorRunResult result = RunGenerator(MinimalMSTestStub, userCode); + + result.Diagnostics.Should().BeEmpty(); + string registration = result.GeneratedSources + .Single(s => s.HintName == "MSTestReflectionMetadata.Registration.g.cs") + .SourceText.ToString(); + string registry = GetRegistry(result); + + registration.Should().Contain( + "[DynamicDependency(TestClassMemberTypes, typeof(global::Sample.GenericBase))]"); + registry.Should().Contain("DynamicDataSources = Array.Empty()"); + } + [TestMethod] public void Generator_PreservesNullableEnumTestMethodParametersForNativeAot() { @@ -2911,7 +3005,7 @@ public void NotATest() { } .SourceText.ToString(); registration.Should().Contain("[ModuleInitializer]"); - registration.Should().Contain("[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(global::Sample.MyTests))]"); + registration.Should().Contain("[DynamicDependency(TestClassMemberTypes, typeof(global::Sample.MyTests))]"); // The initializer consumes the MSTestReflectionMetadata registry (no more dead code) and // publishes the delegate-based invokers via the richer Register overload so the adapter diff --git a/test/UnitTests/MSTest.SourceGeneration.UnitTests/ReflectionMetadataGeneratorTests.cs b/test/UnitTests/MSTest.SourceGeneration.UnitTests/ReflectionMetadataGeneratorTests.cs index a44f44221e..c5ec6b5090 100644 --- a/test/UnitTests/MSTest.SourceGeneration.UnitTests/ReflectionMetadataGeneratorTests.cs +++ b/test/UnitTests/MSTest.SourceGeneration.UnitTests/ReflectionMetadataGeneratorTests.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using AwesomeAssertions; @@ -80,8 +80,18 @@ namespace Microsoft.VisualStudio.TestPlatform.MSTestAdapter.PlatformServices.Sou { internal static class MSTestSourceGeneratedReflectionMetadata { + private const DynamicallyAccessedMemberTypes TestClassMemberTypes = + DynamicallyAccessedMemberTypes.PublicConstructors | + DynamicallyAccessedMemberTypes.NonPublicConstructors | + DynamicallyAccessedMemberTypes.PublicMethods | + DynamicallyAccessedMemberTypes.NonPublicMethods | + DynamicallyAccessedMemberTypes.PublicFields | + DynamicallyAccessedMemberTypes.NonPublicFields | + DynamicallyAccessedMemberTypes.PublicProperties | + DynamicallyAccessedMemberTypes.NonPublicProperties; + [ModuleInitializer] - [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(global::Sample.MyTests))] + [DynamicDependency(TestClassMemberTypes, typeof(global::Sample.MyTests))] internal static void Initialize() { var assembly = typeof(MSTestSourceGeneratedReflectionMetadata).Assembly; @@ -142,6 +152,54 @@ private static MethodInfo ResolveMethod([DynamicallyAccessedMembers(DynamicallyA generated.Should().Be(NormalizeNewlines(expected)); } + [TestMethod] + public void Generator_DynamicDependenciesDoNotRootNestedTypes() + { + const string userCode = """ + using Microsoft.VisualStudio.TestTools.UnitTesting; + + namespace Sample + { + public class BaseTests + { + private sealed class NestedException : System.Exception { } + + [TestMethod] + public void InheritedTest() { } + } + + [TestClass] + public class DerivedTests : BaseTests + { + private sealed class NestedStream : System.IO.MemoryStream { } + private enum ScenarioState { Ready } + + [TestMethod] + public void Test() { } + } + } + """; + + GeneratorRunResult result = RunGenerator(MinimalMSTestStub, userCode); + + result.Diagnostics.Should().BeEmpty(); + string generated = result.GeneratedSources.Single().SourceText.ToString(); + + generated.Should().Contain("[DynamicDependency(TestClassMemberTypes, typeof(global::Sample.DerivedTests))]"); + generated.Should().Contain("[DynamicDependency(TestClassMemberTypes, typeof(global::Sample.BaseTests))]"); + generated.Should().Contain("DynamicallyAccessedMemberTypes.PublicConstructors"); + generated.Should().Contain("DynamicallyAccessedMemberTypes.NonPublicConstructors"); + generated.Should().Contain("DynamicallyAccessedMemberTypes.PublicMethods"); + generated.Should().Contain("DynamicallyAccessedMemberTypes.NonPublicMethods"); + generated.Should().Contain("DynamicallyAccessedMemberTypes.PublicFields"); + generated.Should().Contain("DynamicallyAccessedMemberTypes.NonPublicFields"); + generated.Should().Contain("DynamicallyAccessedMemberTypes.PublicProperties"); + generated.Should().Contain("DynamicallyAccessedMemberTypes.NonPublicProperties"); + generated.Should().NotContain("DynamicallyAccessedMemberTypes.All"); + generated.Should().NotContain("DynamicallyAccessedMemberTypes.PublicNestedTypes"); + generated.Should().NotContain("DynamicallyAccessedMemberTypes.NonPublicNestedTypes"); + } + [TestMethod] public void Generator_GeneratedFile_HasExpectedHintName() { @@ -300,9 +358,9 @@ public void Test2() {} // generated module initializer so that members declared on it ([ClassInitialize], // [ClassCleanup], [AssemblyInitialize], [AssemblyCleanup], TestContext setter) are // preserved by the IL trimmer / Native AOT. Without this hint those members live only - // on the abstract base and are trimmed because [DynamicDependency(All, typeof(Concrete))] + // on the abstract base and are trimmed because preserving the concrete type's members // does not preserve base-type members. - generated.Should().Contain("[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(global::Sample.AbstractTests))]"); + generated.Should().Contain("[DynamicDependency(TestClassMemberTypes, typeof(global::Sample.AbstractTests))]"); } [TestMethod] @@ -617,8 +675,8 @@ public void TestB() {} // two [DynamicDependency] attributes on Initialize. We assert each block as a // contiguous snippet so the per-class layout is locked in. const string expectedDynamicDependencies = """ - [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(global::Sample.AlphaTests))] - [DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(global::Sample.BetaTests))] + [DynamicDependency(TestClassMemberTypes, typeof(global::Sample.AlphaTests))] + [DynamicDependency(TestClassMemberTypes, typeof(global::Sample.BetaTests))] """; generated.Should().Contain(NormalizeNewlines(expectedDynamicDependencies)); @@ -789,9 +847,9 @@ public sealed class ClassInitializeAttribute : System.Attribute {} // trimmer keeps members like [AssemblyInitialize] (declared on GrandparentTests) and // [ClassInitialize] (declared on ParentTests). The concrete [TestClass] still owns the // discovery entry, but the trimmer roots are emitted per type. - generated.Should().Contain("[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(global::Sample.Derived))]"); - generated.Should().Contain("[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(global::Sample.ParentTests))]"); - generated.Should().Contain("[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(global::Sample.GrandparentTests))]"); + generated.Should().Contain("[DynamicDependency(TestClassMemberTypes, typeof(global::Sample.Derived))]"); + generated.Should().Contain("[DynamicDependency(TestClassMemberTypes, typeof(global::Sample.ParentTests))]"); + generated.Should().Contain("[DynamicDependency(TestClassMemberTypes, typeof(global::Sample.GrandparentTests))]"); // Bases must NOT appear in the types[] array or the testMethods{} dictionary — they are // not runnable test classes; discovery still goes through the concrete [TestClass]. @@ -841,7 +899,7 @@ public void TestB() {} // be emitted N times for N derived classes, bloating the generated source. int sharedBaseCount = CountOccurrences( generated, - "[DynamicDependency(DynamicallyAccessedMemberTypes.All, typeof(global::Sample.SharedBase))]"); + "[DynamicDependency(TestClassMemberTypes, typeof(global::Sample.SharedBase))]"); sharedBaseCount.Should().Be(1); } @@ -913,7 +971,7 @@ public void TestB() {} } [TestMethod] - public void Generator_DoesNotEmitDynamicDependencyForGenericBase() + public void Generator_EmitsDynamicDependencyForClosedGenericBase() { const string userCode = """ using Microsoft.VisualStudio.TestTools.UnitTesting; @@ -940,12 +998,9 @@ public void Test1() {} result.Diagnostics.Should().BeEmpty(); string generated = result.GeneratedSources[0].SourceText.ToString(); - // For this conservative iteration we skip generic base types from [DynamicDependency] - // emission — emitting `typeof(GenericBase)` is technically valid but adds edge - // cases (open vs. closed, type-parameter capture) that the rest of the generator does - // not exercise. The derived class itself is still emitted, and the inherited test - // method is still surfaced through the base-walk in the methods collection. - generated.Should().NotContain("typeof(global::Sample.GenericBase"); + // A non-generic test class can inherit a closed generic base. Root that constructed + // base explicitly so inherited non-public members used by reflection survive trimming. + generated.Should().Contain("[DynamicDependency(TestClassMemberTypes, typeof(global::Sample.GenericBase))]"); generated.Should().Contain("typeof(global::Sample.Derived)"); generated.Should().Contain("ResolveMethod(typeof(global::Sample.Derived), \"InheritedTest\", Type.EmptyTypes)"); } From 20cec2066bcafa5acc1218398a386d6ea9d4b721 Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Thu, 3 Sep 2026 14:54:52 +0200 Subject: [PATCH 13/33] Remove MSBuildCache integration by @Evangelink in #11007 (backport to rel/4.4) (#11008) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../build-failure-analysis-command.lock.yml | 7 +- .../workflows/build-failure-analysis.lock.yml | 7 +- .../shared/build-failure-analysis-fetch.md | 5 +- Directory.Build.props | 35 -- Directory.Packages.props | 9 - NuGet.config | 2 - azure-pipelines.yml | 483 +----------------- docs/affected-test-selection.md | 11 +- docs/dev-guide.md | 29 -- eng/install-access-database-engine.ps1 | 11 +- .../test-windows-configuration-tests.yml | 22 +- eng/validate-affected-tests.ps1 | 15 +- .../Microsoft.Testing.Platform.MSBuild.csproj | 4 +- 13 files changed, 30 insertions(+), 610 deletions(-) diff --git a/.github/workflows/build-failure-analysis-command.lock.yml b/.github/workflows/build-failure-analysis-command.lock.yml index 48a40fba03..78406ad58d 100644 --- a/.github/workflows/build-failure-analysis-command.lock.yml +++ b/.github/workflows/build-failure-analysis-command.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"02336155118a7e0c63da6d2cb3d3c0913567ae01e5dbf153a3c9feb90785631b","body_hash":"e06ee4eaa7c01b6d039468dc215f64e0fb0cdf479c9c70db8f6642cbca3628d4","compiler_version":"v0.86.2","strict":true,"agent_id":"copilot","detection_agent_id":"copilot","detection_agent_model":"detection","engine_versions":{"copilot":"1.0.79"}} +# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"cb935a3c569d17b7c48711fb3db5b045b3bb5b84e358efd2b39e45156adc2224","body_hash":"e06ee4eaa7c01b6d039468dc215f64e0fb0cdf479c9c70db8f6642cbca3628d4","compiler_version":"v0.86.2","strict":true,"agent_id":"copilot","detection_agent_id":"copilot","detection_agent_model":"detection","engine_versions":{"copilot":"1.0.79"}} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"6aab9e5b5c91c615506061f09bedd81a23babe3c","version":"v0.86.2"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.44","digest":"sha256:0d727725c737b58c7bdf51f640cffb928385ec46517e0917c7f1a02f1bada8b4","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.44@sha256:0d727725c737b58c7bdf51f640cffb928385ec46517e0917c7f1a02f1bada8b4"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.44","digest":"sha256:b50fbadba138f6e9aba94aca09711335c489bb3b15861220cb66f6092e042dc7","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.44@sha256:b50fbadba138f6e9aba94aca09711335c489bb3b15861220cb66f6092e042dc7"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.44","digest":"sha256:83e48bbe12c634be8c228a576832fe45f66c529ac3659db92bddbcf2eeb6d627","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.44@sha256:83e48bbe12c634be8c228a576832fe45f66c529ac3659db92bddbcf2eeb6d627"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.4.9","digest":"sha256:e5a1569aeaf41820fa7bdee3e94468cae448133cdbf00119ad24f5b74db1ab9f","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.4.9@sha256:e5a1569aeaf41820fa7bdee3e94468cae448133cdbf00119ad24f5b74db1ab9f"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:0d9f1fb5fd6610c0ac1f5194a38e45a8a1e81f8a390d5142d8e4e6f26a4b3196","pinned_image":"ghcr.io/github/gh-aw-node@sha256:0d9f1fb5fd6610c0ac1f5194a38e45a8a1e81f8a390d5142d8e4e6f26a4b3196"},{"image":"ghcr.io/github/github-mcp-server:v1.9.0","digest":"sha256:881b53d6f75f69bdbc1b5b10fc2f1361717c19054143b3a8529fb5c32061a50e","pinned_image":"ghcr.io/github/github-mcp-server:v1.9.0@sha256:881b53d6f75f69bdbc1b5b10fc2f1361717c19054143b3a8529fb5c32061a50e"},{"image":"mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-binlog-mcp-amd64","digest":"sha256:ee7b7e5c6e162f3f0061822aa7183260626f1a1e986d04ba9915ab197a37932c","pinned_image":"mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-binlog-mcp-amd64@sha256:ee7b7e5c6e162f3f0061822aa7183260626f1a1e986d04ba9915ab197a37932c"}]} # This file was automatically generated by gh-aw (v0.86.2). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md # @@ -2078,11 +2078,10 @@ jobs: # than guessing its artifact name from its display name. Artifact # naming is configurable per job group and does not necessarily match # the timeline display name. Name matching reported healthy legs as - # missing on real builds — every macOS failure, and every - # `msbuild_cache_seed` job. Arcade's + # missing on real builds — including every macOS failure. Arcade's # `Publish logs` task record answers the question directly, so no # spelling has to be inferred. A failed job carrying no such task - # (the `Detect changed paths` classifier, the cache-seed stage) does + # (the `Detect changed paths` classifier) does # not publish logs at all and is not treated as a missing leg. # # `canceled` and `abandoned` legs count alongside `failed`: they also diff --git a/.github/workflows/build-failure-analysis.lock.yml b/.github/workflows/build-failure-analysis.lock.yml index 5e849d3e9c..3428501ef2 100644 --- a/.github/workflows/build-failure-analysis.lock.yml +++ b/.github/workflows/build-failure-analysis.lock.yml @@ -1,4 +1,4 @@ -# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"d6dddc97e8cfbfb620ed51cf51f6bf2346dad4795c002ee0824797ee306be123","body_hash":"27596f31997c41ec679725edb7a4ca776cf8ce21bae5d5d05f09f2f909240217","compiler_version":"v0.86.2","strict":true,"agent_id":"copilot","detection_agent_id":"copilot","detection_agent_model":"detection","engine_versions":{"copilot":"1.0.79"}} +# gh-aw-metadata: {"schema_version":"v4","frontmatter_hash":"56f2184d35125dab4303facba771e6f42f1c0d06b969c2eff439bb8e73ca25d5","body_hash":"27596f31997c41ec679725edb7a4ca776cf8ce21bae5d5d05f09f2f909240217","compiler_version":"v0.86.2","strict":true,"agent_id":"copilot","detection_agent_id":"copilot","detection_agent_model":"detection","engine_versions":{"copilot":"1.0.79"}} # gh-aw-manifest: {"version":1,"secrets":["GH_AW_CI_TRIGGER_TOKEN","GH_AW_GITHUB_MCP_SERVER_TOKEN","GH_AW_GITHUB_TOKEN","GITHUB_TOKEN"],"actions":[{"repo":"actions/cache/restore","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/cache/save","sha":"55cc8345863c7cc4c66a329aec7e433d2d1c52a9","version":"v6.1.0"},{"repo":"actions/checkout","sha":"3d3c42e5aac5ba805825da76410c181273ba90b1","version":"v7.0.1"},{"repo":"actions/download-artifact","sha":"3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c","version":"v8.0.1"},{"repo":"actions/github-script","sha":"3a2844b7e9c422d3c10d287c895573f7108da1b3","version":"v9.0.0"},{"repo":"actions/setup-node","sha":"820762786026740c76f36085b0efc47a31fe5020","version":"v7.0.0"},{"repo":"actions/upload-artifact","sha":"043fb46d1a93c77aae656e7c1c64a875d1fc6a0a","version":"v7.0.1"},{"repo":"github/gh-aw-actions/setup","sha":"6aab9e5b5c91c615506061f09bedd81a23babe3c","version":"v0.86.2"}],"containers":[{"image":"ghcr.io/github/gh-aw-firewall/agent:0.27.44","digest":"sha256:0d727725c737b58c7bdf51f640cffb928385ec46517e0917c7f1a02f1bada8b4","pinned_image":"ghcr.io/github/gh-aw-firewall/agent:0.27.44@sha256:0d727725c737b58c7bdf51f640cffb928385ec46517e0917c7f1a02f1bada8b4"},{"image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.44","digest":"sha256:b50fbadba138f6e9aba94aca09711335c489bb3b15861220cb66f6092e042dc7","pinned_image":"ghcr.io/github/gh-aw-firewall/api-proxy:0.27.44@sha256:b50fbadba138f6e9aba94aca09711335c489bb3b15861220cb66f6092e042dc7"},{"image":"ghcr.io/github/gh-aw-firewall/squid:0.27.44","digest":"sha256:83e48bbe12c634be8c228a576832fe45f66c529ac3659db92bddbcf2eeb6d627","pinned_image":"ghcr.io/github/gh-aw-firewall/squid:0.27.44@sha256:83e48bbe12c634be8c228a576832fe45f66c529ac3659db92bddbcf2eeb6d627"},{"image":"ghcr.io/github/gh-aw-mcpg:v0.4.9","digest":"sha256:e5a1569aeaf41820fa7bdee3e94468cae448133cdbf00119ad24f5b74db1ab9f","pinned_image":"ghcr.io/github/gh-aw-mcpg:v0.4.9@sha256:e5a1569aeaf41820fa7bdee3e94468cae448133cdbf00119ad24f5b74db1ab9f"},{"image":"ghcr.io/github/gh-aw-node","digest":"sha256:0d9f1fb5fd6610c0ac1f5194a38e45a8a1e81f8a390d5142d8e4e6f26a4b3196","pinned_image":"ghcr.io/github/gh-aw-node@sha256:0d9f1fb5fd6610c0ac1f5194a38e45a8a1e81f8a390d5142d8e4e6f26a4b3196"},{"image":"ghcr.io/github/github-mcp-server:v1.9.0","digest":"sha256:881b53d6f75f69bdbc1b5b10fc2f1361717c19054143b3a8529fb5c32061a50e","pinned_image":"ghcr.io/github/github-mcp-server:v1.9.0@sha256:881b53d6f75f69bdbc1b5b10fc2f1361717c19054143b3a8529fb5c32061a50e"},{"image":"mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-binlog-mcp-amd64","digest":"sha256:ee7b7e5c6e162f3f0061822aa7183260626f1a1e986d04ba9915ab197a37932c","pinned_image":"mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux-3.0-binlog-mcp-amd64@sha256:ee7b7e5c6e162f3f0061822aa7183260626f1a1e986d04ba9915ab197a37932c"}]} # This file was automatically generated by gh-aw (v0.86.2). DO NOT EDIT. To debug this workflow, load the skill at https://github.com/github/gh-aw/blob/main/debug.md # @@ -2091,11 +2091,10 @@ jobs: # than guessing its artifact name from its display name. Artifact # naming is configurable per job group and does not necessarily match # the timeline display name. Name matching reported healthy legs as - # missing on real builds — every macOS failure, and every - # `msbuild_cache_seed` job. Arcade's + # missing on real builds — including every macOS failure. Arcade's # `Publish logs` task record answers the question directly, so no # spelling has to be inferred. A failed job carrying no such task - # (the `Detect changed paths` classifier, the cache-seed stage) does + # (the `Detect changed paths` classifier) does # not publish logs at all and is not treated as a missing leg. # # `canceled` and `abandoned` legs count alongside `failed`: they also diff --git a/.github/workflows/shared/build-failure-analysis-fetch.md b/.github/workflows/shared/build-failure-analysis-fetch.md index b4ccd60a6c..704b3b0a22 100644 --- a/.github/workflows/shared/build-failure-analysis-fetch.md +++ b/.github/workflows/shared/build-failure-analysis-fetch.md @@ -504,11 +504,10 @@ jobs: # than guessing its artifact name from its display name. Artifact # naming is configurable per job group and does not necessarily match # the timeline display name. Name matching reported healthy legs as - # missing on real builds — every macOS failure, and every - # `msbuild_cache_seed` job. Arcade's + # missing on real builds — including every macOS failure. Arcade's # `Publish logs` task record answers the question directly, so no # spelling has to be inferred. A failed job carrying no such task - # (the `Detect changed paths` classifier, the cache-seed stage) does + # (the `Detect changed paths` classifier) does # not publish logs at all and is not treated as a missing leg. # # `canceled` and `abandoned` legs count alongside `failed`: they also diff --git a/Directory.Build.props b/Directory.Build.props index d147a1a774..57d6588367 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -11,41 +11,6 @@ false - - - false - - - - - - testfx-v1-$(Configuration) - $(RepoRoot)artifacts\msbuild-cache - 20480 - - $(MSBuildCacheIdenticalDuplicateOutputPatterns);\** - - $(MSBuildCacheAllowFileAccessAfterProjectFinishFilePatterns);$(WinDir)\**;\**\ApplicationInsights.config;\**\AppData\Local\Microsoft\VSApplicationInsights\**;\**\AppData\Local\Microsoft\Windows\INetCache\** - - diff --git a/Directory.Packages.props b/Directory.Packages.props index 44b060080c..9e3cd2c26e 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -11,15 +11,6 @@ false - - Microsoft.MSBuildCache.AzurePipelines - Microsoft.MSBuildCache.Local - 0.1.328-preview - - - - - - $(TestingPlatformCommandLineArguments) --show-test-results failed $(TestingPlatformCommandLineArguments) --report-ctrf --report-ctrf-filename $(MSBuildProjectName)_$(TargetFramework).ctrf.json + + + diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Helpers/TestCommandLineOptions.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Helpers/TestCommandLineOptions.cs index f58fedb461..f73357e904 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Helpers/TestCommandLineOptions.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Helpers/TestCommandLineOptions.cs @@ -5,13 +5,26 @@ namespace Microsoft.Testing.Platform.UnitTests.Helpers; -internal class TestCommandLineOptions : ICommandLineOptions +internal class TestCommandLineOptions : ICommandLineOptions, ICommandLineOptionsWithDefaults { private readonly Dictionary _options; + private readonly Dictionary _defaults; - public TestCommandLineOptions(Dictionary options) => _options = options; + public TestCommandLineOptions(Dictionary options) + : this(options, []) + { + } + + public TestCommandLineOptions(Dictionary options, Dictionary defaults) + { + _options = options; + _defaults = defaults; + } public bool IsOptionSet(string optionName) => _options.ContainsKey(optionName); public bool TryGetOptionArgumentList(string optionName, [NotNullWhen(true)] out string[]? arguments) => _options.TryGetValue(optionName, out arguments); + + bool ICommandLineOptionsWithDefaults.TryGetOptionArgumentListOrDefault(string optionName, [NotNullWhen(true)] out string[]? arguments) + => _options.TryGetValue(optionName, out arguments) || _defaults.TryGetValue(optionName, out arguments); } diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/OutputDevice/Terminal/TerminalTestReporterCommandLineOptionsProviderTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/OutputDevice/Terminal/TerminalTestReporterCommandLineOptionsProviderTests.cs index 7608139dd9..b6369de1f8 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/OutputDevice/Terminal/TerminalTestReporterCommandLineOptionsProviderTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/OutputDevice/Terminal/TerminalTestReporterCommandLineOptionsProviderTests.cs @@ -425,6 +425,35 @@ public void GetShowTestResultsVisibility_WhenOptionPresent_ReturnsParsedFlags() Assert.AreEqual(TestResultVisibility.Passed | TestResultVisibility.Skipped, TerminalTestReporterCommandLineOptionsProvider.GetShowTestResultsVisibility(options)); } + [TestMethod] + public void GetShowTestResultsVisibility_WhenPassiveDefaultPresent_ReturnsParsedFlags() + { + var options = new Helpers.TestCommandLineOptions( + [], + new Dictionary + { + [TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsOption] = ["failed"], + }); + + Assert.AreEqual(TestResultVisibility.Failed, TerminalTestReporterCommandLineOptionsProvider.GetShowTestResultsVisibility(options)); + } + + [TestMethod] + public void GetShowTestResultsVisibility_WhenOptionAndPassiveDefaultPresent_OptionWins() + { + var options = new Helpers.TestCommandLineOptions( + new Dictionary + { + [TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsOption] = ["skipped"], + }, + new Dictionary + { + [TerminalTestReporterCommandLineOptionsProvider.ShowTestResultsOption] = ["failed"], + }); + + Assert.AreEqual(TestResultVisibility.Skipped, TerminalTestReporterCommandLineOptionsProvider.GetShowTestResultsVisibility(options)); + } + [TestMethod] public void GetShowTestResultsVisibility_WhenPresentValueWasNotValidated_Throws() { @@ -438,10 +467,10 @@ public void GetShowTestResultsVisibility_WhenPresentValueWasNotValidated_Throws( Assert.AreEqual("The --show-test-results option was not validated.", exception.Message); } - // TerminalOutputDevice.GetShowTestResultsVisibility resolution/precedence: an explicit --show-test-results - // always wins over --output; absent it, --output's 'Minimal' maps to 'failed', 'Detailed' maps to 'all', and - // everything else (including no --output at all) maps to 'failed'+'skipped'. Since both options are read independently by name from the - // same options bag, the resolution cannot depend on which one a user typed first on the command line. + // TerminalOutputDevice.GetShowTestResultsVisibility resolution/precedence: an explicit or passive-default + // --show-test-results value wins over --output; absent both, --output's 'Minimal' maps to 'failed', 'Detailed' + // maps to 'all', and everything else (including no --output at all) maps to 'failed'+'skipped'. Since both + // options are read independently by name from the same options bag, resolution cannot depend on CLI order. // // Comparisons cast to int: TerminalOutputDevice itself is not compiled into this test project (only the // OutputDevice\Terminal folder is, via the Compile Include in the .csproj), so its return value is the From 7b7eaead60d9280b5ab73a23a92593f82892c171 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Fri, 4 Sep 2026 10:50:47 +0200 Subject: [PATCH 15/33] Backport #10963 and #10997 to rel/4.4 (#11020) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 76b97bb3-f245-4966-ad27-455c0aff2d79 --- .../InternalAPI/InternalAPI.Unshipped.txt | 4 + .../RetryArgumentsBuilder.cs | 148 ++++++++++++----- .../RetryOrchestrator.cs | 93 ++++++++--- .../Builder/TestApplication.cs | 4 +- .../Builder/TestApplicationBuilder.cs | 13 +- .../CommandLine/ParseResult.cs | 13 ++ .../CommandLine/Parser.cs | 6 +- .../CommandLine/ResponseFileHelper.cs | 96 +++++++++-- .../InternalAPI/InternalAPI.Unshipped.txt | 6 + .../Resources/PlatformResources.cs | 2 + .../Resources/PlatformResources.resx | 3 + .../Resources/xlf/PlatformResources.cs.xlf | 5 + .../Resources/xlf/PlatformResources.de.xlf | 5 + .../Resources/xlf/PlatformResources.es.xlf | 5 + .../Resources/xlf/PlatformResources.fr.xlf | 5 + .../Resources/xlf/PlatformResources.it.xlf | 5 + .../Resources/xlf/PlatformResources.ja.xlf | 5 + .../Resources/xlf/PlatformResources.ko.xlf | 5 + .../Resources/xlf/PlatformResources.pl.xlf | 5 + .../Resources/xlf/PlatformResources.pt-BR.xlf | 5 + .../Resources/xlf/PlatformResources.ru.xlf | 5 + .../Resources/xlf/PlatformResources.tr.xlf | 5 + .../xlf/PlatformResources.zh-Hans.xlf | 5 + .../xlf/PlatformResources.zh-Hant.xlf | 5 + .../CurrentTestApplicationModuleInfo.cs | 59 ++++--- .../Services/ExecutableInfo.cs | 23 ++- .../RetryFailedTestsTests.cs | 74 +++++++++ .../RetryArgumentsBuilderTests.cs | 151 ++++++++++++++++++ .../RetryTests.cs | 36 +++++ .../CommandLine/CommandLineTests.cs | 49 ++++++ .../CommandLine/ResponseFileHelperTests.cs | 143 +++++++++++++++++ .../CurrentTestApplicationModuleInfoTests.cs | 36 ++++- 32 files changed, 917 insertions(+), 107 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt index 7dc5c58110..86abd98eda 100644 --- a/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt @@ -1 +1,5 @@ #nullable enable +static Microsoft.Testing.Extensions.Policy.RetryArgumentsBuilder.BuildAttemptArgumentsAsync(Microsoft.Testing.Platform.Helpers.IFileSystem! fileSystem, string![]! executableArguments, string![]! originalExecutableArguments, System.Collections.Generic.List! indexToCleanup, string! currentTryResultFolder, string! retryRootFolder, string! pipeName, string![]? lastListOfFailedId, int attemptCount) -> System.Threading.Tasks.Task!>! +static Microsoft.Testing.Extensions.Policy.RetryArgumentsBuilder.GetArgumentsResponseFilePath(string! retryRootFolder, int attemptCount) -> string! +static Microsoft.Testing.Extensions.Policy.RetryArgumentsBuilder.GetFilterUidsResponseFilePath(string! retryRootFolder, int attemptCount) -> string! +static Microsoft.Testing.Extensions.Policy.RetryOrchestrator.LogResponseFileFallbackWarningAsync(Microsoft.Testing.Platform.Logging.ILogger! logger, string![]! originalExecutableArguments, System.Collections.Generic.List! finalArguments, string! generatedResponseFilePath) -> System.Threading.Tasks.Task! diff --git a/src/Platform/Microsoft.Testing.Extensions.Retry/RetryArgumentsBuilder.cs b/src/Platform/Microsoft.Testing.Extensions.Retry/RetryArgumentsBuilder.cs index fbba73a932..9261d8477c 100644 --- a/src/Platform/Microsoft.Testing.Extensions.Retry/RetryArgumentsBuilder.cs +++ b/src/Platform/Microsoft.Testing.Extensions.Retry/RetryArgumentsBuilder.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under dual-license. See LICENSE.PLATFORMTOOLS.txt file in the project root for full license information. using Microsoft.Testing.Platform.CommandLine; @@ -20,6 +20,12 @@ internal static class RetryArgumentsBuilder private const int CommandLineLengthLimit = 30_000; private const int PerArgumentOverhead = 3; + internal static string GetArgumentsResponseFilePath(string retryRootFolder, int attemptCount) + => Path.Combine(retryRootFolder, $"retry-arguments-{attemptCount}.rsp"); + + internal static string GetFilterUidsResponseFilePath(string retryRootFolder, int attemptCount) + => Path.Combine(retryRootFolder, $"retry-filter-uids-{attemptCount}.rsp"); + /// /// Computes the indices of the original executable arguments that must be dropped when restarting the test /// host, namely the retry-specific options and the result-directory option (which is re-injected per attempt). @@ -28,47 +34,47 @@ public static List ComputeIndicesToCleanup(string[] executableArguments) { List indexToCleanup = []; - int argIndex = RetryOrchestratorHelper.GetOptionArgumentIndex(RetryCommandLineOptionsProvider.RetryFailedTestsOptionName, executableArguments); - if (argIndex < 0) + if (!AddOptionIndicesToCleanup(RetryCommandLineOptionsProvider.RetryFailedTestsOptionName)) { throw ApplicationStateGuard.Unreachable(); } - indexToCleanup.Add(argIndex); - indexToCleanup.Add(argIndex + 1); + AddOptionIndicesToCleanup(RetryCommandLineOptionsProvider.RetryFailedTestsMaxPercentageOptionName); + AddOptionIndicesToCleanup(RetryCommandLineOptionsProvider.RetryFailedTestsMaxTestsOptionName); + AddOptionIndicesToCleanup(RetryCommandLineOptionsProvider.RetryFailedTestsDelayOptionName); + AddOptionIndicesToCleanup(PlatformCommandLineProvider.ResultDirectoryOptionKey); - argIndex = RetryOrchestratorHelper.GetOptionArgumentIndex(RetryCommandLineOptionsProvider.RetryFailedTestsMaxPercentageOptionName, executableArguments); - if (argIndex > -1) - { - indexToCleanup.Add(argIndex); - indexToCleanup.Add(argIndex + 1); - } + return indexToCleanup; - argIndex = RetryOrchestratorHelper.GetOptionArgumentIndex(RetryCommandLineOptionsProvider.RetryFailedTestsMaxTestsOptionName, executableArguments); - if (argIndex > -1) + bool AddOptionIndicesToCleanup(string optionName) { - indexToCleanup.Add(argIndex); - indexToCleanup.Add(argIndex + 1); - } + string shortForm = $"-{optionName}"; + string longForm = $"-{shortForm}"; + bool found = false; - argIndex = RetryOrchestratorHelper.GetOptionArgumentIndex(RetryCommandLineOptionsProvider.RetryFailedTestsDelayOptionName, executableArguments); - if (argIndex > -1) - { - indexToCleanup.Add(argIndex); - if (argIndex + 1 < executableArguments.Length) + for (int i = 0; i < executableArguments.Length; i++) { - indexToCleanup.Add(argIndex + 1); + string argument = executableArguments[i]; + bool isSeparate = argument == shortForm || argument == longForm; + bool isInline = argument.StartsWith(shortForm + "=", StringComparison.Ordinal) + || argument.StartsWith(shortForm + ":", StringComparison.Ordinal) + || argument.StartsWith(longForm + "=", StringComparison.Ordinal) + || argument.StartsWith(longForm + ":", StringComparison.Ordinal); + if (!isSeparate && !isInline) + { + continue; + } + + found = true; + indexToCleanup.Add(i); + if (isSeparate && i + 1 < executableArguments.Length) + { + indexToCleanup.Add(i + 1); + } } - } - argIndex = RetryOrchestratorHelper.GetOptionArgumentIndex(PlatformCommandLineProvider.ResultDirectoryOptionKey, executableArguments); - if (argIndex > -1) - { - indexToCleanup.Add(argIndex); - indexToCleanup.Add(argIndex + 1); + return found; } - - return indexToCleanup; } /// @@ -84,6 +90,27 @@ public static async Task> BuildAttemptArgumentsAsync( string pipeName, string[]? lastListOfFailedId, int attemptCount) + => await BuildAttemptArgumentsAsync( + fileSystem, + executableArguments, + executableArguments, + indexToCleanup, + currentTryResultFolder, + retryRootFolder, + pipeName, + lastListOfFailedId, + attemptCount).ConfigureAwait(false); + + public static async Task> BuildAttemptArgumentsAsync( + IFileSystem fileSystem, + string[] executableArguments, + string[] originalExecutableArguments, + List indexToCleanup, + string currentTryResultFolder, + string retryRootFolder, + string pipeName, + string[]? lastListOfFailedId, + int attemptCount) { List finalArguments = []; @@ -98,6 +125,47 @@ public static async Task> BuildAttemptArgumentsAsync( finalArguments.Add(executableArguments[i]); } + int responseFileIndex = Array.FindIndex(originalExecutableArguments, argument => argument.StartsWith("@", StringComparison.Ordinal)); + List? directPrefixArguments = null; + if (responseFileIndex >= 0) + { + directPrefixArguments = []; + for (int i = 0; i < responseFileIndex; i++) + { + if (!indexToCleanup.Contains(i)) + { + directPrefixArguments.Add(executableArguments[i]); + } + } + } + + // When retrying, replace any existing test filter with --filter-uid for the failed tests. + if (lastListOfFailedId is { Length: > 0 }) + { + RemoveRetryOnlyOptions(finalArguments); + if (directPrefixArguments is not null) + { + RemoveRetryOnlyOptions(directPrefixArguments); + } + } + + if (directPrefixArguments is not null + && !finalArguments.Skip(directPrefixArguments.Count).Any(argument => argument.IndexOf('"') >= 0)) + { + string responseFilePath = GetArgumentsResponseFilePath(retryRootFolder, attemptCount); + using (IFileStream stream = fileSystem.NewFileStream(responseFilePath, FileMode.Create, FileAccess.Write)) + using (var writer = new StreamWriter(stream.Stream)) + { + foreach (string argument in finalArguments.Skip(directPrefixArguments.Count)) + { + await writer.WriteLineAsync($"\"{argument}\"").ConfigureAwait(false); + } + } + + finalArguments.RemoveRange(directPrefixArguments.Count, finalArguments.Count - directPrefixArguments.Count); + finalArguments.Add($"@{responseFilePath}"); + } + // Fix result folder finalArguments.Add($"--{PlatformCommandLineProvider.ResultDirectoryOptionKey}"); finalArguments.Add(currentTryResultFolder); @@ -106,17 +174,8 @@ public static async Task> BuildAttemptArgumentsAsync( finalArguments.Add($"--{RetryCommandLineOptionsProvider.RetryFailedTestsPipeNameOptionName}"); finalArguments.Add(pipeName); - // When retrying, replace any existing test filter with --filter-uid for the failed tests if (lastListOfFailedId is { Length: > 0 }) { - RetryOrchestratorHelper.RemoveOption(finalArguments, TreeNodeFilterCommandLineOptionsProvider.TreenodeFilter); - RetryOrchestratorHelper.RemoveOption(finalArguments, PlatformCommandLineProvider.FilterUidOptionKey); - - // Strip --minimum-expected-tests on retry attempts: a retry only re-runs the previously - // failed tests, so propagating the original threshold (computed against the full test - // set) would always trip the policy and fail the run. See issue #5639. - RetryOrchestratorHelper.RemoveOption(finalArguments, PlatformCommandLineProvider.MinimumExpectedTestsOptionKey); - // The RSP parser (ResponseFileHelper.SplitCommandLine) strips all '"' characters // from tokens, so UIDs containing literal '"' (e.g. parameterized tests with // string arguments that include double quotes) cannot safely round-trip through @@ -151,7 +210,7 @@ public static async Task> BuildAttemptArgumentsAsync( // Use a response file to avoid exceeding command-line length limits. // Write to retryRootFolder (not the per-attempt folder) so it won't be included // in the final results move. - string responseFilePath = Path.Combine(retryRootFolder, $"retry-filter-uids-{attemptCount}.rsp"); + string responseFilePath = GetFilterUidsResponseFilePath(retryRootFolder, attemptCount); using (IFileStream stream = fileSystem.NewFileStream(responseFilePath, FileMode.Create, FileAccess.Write)) using (var writer = new StreamWriter(stream.Stream)) { @@ -172,5 +231,14 @@ public static async Task> BuildAttemptArgumentsAsync( } return finalArguments; + + static void RemoveRetryOnlyOptions(List arguments) + { + RetryOrchestratorHelper.RemoveOption(arguments, TreeNodeFilterCommandLineOptionsProvider.TreenodeFilter); + RetryOrchestratorHelper.RemoveOption(arguments, PlatformCommandLineProvider.FilterUidOptionKey); + + // A retry only re-runs the previously failed tests, so the original full-suite threshold must not apply. + RetryOrchestratorHelper.RemoveOption(arguments, PlatformCommandLineProvider.MinimumExpectedTestsOptionKey); + } } } diff --git a/src/Platform/Microsoft.Testing.Extensions.Retry/RetryOrchestrator.cs b/src/Platform/Microsoft.Testing.Extensions.Retry/RetryOrchestrator.cs index 46567f01d5..869da5e415 100644 --- a/src/Platform/Microsoft.Testing.Extensions.Retry/RetryOrchestrator.cs +++ b/src/Platform/Microsoft.Testing.Extensions.Retry/RetryOrchestrator.cs @@ -125,7 +125,8 @@ public async Task OrchestrateTestHostExecutionAsync(CancellationToken cance int userMaxRetryCount = int.Parse(cmdRetries[0], CultureInfo.InvariantCulture); // Find out the retry args indices so we can clean up the command line when we restart. - string[] executableArguments = [.. executableInfo.Arguments]; + string[] originalExecutableArguments = [.. executableInfo.Arguments]; + string[] executableArguments = [.. executableInfo.ExpandedArguments]; List indexToCleanup = RetryArgumentsBuilder.ComputeIndicesToCleanup(executableArguments); // Override the result directory with the attempt one @@ -219,27 +220,60 @@ await outputDevice.DisplayAsync( // Prepare the pipe server that collects the child process's failed test UIDs. using RetryFailedTestsPipeServer retryFailedTestsPipeServer = new(_serviceProvider, lastListOfFailedId ?? [], logger); - List finalArguments = await RetryArgumentsBuilder.BuildAttemptArgumentsAsync( - _fileSystem, - executableArguments, - indexToCleanup, - currentTryResultFolder, - retryRootFolder, - retryFailedTestsPipeServer.PipeName, - lastListOfFailedId, - attemptCount).ConfigureAwait(false); - - RetryTestHostRunner.AttemptResult attemptResult = await RetryTestHostRunner.RunAttemptAsync( - _serviceProvider, - this, - outputDevice, - logger, - retryFailedTestsPipeServer, - executableInfo, - finalArguments, - attemptCount, - userMaxRetryCount, - cancellationToken).ConfigureAwait(false); + RetryTestHostRunner.AttemptResult attemptResult; + string[] generatedResponseFilePaths = + [ + RetryArgumentsBuilder.GetArgumentsResponseFilePath(retryRootFolder, attemptCount), + RetryArgumentsBuilder.GetFilterUidsResponseFilePath(retryRootFolder, attemptCount), + ]; + try + { + List finalArguments = await RetryArgumentsBuilder.BuildAttemptArgumentsAsync( + _fileSystem, + executableArguments, + originalExecutableArguments, + indexToCleanup, + currentTryResultFolder, + retryRootFolder, + retryFailedTestsPipeServer.PipeName, + lastListOfFailedId, + attemptCount).ConfigureAwait(false); + + await LogResponseFileFallbackWarningAsync( + logger, + originalExecutableArguments, + finalArguments, + generatedResponseFilePaths[0]).ConfigureAwait(false); + + attemptResult = await RetryTestHostRunner.RunAttemptAsync( + _serviceProvider, + this, + outputDevice, + logger, + retryFailedTestsPipeServer, + executableInfo, + finalArguments, + attemptCount, + userMaxRetryCount, + cancellationToken).ConfigureAwait(false); + } + finally + { + foreach (string responseFilePath in generatedResponseFilePaths) + { + try + { + if (fileSystem.ExistFile(responseFilePath)) + { + fileSystem.DeleteFile(responseFilePath); + } + } + catch (Exception ex) when (ex is IOException or UnauthorizedAccessException) + { + await logger.LogWarningAsync($"Failed to delete generated retry response file '{responseFilePath}': {ex}").ConfigureAwait(false); + } + } + } CollectRecoveredArtifacts( fileSystem, @@ -479,6 +513,21 @@ private static bool IsHotReloadEnabled(IEnvironment environment) => environment.GetEnvironmentVariable(EnvironmentVariableConstants.DOTNET_WATCH) == "1" || environment.GetEnvironmentVariable(EnvironmentVariableConstants.TESTINGPLATFORM_HOTRELOAD_ENABLED) == "1"; + internal static async Task LogResponseFileFallbackWarningAsync( + ILogger logger, + string[] originalExecutableArguments, + List finalArguments, + string generatedResponseFilePath) + { + if (originalExecutableArguments.Any(argument => argument.StartsWith("@", StringComparison.Ordinal)) + && !finalArguments.Contains($"@{generatedResponseFilePath}")) + { + await logger.LogWarningAsync( + "Retry arguments could not be regenerated in a response file because an argument contains a literal double quote. " + + "The retry command line may exceed the operating system limit.").ConfigureAwait(false); + } + } + private static void CollectRecoveredArtifacts( IFileSystem fileSystem, string manifestPath, diff --git a/src/Platform/Microsoft.Testing.Platform/Builder/TestApplication.cs b/src/Platform/Microsoft.Testing.Platform/Builder/TestApplication.cs index b15fbf1ace..1402da8d9f 100644 --- a/src/Platform/Microsoft.Testing.Platform/Builder/TestApplication.cs +++ b/src/Platform/Microsoft.Testing.Platform/Builder/TestApplication.cs @@ -97,7 +97,7 @@ public static async Task CreateBuilderAsync(string[] ar } TestHostControllerInfo testHostControllerInfo = new(parseResult); - CurrentTestApplicationModuleInfo testApplicationModuleInfo = new(systemEnvironment, systemProcess, args); + CurrentTestApplicationModuleInfo testApplicationModuleInfo = new(systemEnvironment, systemProcess, args, [.. parseResult.ExpandedArguments]); // Create the UnhandledExceptionHandler that will be set inside the TestHostBuilder. LazyInitializer.EnsureInitialized(ref s_unhandledExceptionHandler, () => new UnhandledExceptionHandler(systemEnvironment, systemConsole, parseResult.IsOptionSet(PlatformCommandLineProvider.TestHostControllerPIDOptionKey))); @@ -114,7 +114,7 @@ public static async Task CreateBuilderAsync(string[] ar } // All checks are fine, create the TestApplication. - TestApplicationBuilder builder = new(loggingState, createBuilderStart, testApplicationOptions, s_unhandledExceptionHandler, args); + TestApplicationBuilder builder = new(loggingState, createBuilderStart, testApplicationOptions, s_unhandledExceptionHandler, args, [.. parseResult.ExpandedArguments]); // Register dynamically declared extensions as the last thing before handing the builder back. Note this // still puts them *ahead* of statically registered ones: the caller only invokes diff --git a/src/Platform/Microsoft.Testing.Platform/Builder/TestApplicationBuilder.cs b/src/Platform/Microsoft.Testing.Platform/Builder/TestApplicationBuilder.cs index ed2a1410a7..b5a35fca09 100644 --- a/src/Platform/Microsoft.Testing.Platform/Builder/TestApplicationBuilder.cs +++ b/src/Platform/Microsoft.Testing.Platform/Builder/TestApplicationBuilder.cs @@ -43,8 +43,19 @@ internal TestApplicationBuilder( TestApplicationOptions testApplicationOptions, IUnhandledExceptionsHandler unhandledExceptionsHandler, string[] args) + : this(loggingState, createBuilderStart, testApplicationOptions, unhandledExceptionsHandler, args, args) { - _testHostBuilder = new TestHostBuilder(new SystemFileSystem(), new SystemRuntimeFeature(), new SystemEnvironment(), new SystemProcessHandler(), new CurrentTestApplicationModuleInfo(new SystemEnvironment(), new SystemProcessHandler(), args)); + } + + internal TestApplicationBuilder( + ApplicationLoggingState loggingState, + DateTimeOffset createBuilderStart, + TestApplicationOptions testApplicationOptions, + IUnhandledExceptionsHandler unhandledExceptionsHandler, + string[] args, + string[] expandedArgs) + { + _testHostBuilder = new TestHostBuilder(new SystemFileSystem(), new SystemRuntimeFeature(), new SystemEnvironment(), new SystemProcessHandler(), new CurrentTestApplicationModuleInfo(new SystemEnvironment(), new SystemProcessHandler(), args, expandedArgs)); _createBuilderStart = createBuilderStart; _loggingState = loggingState; _testApplicationOptions = testApplicationOptions; diff --git a/src/Platform/Microsoft.Testing.Platform/CommandLine/ParseResult.cs b/src/Platform/Microsoft.Testing.Platform/CommandLine/ParseResult.cs index 7aa9f94e89..7343bb0302 100644 --- a/src/Platform/Microsoft.Testing.Platform/CommandLine/ParseResult.cs +++ b/src/Platform/Microsoft.Testing.Platform/CommandLine/ParseResult.cs @@ -34,11 +34,22 @@ public CommandLineParseResult(string? toolName, IReadOnlyList options, IReadOnlyList errors, IReadOnlyList arguments) + : this(toolName, options, errors, arguments, arguments) + { + } + + internal CommandLineParseResult( + string? toolName, + IReadOnlyList options, + IReadOnlyList errors, + IReadOnlyList arguments, + IReadOnlyList expandedArguments) { ToolName = toolName; Options = options; Errors = errors; CommandLine = CommandLineArgumentsRedactor.Redact([.. arguments]); + ExpandedArguments = [.. expandedArguments]; } /// @@ -58,6 +69,8 @@ internal CommandLineParseResult(string? toolName, IReadOnlyList ExpandedArguments { get; } + /// /// Gets a value indicating whether the parsing has errors. /// diff --git a/src/Platform/Microsoft.Testing.Platform/CommandLine/Parser.cs b/src/Platform/Microsoft.Testing.Platform/CommandLine/Parser.cs index a8c0a0832a..f4b1cd38b6 100644 --- a/src/Platform/Microsoft.Testing.Platform/CommandLine/Parser.cs +++ b/src/Platform/Microsoft.Testing.Platform/CommandLine/Parser.cs @@ -56,7 +56,9 @@ private static CommandLineParseResult Parse(List args, IEnvironment envi : redactedResponseFileArgument; if (ResponseFileHelper.TryReadResponseFile(responseFilePath, diagnosticPath, errors, out string[]? newArguments)) { - args.InsertRange(i + 1, newArguments); + args.RemoveAt(i); + args.InsertRange(i, newArguments); + i--; continue; } } @@ -113,7 +115,7 @@ private static CommandLineParseResult Parse(List args, IEnvironment envi options.Add(new(currentOption, [.. currentOptionArguments])); } - return new CommandLineParseResult(toolName, options, errors, originalArgs); + return new CommandLineParseResult(toolName, options, errors, originalArgs, args); static void ParseOptionAndSeparators(string arg, out string? currentOption, out string? currentArg) { diff --git a/src/Platform/Microsoft.Testing.Platform/CommandLine/ResponseFileHelper.cs b/src/Platform/Microsoft.Testing.Platform/CommandLine/ResponseFileHelper.cs index 80d6b5b8cd..e86d09ab24 100644 --- a/src/Platform/Microsoft.Testing.Platform/CommandLine/ResponseFileHelper.cs +++ b/src/Platform/Microsoft.Testing.Platform/CommandLine/ResponseFileHelper.cs @@ -1,6 +1,7 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +using Microsoft.Testing.Platform.CommandLine; using Microsoft.Testing.Platform.Resources; // Most of the core logic is from: @@ -20,14 +21,22 @@ internal static bool TryReadResponseFile( ICollection errors, [NotNullWhen(true)] out string[]? newArguments) { + var readContext = new ResponseFileReadContext(rspFilePath, diagnosticPath); try { - newArguments = [.. ExpandResponseFile(rspFilePath)]; + newArguments = [.. ExpandResponseFile( + rspFilePath, + diagnosticPath, + [with( + RuntimeInformation.IsOSPlatform(OSPlatform.Windows) + ? StringComparer.OrdinalIgnoreCase + : StringComparer.Ordinal)], + readContext)]; return true; } catch (FileNotFoundException) { - errors.Add(string.Format(CultureInfo.InvariantCulture, PlatformResources.CommandLineParserResponseFileNotFound, diagnosticPath)); + errors.Add(string.Format(CultureInfo.InvariantCulture, PlatformResources.CommandLineParserResponseFileNotFound, readContext.DiagnosticPath)); } catch (Exception e) when (e is IOException or UnauthorizedAccessException) { @@ -35,8 +44,8 @@ internal static bool TryReadResponseFile( string.Format( CultureInfo.InvariantCulture, PlatformResources.CommandLineParserFailedToReadResponseFile, - diagnosticPath, - GetExceptionDetail(e, rspFilePath, diagnosticPath))); + readContext.DiagnosticPath, + GetExceptionDetail(e, readContext.ActualPath, readContext.DiagnosticPath))); } catch (FormatException e) { @@ -47,8 +56,8 @@ internal static bool TryReadResponseFile( string.Format( CultureInfo.InvariantCulture, PlatformResources.CommandLineParserFailedToReadResponseFile, - diagnosticPath, - GetExceptionDetail(e, rspFilePath, diagnosticPath))); + readContext.DiagnosticPath, + GetExceptionDetail(e, readContext.ActualPath, readContext.DiagnosticPath))); } newArguments = null; @@ -58,19 +67,69 @@ internal static bool TryReadResponseFile( static string GetExceptionDetail(Exception exception, string actualPath, string diagnosticPath) => actualPath == diagnosticPath ? exception.ToString() : exception.GetType().Name; - static IEnumerable ExpandResponseFile(string filePath) + static IEnumerable ExpandResponseFile( + string filePath, + string diagnosticPath, + HashSet activeResponseFiles, + ResponseFileReadContext readContext) { - string[] lines = File.ReadAllLines(filePath); + readContext.SetCurrentFile(filePath, diagnosticPath); + string fullPath = Path.GetFullPath(filePath); + if (!activeResponseFiles.Add(fullPath)) + { + throw new FormatException(PlatformResources.CommandLineParserRecursiveResponseFile); + } - for (int i = 0; i < lines.Length; i++) + try { - string line = lines[i]; + string[] lines = File.ReadAllLines(filePath); + List arguments = []; + for (int i = 0; i < lines.Length; i++) + { + arguments.AddRange(SplitLine(lines[i], i + 1)); + } - foreach (string p in SplitLine(line, i + 1)) + for (int argumentIndex = 0; argumentIndex < arguments.Count; argumentIndex++) { - yield return p; + string argument = arguments[argumentIndex]; + if (argument.StartsWith("@", StringComparison.Ordinal)) + { + string nestedDiagnosticPath; + if (filePath != diagnosticPath) + { + nestedDiagnosticPath = diagnosticPath; + } + else + { + string redactedNestedArgument = CommandLineArgumentsRedactor.RedactArgument([.. arguments], argumentIndex); + nestedDiagnosticPath = redactedNestedArgument.StartsWith("@", StringComparison.Ordinal) + ? redactedNestedArgument[1..] + : redactedNestedArgument; + } + + // Nested response files intentionally use the process working directory, just like + // top-level response files, rather than the containing response file's directory. + foreach (string nestedArgument in ExpandResponseFile( + argument[1..], + nestedDiagnosticPath, + activeResponseFiles, + readContext)) + { + yield return nestedArgument; + } + + readContext.SetCurrentFile(filePath, diagnosticPath); + } + else + { + yield return argument; + } } } + finally + { + activeResponseFiles.Remove(fullPath); + } } static IEnumerable SplitLine(string line, int lineNumber) @@ -89,6 +148,19 @@ static IEnumerable SplitLine(string line, int lineNumber) } } + private sealed class ResponseFileReadContext(string actualPath, string diagnosticPath) + { + public string ActualPath { get; private set; } = actualPath; + + public string DiagnosticPath { get; private set; } = diagnosticPath; + + public void SetCurrentFile(string currentActualPath, string currentDiagnosticPath) + { + ActualPath = currentActualPath; + DiagnosticPath = currentDiagnosticPath; + } + } + private enum Boundary { TokenStart, diff --git a/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt index 7dc5c58110..0011f65894 100644 --- a/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt @@ -1 +1,7 @@ #nullable enable +[TPEXP]Microsoft.Testing.Platform.CommandLine.CommandLineParseResult.CommandLineParseResult(string? toolName, System.Collections.Generic.IReadOnlyList! options, System.Collections.Generic.IReadOnlyList! errors, System.Collections.Generic.IReadOnlyList! arguments, System.Collections.Generic.IReadOnlyList! expandedArguments) -> void +[TPEXP]Microsoft.Testing.Platform.CommandLine.CommandLineParseResult.ExpandedArguments.get -> System.Collections.Generic.IReadOnlyList! +Microsoft.Testing.Platform.Builder.TestApplicationBuilder.TestApplicationBuilder(Microsoft.Testing.Platform.Logging.ApplicationLoggingState! loggingState, System.DateTimeOffset createBuilderStart, Microsoft.Testing.Platform.Builder.TestApplicationOptions! testApplicationOptions, Microsoft.Testing.Platform.Helpers.IUnhandledExceptionsHandler! unhandledExceptionsHandler, string![]! args, string![]! expandedArgs) -> void +Microsoft.Testing.Platform.Services.CurrentTestApplicationModuleInfo.CurrentTestApplicationModuleInfo(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IProcessHandler! process, string![]? commandLineArguments, string![]? expandedCommandLineArguments) -> void +Microsoft.Testing.Platform.Services.ExecutableInfo.ExecutableInfo(string! filePath, System.Collections.Generic.IEnumerable! arguments, System.Collections.Generic.IEnumerable! expandedArguments, string! workspace) -> void +Microsoft.Testing.Platform.Services.ExecutableInfo.ExpandedArguments.get -> System.Collections.Generic.IEnumerable! diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.cs b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.cs index 76cf431a6b..9c422ce34b 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.cs +++ b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.cs @@ -41,6 +41,8 @@ internal static partial class PlatformResources internal static string @ArtifactPostProcessingManifestRunSummaryInvalid => GetResourceString("ArtifactPostProcessingManifestRunSummaryInvalid"); + internal static string @CommandLineParserRecursiveResponseFile => GetResourceString("CommandLineParserRecursiveResponseFile"); + internal static string @ActiveTestsRunning_FullTestsCount => GetResourceString("ActiveTestsRunning_FullTestsCount"); internal static string @ActiveTestsRunning_MoreTestsCount => GetResourceString("ActiveTestsRunning_MoreTestsCount"); diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx index 5282f45175..15c96ead0a 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx +++ b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx @@ -927,6 +927,9 @@ Takes one argument as a time value with an explicit unit suffix. Accepted suffix Unclosed quote in response file at line {0} {0} is the line number in the response file. + + A recursive response file reference was detected. + Unclosed quote in command line diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf index 84cf647282..2b7d23acb9 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf @@ -242,6 +242,11 @@ Čtení souboru odpovědí {0} selhalo. {1}. {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found Soubor odpovědí {0} nebyl nalezen. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf index 7fbfc7122a..0c6bb0fabc 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf @@ -242,6 +242,11 @@ Fehler beim Lesen der Antwortdatei "{0}". {1}. {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found Die Antwortdatei "{0}" wurde nicht gefunden. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf index 28d02d5aac..c26cfa68ae 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf @@ -242,6 +242,11 @@ No se pudo leer el archivo de respuesta "{0}". {1} {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found No se encontró el archivo de respuesta "{0}" diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf index 21c4242c2f..a14811ccae 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf @@ -242,6 +242,11 @@ La lecture du fichier de réponse « {0} » a échoué. {1}. {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found Le fichier réponse « {0} » est introuvable diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf index d7791f4685..9be3fcc3ff 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf @@ -242,6 +242,11 @@ Non è possibile leggere il file di risposta “{0}”. {1}. {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found Il file di risposta “{0}” non è stato trovato diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf index 86250e8dc8..1fb0b5fa57 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf @@ -242,6 +242,11 @@ 応答ファイル '{0}' を読み取れませんでした。{1}。 {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found 応答ファイル '{0}' が見つかりませんでした diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf index 3c0c002304..11ca365756 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf @@ -242,6 +242,11 @@ 응답 파일 '{0}'을(를) 읽지 못했습니다. {1}. {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found 응답 파일 '{0}'을(를) 찾을 수 없습니다. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf index 3c986e6e8d..eeb5bbcbba 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf @@ -242,6 +242,11 @@ Niepowodzenie odczytu pliku odpowiedzi „{0}”. {1}. {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found Nie znaleziono pliku odpowiedzi „{0}” diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf index 182f48bd90..5aec7de7e2 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf @@ -242,6 +242,11 @@ Falha ao ler o arquivo de resposta '{0}'. {1}. {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found O arquivo de resposta '{0}' não foi encontrado diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf index 1de40ab8f6..080e09195c 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf @@ -242,6 +242,11 @@ Не удалось прочитать файл ответа "{0}". {1}. {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found Файл ответа "{0}" не найден diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf index f9382b8eb7..be995308a1 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf @@ -242,6 +242,11 @@ '{0}' yanıt dosyası okunamadı. {1}. {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found '{0}' yanıt dosyası bulunamadı diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf index 33791bcea2..09310ca162 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf @@ -242,6 +242,11 @@ 无法读取响应文件“{0}”。{1} {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found 找不到响应文件“{0}” diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf index eb97215ea8..ecbca4b96c 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf @@ -242,6 +242,11 @@ 無法讀取回應檔案 '{0}'。{1}。 {0} is the response file path. {1} is the full exception detail (ToString), not just the exception message. + + A recursive response file reference was detected. + A recursive response file reference was detected. + + The response file '{0}' was not found 找不到回應檔案 '{0}' diff --git a/src/Platform/Microsoft.Testing.Platform/Services/CurrentTestApplicationModuleInfo.cs b/src/Platform/Microsoft.Testing.Platform/Services/CurrentTestApplicationModuleInfo.cs index 4abd6eacae..3ebc44da69 100644 --- a/src/Platform/Microsoft.Testing.Platform/Services/CurrentTestApplicationModuleInfo.cs +++ b/src/Platform/Microsoft.Testing.Platform/Services/CurrentTestApplicationModuleInfo.cs @@ -10,6 +10,7 @@ internal sealed class CurrentTestApplicationModuleInfo : ITestApplicationModuleI private readonly IEnvironment _environment; private readonly IProcessHandler _process; private readonly string[]? _commandLineArguments; + private readonly string[]? _expandedCommandLineArguments; private static readonly string[] MuxerExec = ["exec"]; public CurrentTestApplicationModuleInfo(IEnvironment environment, IProcessHandler process) @@ -18,6 +19,15 @@ public CurrentTestApplicationModuleInfo(IEnvironment environment, IProcessHandle } public CurrentTestApplicationModuleInfo(IEnvironment environment, IProcessHandler process, string[]? commandLineArguments) + : this(environment, process, commandLineArguments, commandLineArguments) + { + } + + public CurrentTestApplicationModuleInfo( + IEnvironment environment, + IProcessHandler process, + string[]? commandLineArguments, + string[]? expandedCommandLineArguments) { _environment = environment; _process = process; @@ -25,6 +35,7 @@ public CurrentTestApplicationModuleInfo(IEnvironment environment, IProcessHandle // Take a snapshot so later mutations of the caller's array don't affect // GetCurrentExecutableInfo (and ExecutableInfo.Arguments exposes IEnumerable). _commandLineArguments = commandLineArguments is null ? null : (string[])commandLineArguments.Clone(); + _expandedCommandLineArguments = expandedCommandLineArguments is null ? null : (string[])expandedCommandLineArguments.Clone(); } public bool IsCurrentTestApplicationHostDotnetMuxer @@ -125,33 +136,37 @@ public ExecutableInfo GetCurrentExecutableInfo() // the Retry extension needs to relaunch the test host with the same configuration. // Environment.GetCommandLineArgs() is still consulted to recover the dll path for the // dotnet/mono muxer cases since that information isn't part of the args passed to Main. - IEnumerable arguments; - if (_commandLineArguments is { } passedArgs) + IEnumerable arguments = GetArguments(_commandLineArguments); + IEnumerable expandedArguments = GetArguments(_expandedCommandLineArguments); + + return new ExecutableInfo(GetProcessPath(), arguments, expandedArguments, GetCurrentTestApplicationDirectory()); + + IEnumerable GetArguments(string[]? passedArgs) { - if (isAppHost) - { - arguments = passedArgs; - } - else if (isDotnetMuxer) - { - string[] envArgs = _environment.GetCommandLineArgs(); - arguments = envArgs.Length > 0 - ? [.. MuxerExec, envArgs[0], .. passedArgs] - : [.. MuxerExec, .. passedArgs]; - } - else + if (passedArgs is not null) { + if (isAppHost) + { + return passedArgs; + } + + if (isDotnetMuxer) + { + string[] envArgs = _environment.GetCommandLineArgs(); + return envArgs.Length > 0 + ? [.. MuxerExec, envArgs[0], .. passedArgs] + : [.. MuxerExec, .. passedArgs]; + } + // Mono muxer: prepend the dll path (envArgs[0]) before user-supplied args. - string[] envArgs = _environment.GetCommandLineArgs(); - arguments = envArgs.Length > 0 - ? [envArgs[0], .. passedArgs] + string[] monoArgs = _environment.GetCommandLineArgs(); + return monoArgs.Length > 0 + ? [monoArgs[0], .. passedArgs] : passedArgs; } - } - else - { + string[] commandLineArguments = _environment.GetCommandLineArgs(); - arguments = (isAppHost, isDotnetMuxer) switch + return (isAppHost, isDotnetMuxer) switch { // When executable (true, _) => commandLineArguments.Skip(1), @@ -161,7 +176,5 @@ public ExecutableInfo GetCurrentExecutableInfo() _ => commandLineArguments, }; } - - return new ExecutableInfo(GetProcessPath(), arguments, GetCurrentTestApplicationDirectory()); } } diff --git a/src/Platform/Microsoft.Testing.Platform/Services/ExecutableInfo.cs b/src/Platform/Microsoft.Testing.Platform/Services/ExecutableInfo.cs index 8fed7a0725..1f14ef724f 100644 --- a/src/Platform/Microsoft.Testing.Platform/Services/ExecutableInfo.cs +++ b/src/Platform/Microsoft.Testing.Platform/Services/ExecutableInfo.cs @@ -5,13 +5,28 @@ namespace Microsoft.Testing.Platform.Services; -internal sealed class ExecutableInfo(string filePath, IEnumerable arguments, string workspace) +internal sealed class ExecutableInfo { - public string FilePath { get; } = filePath; + public ExecutableInfo(string filePath, IEnumerable arguments, string workspace) + : this(filePath, arguments, arguments, workspace) + { + } - public IEnumerable Arguments { get; } = arguments; + public ExecutableInfo(string filePath, IEnumerable arguments, IEnumerable expandedArguments, string workspace) + { + FilePath = filePath; + Arguments = arguments; + ExpandedArguments = expandedArguments; + Workspace = workspace; + } - public string Workspace { get; } = workspace; + public string FilePath { get; } + + public IEnumerable Arguments { get; } + + public IEnumerable ExpandedArguments { get; } + + public string Workspace { get; } public override string ToString() => $"Process: {FilePath}, Arguments: {CommandLineArgumentsRedactor.Redact([.. Arguments])}, Workspace: {Workspace}"; diff --git a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/RetryFailedTestsTests.cs b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/RetryFailedTestsTests.cs index 77b30481f2..e493660ee1 100644 --- a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/RetryFailedTestsTests.cs +++ b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/RetryFailedTestsTests.cs @@ -41,6 +41,17 @@ private static void AssertOutputContainsExactlyOnce(TestHostResult testHostResul } } + internal static IEnumerable<(bool RetryArgumentsInResponseFile, bool UseInlineDelimiters, string Tfm)> GetResponseFileMatrix() + { + foreach (string tfm in TargetFrameworks.Net) + { + yield return (true, false, tfm); + yield return (true, true, tfm); + yield return (false, false, tfm); + yield return (false, true, tfm); + } + } + [TestMethod] [DynamicData(nameof(GetMatrix))] public async Task RetryFailedTests_OnlyRetryTimes_Succeeds(string tfm, bool failOnly) @@ -113,6 +124,62 @@ .. trxContents } } + [TestMethod] + [DynamicData(nameof(GetResponseFileMatrix))] + public async Task RetryFailedTests_WithArgumentsInResponseFile_Succeeds(bool retryArgumentsInResponseFile, bool useInlineDelimiters, string tfm) + { + var testHost = TestInfrastructure.TestHost.LocateFrom(AssetFixture.TargetAssetPath, AssetName, tfm); + string resultDirectory = Path.Combine(testHost.DirectoryName, $"response file results {Guid.NewGuid():N}"); + string responseFile = Path.Combine(testHost.DirectoryName, $"{Guid.NewGuid():N}.rsp"); + + try + { + File.WriteAllText( + responseFile, + (retryArgumentsInResponseFile, useInlineDelimiters) switch + { + (true, true) => $""" + --retry-failed-tests=1 + --retry-failed-tests-max-tests:50 + --results-directory="{resultDirectory}" + """, + (true, false) => $""" + --retry-failed-tests 1 + --retry-failed-tests-max-tests 50 + --results-directory "{resultDirectory}" + """, + (false, true) => $"--results-directory=\"{resultDirectory}\"", + (false, false) => $"--results-directory \"{resultDirectory}\"", + }); + + TestHostResult testHostResult = await testHost.ExecuteAsync( + retryArgumentsInResponseFile + ? $"@{responseFile}" + : useInlineDelimiters + ? $"@{responseFile} --retry-failed-tests=1 --retry-failed-tests-max-tests:50" + : $"@{responseFile} --retry-failed-tests 1 --retry-failed-tests-max-tests 50", + new() + { + { EnvironmentVariableConstants.TESTINGPLATFORM_TELEMETRY_OPTOUT, "1" }, + { "METHOD1", "1" }, + { "FAIL", "0" }, + { "RESULTDIR", resultDirectory }, + { "CHECK_RETRY_RESPONSE_FILE_CLEANUP", "1" }, + }, + cancellationToken: TestContext.CancellationToken); + + testHostResult.AssertExitCodeIs(ExitCode.Success); + testHostResult.AssertOutputContains("Retry summary: Passed! after 2/2 attempts"); + Assert.IsEmpty( + Directory.GetFiles(resultDirectory, "retry-*.rsp", SearchOption.AllDirectories), + "Generated retry response files must be deleted after each attempt."); + } + finally + { + File.Delete(responseFile); + } + } + /// /// A test that fails and then comes back skipped on the retry has not recovered, so it must not be /// counted or listed as flaky. This guards the accounting against inferring recovery from "was retried and is @@ -938,6 +1005,13 @@ public async Task ExecuteRequestAsync(ExecuteRequestContext context) var uidFilter = filter as TestNodeUidListFilter; var treeNodeFilter = filter as TreeNodeFilter; + if (Environment.GetEnvironmentVariable("CHECK_RETRY_RESPONSE_FILE_CLEANUP") == "1" + && Environment.GetEnvironmentVariable("TESTINGPLATFORM_DOTNETTEST_ATTEMPTNUMBER") == "2" + && Directory.GetFiles(Path.Combine(resultDir, "Retries"), "retry-arguments-1.rsp", SearchOption.AllDirectories).Length != 0) + { + throw new InvalidOperationException("The response file from retry attempt 1 still exists during attempt 2."); + } + var testMethod1Identifier = new TestMethodIdentifierProperty(string.Empty, string.Empty, "DummyClassName", "TestMethod1", 0, Array.Empty(), string.Empty); var testMethod2Identifier = new TestMethodIdentifierProperty(string.Empty, string.Empty, "DummyClassName", "TestMethod2", 0, Array.Empty(), string.Empty); var testMethod3Identifier = new TestMethodIdentifierProperty(string.Empty, string.Empty, "DummyClassName", "TestMethod3", 0, Array.Empty(), string.Empty); diff --git a/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/RetryArgumentsBuilderTests.cs b/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/RetryArgumentsBuilderTests.cs index 218c4dc415..4bfc9daece 100644 --- a/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/RetryArgumentsBuilderTests.cs +++ b/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/RetryArgumentsBuilderTests.cs @@ -105,6 +105,24 @@ public void ComputeIndicesToCleanup_WithDelayOptionAsLastArgument_DoesNotReturnI Assert.AreSequenceEqual(expected, actual, SequenceOrder.InAnyOrder); } + [TestMethod] + public void ComputeIndicesToCleanup_WithInlineOptionValues_ReturnsOnlyOptionIndices() + { + string[] executableArguments = + [ + "test.dll", + $"--{RetryCommandLineOptionsProvider.RetryFailedTestsOptionName}=3", + $"-{RetryCommandLineOptionsProvider.RetryFailedTestsMaxTestsOptionName}:5", + $"--{PlatformCommandLineProvider.ResultDirectoryOptionKey}=results", + "--keep", + "value", + ]; + + List actual = RetryArgumentsBuilder.ComputeIndicesToCleanup(executableArguments); + + Assert.AreSequenceEqual([1, 2, 3], actual, SequenceOrder.InAnyOrder); + } + [TestMethod] public async Task BuildAttemptArgumentsAsync_WithFailedIds_ReplacesFiltersAndMinimumExpectedTests() { @@ -155,6 +173,139 @@ public async Task BuildAttemptArgumentsAsync_WithFailedIds_ReplacesFiltersAndMin Times.Never); } + [TestMethod] + public async Task BuildAttemptArgumentsAsync_WithOriginalResponseFile_WritesCleanedArgumentsToResponseFile() + { + string retryRoot = Path.Combine("results", "Retries", "run"); + string responseFilePath = Path.Combine(retryRoot, "retry-arguments-1.rsp"); + string[] executableArguments = + [ + "exec", + "test.dll", + "--keep", + "value with spaces", + $"--{TreeNodeFilterCommandLineOptionsProvider.TreenodeFilter}", + "/old-filter", + $"--{PlatformCommandLineProvider.MinimumExpectedTestsOptionKey}", + "10", + $"--{RetryCommandLineOptionsProvider.RetryFailedTestsOptionName}=1", + $"--{PlatformCommandLineProvider.ResultDirectoryOptionKey}", + "old-results", + ]; + List indicesToCleanup = RetryArgumentsBuilder.ComputeIndicesToCleanup(executableArguments); + using var memoryStream = new MemoryStream(); + var fileStream = new Mock(MockBehavior.Strict); + fileStream.SetupGet(stream => stream.Stream).Returns(memoryStream); + fileStream.Setup(stream => stream.Dispose()); + var fileSystem = new Mock(MockBehavior.Strict); + fileSystem + .Setup(fs => fs.NewFileStream(responseFilePath, FileMode.Create, FileAccess.Write)) + .Returns(fileStream.Object); + + List actual = await RetryArgumentsBuilder.BuildAttemptArgumentsAsync( + fileSystem.Object, + executableArguments, + ["exec", "test.dll", "@original.rsp"], + indicesToCleanup, + Path.Combine(retryRoot, "1"), + retryRoot, + "pipe-name", + lastListOfFailedId: ["failed-uid"], + attemptCount: 1).ConfigureAwait(false); + + AssertArguments( + [ + "exec", + "test.dll", + $"@{responseFilePath}", + $"--{PlatformCommandLineProvider.ResultDirectoryOptionKey}", + Path.Combine(retryRoot, "1"), + $"--{RetryCommandLineOptionsProvider.RetryFailedTestsPipeNameOptionName}", + "pipe-name", + $"--{PlatformCommandLineProvider.FilterUidOptionKey}", + "failed-uid", + ], + actual); + Assert.AreEqual( + $"\"--keep\"{Environment.NewLine}\"value with spaces\"{Environment.NewLine}", + Encoding.UTF8.GetString(memoryStream.ToArray())); + } + + [TestMethod] + public async Task BuildAttemptArgumentsAsync_WithQuotedDirectPrefix_WritesSuffixToResponseFile() + { + string retryRoot = Path.Combine("results", "Retries", "run"); + string responseFilePath = Path.Combine(retryRoot, "retry-arguments-1.rsp"); + string[] executableArguments = ["exec", "quoted\"prefix", "--keep", "value"]; + using var memoryStream = new MemoryStream(); + var fileStream = new Mock(MockBehavior.Strict); + fileStream.SetupGet(stream => stream.Stream).Returns(memoryStream); + fileStream.Setup(stream => stream.Dispose()); + var fileSystem = new Mock(MockBehavior.Strict); + fileSystem + .Setup(fs => fs.NewFileStream(responseFilePath, FileMode.Create, FileAccess.Write)) + .Returns(fileStream.Object); + + List actual = await RetryArgumentsBuilder.BuildAttemptArgumentsAsync( + fileSystem.Object, + executableArguments, + ["exec", "quoted\"prefix", "@original.rsp"], + [], + Path.Combine(retryRoot, "1"), + retryRoot, + "pipe-name", + lastListOfFailedId: null, + attemptCount: 1).ConfigureAwait(false); + + Assert.AreSequenceEqual( + [ + "exec", + "quoted\"prefix", + $"@{responseFilePath}", + $"--{PlatformCommandLineProvider.ResultDirectoryOptionKey}", + Path.Combine(retryRoot, "1"), + $"--{RetryCommandLineOptionsProvider.RetryFailedTestsPipeNameOptionName}", + "pipe-name", + ], + actual); + Assert.AreEqual( + $"\"--keep\"{Environment.NewLine}\"value\"{Environment.NewLine}", + Encoding.UTF8.GetString(memoryStream.ToArray())); + } + + [TestMethod] + public async Task BuildAttemptArgumentsAsync_WithMultipleOriginalResponseFiles_WritesEntireExpandedSuffix() + { + string retryRoot = Path.Combine("results", "Retries", "run"); + string responseFilePath = Path.Combine(retryRoot, "retry-arguments-1.rsp"); + string[] executableArguments = ["exec", "--first", "a", "--between", "b", "--second", "c", "--after", "d"]; + using var memoryStream = new MemoryStream(); + var fileStream = new Mock(MockBehavior.Strict); + fileStream.SetupGet(stream => stream.Stream).Returns(memoryStream); + fileStream.Setup(stream => stream.Dispose()); + var fileSystem = new Mock(MockBehavior.Strict); + fileSystem + .Setup(fs => fs.NewFileStream(responseFilePath, FileMode.Create, FileAccess.Write)) + .Returns(fileStream.Object); + + List actual = await RetryArgumentsBuilder.BuildAttemptArgumentsAsync( + fileSystem.Object, + executableArguments, + ["exec", "@first.rsp", "--between", "b", "@second.rsp", "--after", "d"], + [], + Path.Combine(retryRoot, "1"), + retryRoot, + "pipe-name", + lastListOfFailedId: null, + attemptCount: 1).ConfigureAwait(false); + + Assert.AreEqual("exec", actual[0]); + Assert.AreEqual($"@{responseFilePath}", actual[1]); + Assert.AreEqual( + string.Join(Environment.NewLine, executableArguments.Skip(1).Select(argument => $"\"{argument}\"")) + Environment.NewLine, + Encoding.UTF8.GetString(memoryStream.ToArray())); + } + [TestMethod] public Task BuildAttemptArgumentsAsync_WithNullFailedIds_KeepsOriginalFiltersAndMinimumExpectedTests() => AssertFirstAttemptKeepsOriginalFiltersAsync(lastListOfFailedId: null); diff --git a/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/RetryTests.cs b/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/RetryTests.cs index af44d9ebd5..ce3ce44d18 100644 --- a/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/RetryTests.cs +++ b/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/RetryTests.cs @@ -30,6 +30,42 @@ public class RetryTests { private const string ContosoPackageSid = "S-1-15-2-1990679259-4123976751-842158434-3026549936-2944832882-252165955-409282942"; + [DataRow(true)] + [DataRow(false)] + [TestMethod] + public async Task LogResponseFileFallbackWarningAsync_OnlyQuotedSuffixLogsWarning(bool quoteIsInDirectPrefix) + { + const string GeneratedResponseFilePath = "retry-arguments-1.rsp"; + string[] originalArguments = quoteIsInDirectPrefix + ? ["quoted\"prefix", "@original.rsp"] + : ["@original.rsp", "quoted\"suffix"]; + List finalArguments = quoteIsInDirectPrefix + ? ["quoted\"prefix", $"@{GeneratedResponseFilePath}"] + : ["quoted\"suffix"]; + var logger = new Mock(); + logger + .Setup(value => value.LogAsync( + LogLevel.Warning, + It.IsAny(), + null, + It.IsAny>())) + .Returns(Task.CompletedTask); + + await RetryOrchestrator.LogResponseFileFallbackWarningAsync( + logger.Object, + originalArguments, + finalArguments, + GeneratedResponseFilePath); + + logger.Verify( + value => value.LogAsync( + LogLevel.Warning, + It.Is(message => message.Contains("literal double quote", StringComparison.Ordinal)), + null, + It.IsAny>()), + quoteIsInDirectPrefix ? Times.Never : Times.Once); + } + [TestMethod] [OSCondition(ConditionMode.Include, OperatingSystems.Windows, IgnoreMessage = "AppContainer pipe authorization is Windows-only.")] public void RetryPipeServer_UsesControllerAuthorizedSecurityIdentities() diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/CommandLineTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/CommandLineTests.cs index a742e17756..37b2384cd9 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/CommandLineTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/CommandLineTests.cs @@ -4,6 +4,7 @@ using Microsoft.Testing.Platform.CommandLine; using Microsoft.Testing.Platform.Extensions.CommandLine; using Microsoft.Testing.Platform.Helpers; +using Microsoft.Testing.Platform.Resources; namespace Microsoft.Testing.Platform.UnitTests; @@ -50,6 +51,54 @@ public void ParserTests(int testNum, string[] args, (string RspFileName, string } } + [TestMethod] + public void Parser_NestedResponseFiles_ProvidesExpandedArgumentsForProcessRelaunch() + { + string id = Guid.NewGuid().ToString("N"); + string outerResponseFile = $"{id}-outer.rsp"; + string nestedResponseFile = $"{id}-nested.rsp"; + + try + { + File.WriteAllText(outerResponseFile, $"--inside b{Environment.NewLine}@{nestedResponseFile}"); + File.WriteAllText(nestedResponseFile, "--nested c"); + + CommandLineParseResult result = CommandLineParser.Parse( + ["--before", "a", $"@{outerResponseFile}", "--after", "d"], + new SystemEnvironment()); + + Assert.AreSequenceEqual( + ["--before", "a", "--inside", "b", "--nested", "c", "--after", "d"], + result.ExpandedArguments); + Assert.Contains($"@{outerResponseFile}", result.CommandLine); + } + finally + { + File.Delete(outerResponseFile); + File.Delete(nestedResponseFile); + } + } + + [TestMethod] + public void Parser_RecursiveResponseFile_ReturnsError() + { + string responseFile = $"{Guid.NewGuid():N}.rsp"; + + try + { + File.WriteAllText(responseFile, $"@{responseFile}"); + + CommandLineParseResult result = CommandLineParser.Parse([$"@{responseFile}"], new SystemEnvironment()); + + Assert.IsTrue(result.HasError); + Assert.Contains(PlatformResources.CommandLineParserRecursiveResponseFile, result.Errors[0]); + } + finally + { + File.Delete(responseFile); + } + } + public static string ParserTestDataFormat(MethodInfo methodInfo, object?[]? data) { (int testNum, string[] args, (string RspFileName, string RspFileContent)[]? rspFiles, CommandLineParseResultWrapper parseResult) = ((int)data![0]!, (string[])data[1]!, ((string, string)[])data[2]!, (CommandLineParseResultWrapper)data[3]!); diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/ResponseFileHelperTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/ResponseFileHelperTests.cs index 2cad353381..074950309e 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/ResponseFileHelperTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/ResponseFileHelperTests.cs @@ -1,6 +1,8 @@ // Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. +using Microsoft.Testing.Platform.CommandLine; + namespace Microsoft.Testing.Platform.UnitTests; [TestClass] @@ -208,6 +210,147 @@ public void TryReadResponseFile_EmptyFile_ReturnsTrueWithEmptyArray() } } + [TestMethod] + public void TryReadResponseFile_MissingNestedFile_ReportsRedactedNestedPath() + { + string outerPath = Path.GetTempFileName(); + string sensitiveNestedPath = $"{Guid.NewGuid():N}-sensitive-missing.rsp"; + try + { + File.WriteAllText( + outerPath, + $"--{PlatformCommandLineProvider.DotNetTestHttpTokenOptionKey}{Environment.NewLine}@{sensitiveNestedPath}"); + var errors = new List(); + + bool result = ResponseFileHelper.TryReadResponseFile(outerPath, errors, out string[]? args); + + Assert.IsFalse(result); + Assert.IsNull(args); + Assert.HasCount(1, errors); + Assert.Contains("***REDACTED***", errors[0]); + Assert.DoesNotContain(sensitiveNestedPath, errors[0]); + Assert.DoesNotContain(outerPath, errors[0]); + } + finally + { + File.Delete(outerPath); + } + } + + [TestMethod] + public void TryReadResponseFile_MissingNestedFile_ReportsNestedPath() + { + string outerPath = Path.GetTempFileName(); + string nestedPath = $"{Guid.NewGuid():N}-missing.rsp"; + try + { + File.WriteAllText(outerPath, $"@{nestedPath}"); + var errors = new List(); + + bool result = ResponseFileHelper.TryReadResponseFile(outerPath, errors, out string[]? args); + + Assert.IsFalse(result); + Assert.IsNull(args); + Assert.HasCount(1, errors); + Assert.Contains(nestedPath, errors[0]); + Assert.DoesNotContain(outerPath, errors[0]); + } + finally + { + File.Delete(outerPath); + } + } + + [TestMethod] + public void TryReadResponseFile_MissingNestedFileBelowRedactedFile_InheritsRedaction() + { + string outerPath = Path.GetTempFileName(); + string middlePath = Path.GetTempFileName(); + string sensitiveNestedPath = $"{Guid.NewGuid():N}-sensitive-missing.rsp"; + try + { + File.WriteAllText(middlePath, $"@{sensitiveNestedPath}"); + File.WriteAllText( + outerPath, + $"--{PlatformCommandLineProvider.DotNetTestHttpTokenOptionKey}{Environment.NewLine}@{middlePath}"); + var errors = new List(); + + bool result = ResponseFileHelper.TryReadResponseFile(outerPath, errors, out string[]? args); + + Assert.IsFalse(result); + Assert.IsNull(args); + Assert.HasCount(1, errors); + Assert.Contains("***REDACTED***", errors[0]); + Assert.DoesNotContain(sensitiveNestedPath, errors[0]); + Assert.DoesNotContain(middlePath, errors[0]); + Assert.DoesNotContain(outerPath, errors[0]); + } + finally + { + File.Delete(middlePath); + File.Delete(outerPath); + } + } + + [TestMethod] + public void TryReadResponseFile_MalformedNestedFile_ReportsRedactedNestedPathWithoutDetails() + { + string outerPath = Path.GetTempFileName(); + string sensitiveNestedPath = Path.GetTempFileName(); + try + { + File.WriteAllText(sensitiveNestedPath, "--filter \"unclosed"); + File.WriteAllText( + outerPath, + $"--{PlatformCommandLineProvider.DotNetTestHttpTokenOptionKey}{Environment.NewLine}@{sensitiveNestedPath}"); + var errors = new List(); + + bool result = ResponseFileHelper.TryReadResponseFile(outerPath, errors, out string[]? args); + + Assert.IsFalse(result); + Assert.IsNull(args); + Assert.HasCount(1, errors); + Assert.Contains("***REDACTED***", errors[0]); + Assert.Contains(nameof(FormatException), errors[0]); + Assert.DoesNotContain(sensitiveNestedPath, errors[0]); + Assert.DoesNotContain(outerPath, errors[0]); + Assert.DoesNotContain(nameof(ResponseFileHelper.TryReadResponseFile), errors[0]); + } + finally + { + File.Delete(sensitiveNestedPath); + File.Delete(outerPath); + } + } + + [TestMethod] + public void TryReadResponseFile_MalformedNestedFile_ReportsNestedPathWithDetails() + { + string outerPath = Path.GetTempFileName(); + string nestedPath = Path.GetTempFileName(); + try + { + File.WriteAllText(nestedPath, "--filter \"unclosed"); + File.WriteAllText(outerPath, $"@{nestedPath}"); + var errors = new List(); + + bool result = ResponseFileHelper.TryReadResponseFile(outerPath, errors, out string[]? args); + + Assert.IsFalse(result); + Assert.IsNull(args); + Assert.HasCount(1, errors); + Assert.Contains(nestedPath, errors[0]); + Assert.DoesNotContain(outerPath, errors[0]); + Assert.Contains(nameof(FormatException), errors[0]); + Assert.Contains(nameof(ResponseFileHelper.TryReadResponseFile), errors[0]); + } + finally + { + File.Delete(nestedPath); + File.Delete(outerPath); + } + } + [TestMethod] public void SplitCommandLine_EmptyString_ReturnsEmpty() { diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Services/CurrentTestApplicationModuleInfoTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Services/CurrentTestApplicationModuleInfoTests.cs index cdde683c91..6b08a2864d 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Services/CurrentTestApplicationModuleInfoTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Services/CurrentTestApplicationModuleInfoTests.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation. All rights reserved. +// Copyright (c) Microsoft Corporation. All rights reserved. // Licensed under the MIT license. See LICENSE file in the project root for full license information. using Microsoft.Testing.Platform.Helpers; @@ -57,6 +57,23 @@ public void GetCurrentExecutableInfo_AppHost_WithPassedArgs_UsesPassedArgsInstea Assert.AreSequenceEqual(["--retry-failed-tests", "1"], executable.Arguments.ToArray()); } + [TestMethod] + public void GetCurrentExecutableInfo_AppHost_WithExpandedArgs_PreservesBothArgumentForms() + { + Mock environment = CreateAppHostEnvironment(["myapp.exe"]); + + CurrentTestApplicationModuleInfo info = new( + environment.Object, + new SystemProcessHandler(), + ["@options.rsp"], + ["--retry-failed-tests", "1"]); + + ExecutableInfo executable = info.GetCurrentExecutableInfo(); + + Assert.AreSequenceEqual(["@options.rsp"], executable.Arguments.ToArray()); + Assert.AreSequenceEqual(["--retry-failed-tests", "1"], executable.ExpandedArguments.ToArray()); + } + [TestMethod] public void GetCurrentExecutableInfo_AppHost_WithEmptyPassedArgs_ReturnsEmpty() { @@ -96,6 +113,23 @@ public void GetCurrentExecutableInfo_DotnetMuxer_WithPassedArgs_KeepsDllPathAndU Assert.AreSequenceEqual(["exec", "myapp.dll", "--retry-failed-tests", "1"], executable.Arguments.ToArray()); } + [TestMethod] + public void GetCurrentExecutableInfo_DotnetMuxer_WithExpandedArgs_PrependsMuxerArgumentsToBothForms() + { + Mock environment = CreateDotnetMuxerEnvironment(["myapp.dll"]); + + CurrentTestApplicationModuleInfo info = new( + environment.Object, + new SystemProcessHandler(), + ["@options.rsp"], + ["--retry-failed-tests", "1"]); + + ExecutableInfo executable = info.GetCurrentExecutableInfo(); + + Assert.AreSequenceEqual(["exec", "myapp.dll", "@options.rsp"], executable.Arguments.ToArray()); + Assert.AreSequenceEqual(["exec", "myapp.dll", "--retry-failed-tests", "1"], executable.ExpandedArguments.ToArray()); + } + [TestMethod] public void GetCurrentExecutableInfo_DotnetMuxer_WithPassedArgsAndEmptyEnvironmentArgs_FallsBackToExecPlusPassedArgs() { From 518fb4e2cb5af7b3d7c7405023c39b1d112e696c Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Fri, 4 Sep 2026 13:11:44 +0200 Subject: [PATCH 16/33] Improve Azure DevOps authentication diagnostics by @Evangelink in #10999 (backport to rel/4.4) (#11036) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../AzureDevOpsExtensions.cs | 4 +- .../AzureDevOpsTestResultsClient.Http.cs | 59 ++++++++- .../AzureDevOpsTestResultsClient.cs | 20 ++- .../InternalAPI/InternalAPI.Unshipped.txt | 2 + .../Resources/AzureDevOpsResources.resx | 8 ++ .../Resources/xlf/AzureDevOpsResources.cs.xlf | 10 ++ .../Resources/xlf/AzureDevOpsResources.de.xlf | 10 ++ .../Resources/xlf/AzureDevOpsResources.es.xlf | 10 ++ .../Resources/xlf/AzureDevOpsResources.fr.xlf | 10 ++ .../Resources/xlf/AzureDevOpsResources.it.xlf | 10 ++ .../Resources/xlf/AzureDevOpsResources.ja.xlf | 10 ++ .../Resources/xlf/AzureDevOpsResources.ko.xlf | 10 ++ .../Resources/xlf/AzureDevOpsResources.pl.xlf | 10 ++ .../xlf/AzureDevOpsResources.pt-BR.xlf | 10 ++ .../Resources/xlf/AzureDevOpsResources.ru.xlf | 10 ++ .../Resources/xlf/AzureDevOpsResources.tr.xlf | 10 ++ .../xlf/AzureDevOpsResources.zh-Hans.xlf | 10 ++ .../xlf/AzureDevOpsResources.zh-Hant.xlf | 10 ++ .../AzureDevOpsLivePublishingTests.cs | 124 ++++++++++++++++++ ...zureDevOpsTestResultsClientHandlerTests.cs | 4 +- 20 files changed, 344 insertions(+), 7 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsExtensions.cs b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsExtensions.cs index ff04ee1307..eac0d0c465 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsExtensions.cs +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsExtensions.cs @@ -83,7 +83,7 @@ public static void AddAzureDevOpsProvider(this ITestApplicationBuilder builder) serviceProvider.GetOutputDevice(), serviceProvider.GetTestApplicationModuleInfo(), serviceProvider.GetTestApplicationProcessExitCode(), - new AzureDevOpsTestResultsClient(serviceProvider.GetTask(), serviceProvider.GetClock()), + new AzureDevOpsTestResultsClient(serviceProvider.GetTask(), serviceProvider.GetClock(), serviceProvider.GetLoggerFactory()), serviceProvider.GetTask(), serviceProvider.GetClock(), serviceProvider.GetLoggerFactory())); @@ -127,7 +127,7 @@ public static void AddAzureDevOpsProvider(this ITestApplicationBuilder builder) serviceProvider.GetFileSystem(), serviceProvider.GetOutputDevice(), serviceProvider.GetTestApplicationModuleInfo(), - new AzureDevOpsTestResultsClient(serviceProvider.GetTask(), serviceProvider.GetClock()), + new AzureDevOpsTestResultsClient(serviceProvider.GetTask(), serviceProvider.GetClock(), serviceProvider.GetLoggerFactory()), serviceProvider.GetTask(), serviceProvider.GetClock(), serviceProvider.GetLoggerFactory())); diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsTestResultsClient.Http.cs b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsTestResultsClient.Http.cs index 3274d74dbf..bbf039e455 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsTestResultsClient.Http.cs +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsTestResultsClient.Http.cs @@ -6,6 +6,7 @@ using System.Text.Json; using Microsoft.Testing.Extensions.AzureDevOpsReport.Resources; +using Microsoft.Testing.Platform.Logging; #if !NETCOREAPP using Polyfills; @@ -35,6 +36,11 @@ private static HttpClient CreateHttpClient() internal static HttpClientHandler CreateHttpClientHandler() { HttpClientHandler handler = new(); + if (!OperatingSystem.IsWasi()) + { + handler.AllowAutoRedirect = false; + } + if (ShouldOptInToAutomaticDecompression(handler)) { handler.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip; @@ -80,7 +86,7 @@ private async Task SendAsync(HttpRequestMessage request, CancellationToken cance using HttpResponseMessage ignoredResponse = await SendCoreAsync(request, requestTimeoutSource.Token, cancellationToken, requestTimeout).ConfigureAwait(false); } - private async Task SendCoreAsync(HttpRequestMessage request, CancellationToken requestCancellationToken, CancellationToken userCancellationToken, TimeSpan attemptTimeout) + private async Task SendCoreAsync(HttpRequestMessage request, CancellationToken requestCancellationToken, CancellationToken userCancellationToken, TimeSpan attemptTimeout, bool throwOnUnexpectedContentType = true) { Exception? lastException = null; @@ -97,6 +103,24 @@ private async Task SendCoreAsync(HttpRequestMessage request HttpResponseMessage response = await _httpClient.SendAsync(currentRequest, HttpCompletionOption.ResponseHeadersRead, attemptTimeoutSource.Token).ConfigureAwait(false); if (response.IsSuccessStatusCode) { + if (string.Equals(response.Content.Headers.ContentType?.MediaType, "text/html", StringComparison.OrdinalIgnoreCase)) + { + int statusCode = (int)response.StatusCode; + string contentType = response.Content.Headers.ContentType?.ToString() ?? "text/html"; + string diagnostic = string.Format( + CultureInfo.InvariantCulture, + AzureDevOpsResources.AzureDevOpsLivePublishingUnexpectedContentType, + statusCode, + contentType); + if (throwOnUnexpectedContentType) + { + response.Dispose(); + throw new InvalidOperationException(diagnostic); + } + + await TryLogWarningAsync(diagnostic).ConfigureAwait(false); + } + return response; } @@ -105,6 +129,17 @@ private async Task SendCoreAsync(HttpRequestMessage request { if (!ShouldRetry(response.StatusCode, attempt)) { + if (IsAuthenticationFailure(response)) + { + string status = response.StatusCode == 0 + ? response.ReasonPhrase ?? "opaqueredirect" + : ((int)response.StatusCode).ToString(CultureInfo.InvariantCulture); + throw new InvalidOperationException(string.Format( + CultureInfo.InvariantCulture, + AzureDevOpsResources.AzureDevOpsLivePublishingAuthenticationFailure, + status)); + } + string responseBody = await ReadAsStringAsync(response.Content, requestCancellationToken).ConfigureAwait(false); throw new InvalidOperationException(string.Format(CultureInfo.InvariantCulture, AzureDevOpsResources.AzureDevOpsLivePublishingHttpError, (int)response.StatusCode, responseBody)); } @@ -139,6 +174,28 @@ private async Task SendCoreAsync(HttpRequestMessage request private static bool ShouldRetry(HttpStatusCode statusCode, int attempt) => attempt < MaxAttempts && ((int)statusCode is >= 500 or 429); + private static bool IsAuthenticationFailure(HttpResponseMessage response) + => response.StatusCode is HttpStatusCode.Unauthorized or HttpStatusCode.Redirect + || (response.StatusCode == 0 && string.Equals(response.ReasonPhrase, "opaqueredirect", StringComparison.Ordinal)); + + private async Task TryLogWarningAsync(string message) + { + if (_logger is null) + { + return; + } + + try + { + await _logger.LogWarningAsync(message).ConfigureAwait(false); + } + catch (Exception) + { + // There is nowhere left to report this, and a logger failure must not cause an accepted + // non-idempotent publish request to be retried. + } + } + private static bool ShouldRetry(Exception exception, CancellationToken userCancellationToken, CancellationToken requestCancellationToken, int attempt) => attempt < MaxAttempts && !userCancellationToken.IsCancellationRequested diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsTestResultsClient.cs b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsTestResultsClient.cs index 919ffd6874..038c2f9db3 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsTestResultsClient.cs +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/AzureDevOpsTestResultsClient.cs @@ -6,6 +6,7 @@ using Microsoft.Testing.Extensions.AzureDevOpsReport.Resources; using Microsoft.Testing.Platform.Helpers; +using Microsoft.Testing.Platform.Logging; namespace Microsoft.Testing.Extensions.AzureDevOpsReport; @@ -37,17 +38,29 @@ internal sealed partial class AzureDevOpsTestResultsClient : IAzureDevOpsTestRes private readonly HttpClient _httpClient; private readonly ITask _task; private readonly IClock _clock; + private readonly ILogger? _logger; public AzureDevOpsTestResultsClient(ITask task, IClock clock) - : this(SharedHttpClient, task, clock) + : this(SharedHttpClient, task, clock, logger: null) + { + } + + public AzureDevOpsTestResultsClient(ITask task, IClock clock, ILoggerFactory loggerFactory) + : this(SharedHttpClient, task, clock, loggerFactory.CreateLogger()) { } internal AzureDevOpsTestResultsClient(HttpClient httpClient, ITask task, IClock clock) + : this(httpClient, task, clock, logger: null) + { + } + + internal AzureDevOpsTestResultsClient(HttpClient httpClient, ITask task, IClock clock, ILogger? logger) { _httpClient = httpClient; _task = task; _clock = clock; + _logger = logger; } public async Task CreateTestRunAsync(AzureDevOpsPublishConfiguration configuration, CancellationToken cancellationToken) @@ -102,10 +115,11 @@ public async Task CreateTestRunAsync(AzureDevOpsPublishConfiguration config configuration.AccessToken, results); - // Transport/HTTP failures throw from SendCoreAsync — caller retries. + // Do not throw for an unexpected 2xx content type: Azure DevOps may have accepted this + // non-idempotent POST, and retrying it could create duplicate result rows. using var requestTimeoutSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); requestTimeoutSource.CancelAfter(RequestTimeout); - using HttpResponseMessage response = await SendCoreAsync(request, requestTimeoutSource.Token, cancellationToken, AttemptTimeout).ConfigureAwait(false); + using HttpResponseMessage response = await SendCoreAsync(request, requestTimeoutSource.Token, cancellationToken, AttemptTimeout, throwOnUnexpectedContentType: false).ConfigureAwait(false); // From this point on the AzDO server has accepted the results. Failing to parse the response // must not cause the caller to retry the publish (that would duplicate result rows). diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Unshipped.txt index 7dc5c58110..ba481a2136 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/InternalAPI/InternalAPI.Unshipped.txt @@ -1 +1,3 @@ #nullable enable +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.AzureDevOpsTestResultsClient(Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory) -> void +Microsoft.Testing.Extensions.AzureDevOpsReport.AzureDevOpsTestResultsClient.AzureDevOpsTestResultsClient(System.Net.Http.HttpClient! httpClient, Microsoft.Testing.Platform.Helpers.ITask! task, Microsoft.Testing.Platform.Helpers.IClock! clock, Microsoft.Testing.Platform.Logging.ILogger? logger) -> void diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/AzureDevOpsResources.resx b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/AzureDevOpsResources.resx index 92fca88bd4..6fef8f258f 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/AzureDevOpsResources.resx +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/AzureDevOpsResources.resx @@ -153,6 +153,10 @@ Azure DevOps live publishing could not upload {0} attachment(s); they will be missing from the Azure DevOps test run. {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. @@ -232,6 +236,10 @@ Timeout: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlf index 7a2a87b9a9..07e6111a19 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlf @@ -47,6 +47,11 @@ Živé publikování v Azure DevOps nemohlo nahrát přílohy ({0}); v testovacím běhu Azure DevOps budou chybět. {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. Živému publikování Azure DevOps se nepodařilo dokončit testovací běh. @@ -162,6 +167,11 @@ Časový limit: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. Živé publikování Azure DevOps nemohlo zobrazit upozornění na výstupním zařízení. diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlf index c073c288c1..1e132792fe 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlf @@ -47,6 +47,11 @@ Bei der Azure DevOps-Liveveröffentlichung konnten {0} Anlagen nicht hochgeladen werden. Sie fehlen im Azure DevOps-Testlauf. {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. Die Azure DevOps Liveveröffentlichung konnte den Testlauf nicht abschließen. @@ -162,6 +167,11 @@ Zeitüberschreitung: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. Die Azure DevOps-Liveveröffentlichung konnte keine Warnung auf dem Ausgabegerät anzeigen. diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlf index cde5e432c6..064611fcf3 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlf @@ -47,6 +47,11 @@ La publicación en vivo de Azure DevOps no pudo cargar {0} los datos adjuntos; faltarán en la serie de pruebas Azure DevOps. {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. La publicación en directo de Azure DevOps no pudo completar la ejecución de pruebas. @@ -162,6 +167,11 @@ Tiempo de espera: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. La publicación en vivo de Azure DevOps no pudo mostrar una advertencia en el dispositivo de salida. diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlf index 00fe911a5f..3239d956db 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlf @@ -47,6 +47,11 @@ La publication en direct Azure DevOps n’a pas pu charger {0} pièces jointes. Elles seront absentes de l’exécution de test Azure DevOps. {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. Nous n’avons pas pu effectuer la publication en direct d’Azure DevOps pour effectuer l’exécution de tests. @@ -162,6 +167,11 @@ Délai d’expiration : {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. La publication en direct Azure DevOps n’a pas pu afficher un avertissement sur le périphérique de sortie. diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlf index 065dd154b3..fcfb77ce1d 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlf @@ -47,6 +47,11 @@ La pubblicazione live di Azure DevOps non è riuscita a caricare {0} allegato/i; non saranno presenti nell'esecuzione dei test di Azure DevOps. {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. La pubblicazione live di Azure DevOps non è riuscita a completare l'esecuzione dei test. @@ -162,6 +167,11 @@ Timeout: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. La pubblicazione live di Azure DevOps non è riuscita a visualizzare un avviso nel dispositivo di output. diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlf index e7d85065be..d3d4638458 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlf @@ -47,6 +47,11 @@ Azure DevOps ライブ パブリッシングでは {0} 件の添付ファイルをアップロードできませんでした。これらは Azure DevOps のテスト実行に含まれません。 {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. Azure DevOps ライブ公開でテスト実行を完了できませんでした。 @@ -162,6 +167,11 @@ タイムアウト: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. Azure DevOps ライブ パブリッシングでは、出力デバイスに警告を表示できませんでした。 diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlf index 80727368a6..32a7e6a81f 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlf @@ -47,6 +47,11 @@ Azure DevOps 라이브 게시에서 {0} 첨부 파일을 업로드할 수 없습니다. 해당 첨부 파일은 Azure DevOps 테스트 실행에서 누락됩니다. {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. Azure DevOps 라이브 게시에서 테스트 실행을 완료하지 못했습니다. @@ -162,6 +167,11 @@ 시간 제한: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. Azure DevOps 라이브 게시에서 출력 장치에 경고를 표시할 수 없습니다. diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlf index e5fe198f61..6ccfdd7fe3 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlf @@ -47,6 +47,11 @@ Publikowanie na żywo w usłudze Azure DevOps nie może przekazać {0} załączników. Nie będzie ich w przebiegu testu usługi Azure DevOps. {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. Publikowanie na żywo w usłudze Azure DevOps nie może ukończyć przebiegu testu. @@ -162,6 +167,11 @@ Limit czasu: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. Publikowanie na żywo w usłudze Azure DevOps nie może wyświetlić ostrzeżenia na urządzeniu wyjściowym. diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlf index 09b568bdd4..6401045e20 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlf @@ -47,6 +47,11 @@ A publicação ao vivo do Azure DevOps não pôde carregar {0} anexos; eles ficarão ausentes da execução de teste do Azure DevOps. {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. A publicação ao vivo do Azure DevOps falhou ao concluir a execução de teste. @@ -162,6 +167,11 @@ Tempo limite: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. A publicação ao vivo do Azure DevOps não pôde exibir um aviso no dispositivo de saída. diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlf index b97e0c40c1..82c71413b0 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlf @@ -47,6 +47,11 @@ Динамической публикации Azure DevOps не удалось отправить несколько ({0}) вложений; они будут отсутствовать в тестовом запуске Azure DevOps. {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. Azure DevOps: не удалось выполнить тестовый запуск при публикации в реальном времени. @@ -162,6 +167,11 @@ Превышено время ожидания: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. Динамической публикации Azure DevOps не удалось отобразить предупреждение на устройстве вывода. diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlf index d575e3c711..001d1dad2b 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlf @@ -47,6 +47,11 @@ Azure DevOps canlı yayımlama {0} eki karşıya yükleyemedi; bu ekler Azure DevOps test çalıştırmasında eksik olacak. {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. Azure DevOps canlı yayımlama test çalıştırmasını tamamlayamadı. @@ -162,6 +167,11 @@ Zaman aşımı: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. Azure DevOps canlı yayımlama çıkış cihazında bir uyarı görüntüleyemedi. diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlf index 22eb5c73a6..801eed12c8 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlf @@ -47,6 +47,11 @@ Azure DevOps 实时发布无法上传 {0} 个附件;它们将在 Azure DevOps 测试运行中缺失。 {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. Azure DevOps 实时发布未能完成测试运行。 @@ -162,6 +167,11 @@ 超时: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. Azure DevOps 实时发布无法在输出设备上显示警告。 diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlf index 1ed197f9bb..b41f357ac6 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlf @@ -47,6 +47,11 @@ Azure DevOps 即時發佈無法上傳 {0} 個附件; 這些附件將不會出現在 Azure DevOps 測試執行中。 {0} is the number of attachments that could not be uploaded. + + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} + Azure DevOps live publishing failed to complete the test run. Azure DevOps 即時發佈無法完成測試執行。 @@ -162,6 +167,11 @@ 逾時: {0} {0} is the timeout reason. + + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} + Azure DevOps live publishing could not display a warning on the output device. Azure DevOps 即時發佈無法在輸出裝置上顯示警告。 diff --git a/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsLivePublishingTests.cs b/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsLivePublishingTests.cs index 079c0a35fb..7fb949c07c 100644 --- a/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsLivePublishingTests.cs +++ b/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsLivePublishingTests.cs @@ -671,6 +671,130 @@ public async Task AzureDevOpsTestResultsClient_RetriesTaskCanceledException() Assert.AreEqual(TimeSpan.FromMilliseconds(500), task.DelayCalls[0]); } + [TestMethod] + [DataRow(HttpStatusCode.Redirect, "302")] + [DataRow(HttpStatusCode.Unauthorized, "401")] + public async Task AzureDevOpsTestResultsClient_AuthenticationFailure_ReportsInvalidAccessTokenGuidance(HttpStatusCode statusCode, string expectedStatus) + { + QueueHttpMessageHandler handler = new( + (_, _) => Task.FromResult(new HttpResponseMessage(statusCode))); + using HttpClient httpClient = new(handler) + { + Timeout = Timeout.InfiniteTimeSpan, + }; + AzureDevOpsTestResultsClient client = new(httpClient, new FakeTask(), new FakeClock()); + AzureDevOpsPublishConfiguration configuration = new("https://dev.azure.com/org/", "project", "token", 1, "run", "tests.dll", "results"); + + InvalidOperationException exception = await Assert.ThrowsExactlyAsync( + () => client.CreateTestRunAsync(configuration, CancellationToken.None)); + + Assert.Contains($"(status: {expectedStatus})", exception.Message); + Assert.Contains("SYSTEM_ACCESSTOKEN is invalid or unavailable", exception.Message); + Assert.Contains("do not expose secrets to untrusted fork code", exception.Message); + Assert.Contains("separate trusted pipeline context", exception.Message); + } + + [TestMethod] + public async Task AzureDevOpsTestResultsClient_BrowserOpaqueRedirect_ReportsInvalidAccessTokenGuidance() + { + QueueHttpMessageHandler handler = new( + (_, _) => Task.FromResult(new HttpResponseMessage(0) + { + ReasonPhrase = "opaqueredirect", + })); + using HttpClient httpClient = new(handler) + { + Timeout = Timeout.InfiniteTimeSpan, + }; + AzureDevOpsTestResultsClient client = new(httpClient, new FakeTask(), new FakeClock()); + AzureDevOpsPublishConfiguration configuration = new("https://dev.azure.com/org/", "project", "token", 1, "run", "tests.dll", "results"); + + InvalidOperationException exception = await Assert.ThrowsExactlyAsync( + () => client.CreateTestRunAsync(configuration, CancellationToken.None)); + + Assert.Contains("(status: opaqueredirect)", exception.Message); + Assert.Contains("SYSTEM_ACCESSTOKEN is invalid or unavailable", exception.Message); + Assert.Contains("do not expose secrets to untrusted fork code", exception.Message); + Assert.Contains("separate trusted pipeline context", exception.Message); + } + + [TestMethod] + public async Task AzureDevOpsTestResultsClient_SuccessfulHtmlResponse_ReportsStatusAndContentType() + { + QueueHttpMessageHandler handler = new( + (_, _) => Task.FromResult(new HttpResponseMessage(HttpStatusCode.OK) + { + Content = new StringContent("", Encoding.UTF8, "text/html"), + })); + using HttpClient httpClient = new(handler) + { + Timeout = Timeout.InfiniteTimeSpan, + }; + AzureDevOpsTestResultsClient client = new(httpClient, new FakeTask(), new FakeClock()); + AzureDevOpsPublishConfiguration configuration = new("https://dev.azure.com/org/", "project", "token", 1, "run", "tests.dll", "results"); + + InvalidOperationException exception = await Assert.ThrowsExactlyAsync( + () => client.CreateTestRunAsync(configuration, CancellationToken.None)); + + Assert.Contains("status code 200", exception.Message); + Assert.Contains("content type 'text/html; charset=utf-8'", exception.Message); + } + + [TestMethod] + public async Task AzureDevOpsTestResultsClient_PublishTestResults_SuccessfulHtmlResponseReturnsNullAndReportsDiagnostic() + { + using HttpResponseMessage response = new(HttpStatusCode.OK) + { + Content = new StringContent("", Encoding.UTF8, "text/html"), + }; + QueueHttpMessageHandler handler = new((_, _) => Task.FromResult(response)); + using HttpClient httpClient = new(handler) + { + Timeout = Timeout.InfiniteTimeSpan, + }; + CollectingLogger logger = new(); + AzureDevOpsTestResultsClient client = new(httpClient, new FakeTask(), new FakeClock(), logger); + AzureDevOpsPublishConfiguration configuration = new("https://dev.azure.com/org/", "project", "token", 1, "run", "tests.dll", "results"); + AzureDevOpsTestCaseResult result = new("MyTest", "tests", "MyTest", AzureDevOpsLivePublishingConstants.PassedTestOutcome, 5, null, null, null, null); + + IReadOnlyList? publishedResults = + await client.PublishTestResultsWithSubResultsAsync(configuration, runId: 42, [result], CancellationToken.None); + + Assert.IsNull(publishedResults); + Assert.Contains("status code 200", string.Join(Environment.NewLine, logger.Logs)); + Assert.Contains("content type 'text/html; charset=utf-8'", string.Join(Environment.NewLine, logger.Logs)); + } + + [TestMethod] + public async Task AzureDevOpsTestResultsClient_PublishTestResults_LoggerFailureDoesNotReplaySuccessfulHtmlResponse() + { + using HttpResponseMessage response = new(HttpStatusCode.OK) + { + Content = new StringContent("", Encoding.UTF8, "text/html"), + }; + int sendCount = 0; + QueueHttpMessageHandler handler = new( + (_, _) => + { + sendCount++; + return Task.FromResult(response); + }); + using HttpClient httpClient = new(handler) + { + Timeout = Timeout.InfiniteTimeSpan, + }; + CollectingLogger logger = new() { ThrowOnLog = true }; + AzureDevOpsTestResultsClient client = new(httpClient, new FakeTask(), new FakeClock(), logger); + AzureDevOpsPublishConfiguration configuration = new("https://dev.azure.com/org/", "project", "token", 1, "run", "tests.dll", "results"); + AzureDevOpsTestCaseResult result = new("MyTest", "tests", "MyTest", AzureDevOpsLivePublishingConstants.PassedTestOutcome, 5, null, null, null, null); + + IReadOnlyList? publishedResults = + await client.PublishTestResultsWithSubResultsAsync(configuration, runId: 42, [result], CancellationToken.None); + + Assert.IsNull(publishedResults); + Assert.AreEqual(1, sendCount); + } + [TestMethod] public async Task ConsumeAsync_PublishFailureLogsWarningAndDoesNotThrow() { diff --git a/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsTestResultsClientHandlerTests.cs b/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsTestResultsClientHandlerTests.cs index b6a82cac62..eddfe1f1cb 100644 --- a/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsTestResultsClientHandlerTests.cs +++ b/test/UnitTests/Microsoft.Testing.Extensions.UnitTests/AzureDevOpsTestResultsClientHandlerTests.cs @@ -23,12 +23,14 @@ namespace Microsoft.Testing.Extensions.UnitTests; public sealed class AzureDevOpsTestResultsClientHandlerTests { [TestMethod] - public void CreateHttpClientHandler_WhenPlatformSupportsDecompression_OptsIntoGZipAndDeflate() + public void CreateHttpClientHandler_WhenPlatformSupportsDecompression_DisablesRedirectsAndOptsIntoGZipAndDeflate() { Assert.IsFalse(OperatingSystem.IsBrowser(), "The unit test host is expected to run outside the browser sandbox."); using HttpClientHandler handler = AzureDevOpsTestResultsClient.CreateHttpClientHandler(); + Assert.IsFalse(OperatingSystem.IsWasi(), "The unit test host is expected to support redirect configuration."); + Assert.IsFalse(handler.AllowAutoRedirect); Assert.IsTrue(handler.SupportsAutomaticDecompression, "This platform is expected to support automatic decompression."); Assert.AreEqual(DecompressionMethods.Deflate | DecompressionMethods.GZip, handler.AutomaticDecompression); } From 6ce38ce7c85382da12553331cd20ac3bb984ee8f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Fri, 4 Sep 2026 13:39:29 +0200 Subject: [PATCH 17/33] Backport localization updates to rel/4.4 (#11042) Copilot-Session: 63c25c36-0fb9-4605-86fa-e2152aa7588b --- .../Resources/xlf/PlatformResources.pl.xlf | 6 +++--- .../Resources/xlf/PlatformResources.zh-Hans.xlf | 6 +++--- .../Resources/xlf/FrameworkMessages.cs.xlf | 16 ++++++++-------- .../Resources/xlf/FrameworkMessages.de.xlf | 16 ++++++++-------- .../Resources/xlf/FrameworkMessages.es.xlf | 16 ++++++++-------- .../Resources/xlf/FrameworkMessages.fr.xlf | 16 ++++++++-------- .../Resources/xlf/FrameworkMessages.it.xlf | 6 +++--- .../Resources/xlf/FrameworkMessages.ja.xlf | 16 ++++++++-------- .../Resources/xlf/FrameworkMessages.ko.xlf | 16 ++++++++-------- .../Resources/xlf/FrameworkMessages.pl.xlf | 16 ++++++++-------- .../Resources/xlf/FrameworkMessages.pt-BR.xlf | 16 ++++++++-------- .../Resources/xlf/FrameworkMessages.ru.xlf | 16 ++++++++-------- .../Resources/xlf/FrameworkMessages.tr.xlf | 16 ++++++++-------- .../Resources/xlf/FrameworkMessages.zh-Hans.xlf | 16 ++++++++-------- .../Resources/xlf/FrameworkMessages.zh-Hant.xlf | 16 ++++++++-------- 15 files changed, 105 insertions(+), 105 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf index eeb5bbcbba..9855ea9aa9 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf @@ -651,17 +651,17 @@ The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. - The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. + Wpis „{0}” w sekcji „{1}” w pliku testconfig.json („{2}”) musi zawierać niepustą wartość skalarną inną niż null albo niepustą tablicę wartości skalarnych. {0} is the option name. {1} is the section name. {2} is the path to the testconfig.json file. {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} In testconfig.json under 'commandLineOptionDefaults': {0} - In testconfig.json under 'commandLineOptionDefaults': {0} + W testconfig.json w obszarze „commandLineOptionDefaults”: {0} {0} is the underlying validation error message (unknown option, arity mismatch, invalid arguments...). {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. - The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. + Opcja „--{0}” jest odczytywana podczas ładowania początkowego platformy (przed załadowaniem pliku testconfig.json) i dlatego musi zostać przekazana w wierszu polecenia, a nie zadeklarowana w obszarze „{1}” w testconfig.json. {0} is the bare bootstrap-only option name without the leading "--" (e.g. config-file, diagnostic, diagnostic-verbosity); the "--" prefix is already in the format string. {1} is the JSON section name. {Locked="--"}{Locked="testconfig.json"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf index 09310ca162..0144297e62 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf @@ -651,17 +651,17 @@ The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. - The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must provide a non-null scalar value or a non-empty array of scalar values. + testconfig.json 文件(“{2}”)中“{1}”节下的条目“{0}”必须提供非空标量值或非空标量值数组。 {0} is the option name. {1} is the section name. {2} is the path to the testconfig.json file. {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} In testconfig.json under 'commandLineOptionDefaults': {0} - In testconfig.json under 'commandLineOptionDefaults': {0} + 在 testconfig.json 的 "commandLineOptionDefaults" 下: {0} {0} is the underlying validation error message (unknown option, arity mismatch, invalid arguments...). {Locked="testconfig.json"}{Locked="commandLineOptionDefaults"} The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. - The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under '{1}' in testconfig.json. + 系统会在平台启动时(在加载 testconfig.json 文件前)读取选项“--{0}”,因此必须通过命令行传递,而不能在 testconfig.json 的“{1}”下声明。 {0} is the bare bootstrap-only option name without the leading "--" (e.g. config-file, diagnostic, diagnostic-verbosity); the "--" prefix is already in the format string. {1} is the JSON section name. {Locked="--"}{Locked="testconfig.json"} diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.cs.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.cs.xlf index 0b659e0d25..2487db6a4f 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.cs.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.cs.xlf @@ -355,42 +355,42 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + Parametr '{0}' na '{1}' má více zprostředkovatelů kombinatorických hodnot: {2}. Použijte přesně jeden atribut, který implementuje {3}. {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0} vyžaduje více jedinečných náhodných hodnot, než obsahuje rozsah mezi {1} a {2}. {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. {0} must be positive. - {0} must be positive. + {0} musí být kladné číslo. {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + {0} nesmí být větší než {1}. {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + Rozsah překračuje maximální hodnotu celého čísla. Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + Rozsah překračuje maximální hodnotu celého čísla bez znaménka. Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + Rozsah obsahuje příliš mnoho hodnot. Error message shown when a combinatorial range cannot be represented in an array. Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + Nelze automaticky generovat hodnoty pro parametr typu {0}. K určení hodnot použijte atribut, který implementuje {1}. {0} is the parameter type. {1} is the provider interface name. diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.de.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.de.xlf index d1b904728f..28a1b7002f 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.de.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.de.xlf @@ -355,42 +355,42 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + Der Parameter '{0}' für '{1}' verfügt über mehrere kombinatorische Wertanbieter: {2}. Wenden Sie genau ein Attribut an, das {3} implementiert. {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0} fordert mehr eindeutige Zufallswerte an, als der Bereich zwischen {1} und {2} enthält. {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. {0} must be positive. - {0} must be positive. + {0} muss positiv sein. {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + {0} darf nicht größer als {1} sein. {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + Der Bereich überschreitet den maximalen ganzzahligen Wert. Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + Der Bereich überschreitet den maximalen ganzzahligen Wert ohne Vorzeichen. Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + Der Bereich enthält zu viele Werte. Error message shown when a combinatorial range cannot be represented in an array. Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + Für Parameter vom Typ {0} können keine automatischen Werte generiert werden. Wenden Sie ein Attribut an, das {1} implementiert, um die Werte anzugeben. {0} is the parameter type. {1} is the provider interface name. diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.es.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.es.xlf index 1ae439ac43..3eb9c712da 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.es.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.es.xlf @@ -355,42 +355,42 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + El parámetro '{0}' en '{1}' tiene varios proveedores de valores combinatorios: {2}. Aplique exactamente un atributo que implemente {3}. {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0} solicita más valores aleatorios únicos que los que contiene el intervalo entre {1} y {2}. {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. {0} must be positive. - {0} must be positive. + {0} debe ser positivo. {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + {0} no debe ser mayor que {1}. {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + El intervalo supera el valor entero máximo. Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + El intervalo supera el valor entero máximo sin signo. Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + El intervalo contiene demasiados valores. Error message shown when a combinatorial range cannot be represented in an array. Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + No se pueden generar automáticamente valores para el parámetro de tipo {0}. Aplique un atributo que implemente {1} para especificar los valores. {0} is the parameter type. {1} is the provider interface name. diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.fr.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.fr.xlf index 0874c3c4a1..af92d89bb8 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.fr.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.fr.xlf @@ -355,42 +355,42 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + Le paramètre '{0}' sur '{1}' a plusieurs fournisseurs de valeurs combinatoires : {2}. Appliquez exactement un attribut qui implémente {3}. {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0} demande plus de valeurs aléatoires uniques que la plage comprise entre {1} et {2} contient. {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. {0} must be positive. - {0} must be positive. + {0} doit être positif. {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + {0} ne doit pas être supérieur à {1}. {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + La plage dépasse la valeur maximale d’un entier. Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + La plage dépasse la valeur maximale d’un entier non signé. Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + La plage contient trop de valeurs. Error message shown when a combinatorial range cannot be represented in an array. Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + Impossible de générer automatiquement des valeurs pour le paramètre de type {0}. Appliquez un attribut qui implémente {1} pour spécifier les valeurs. {0} is the parameter type. {1} is the provider interface name. diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf index 5200e6e2f7..bd5ffe26dd 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf @@ -355,12 +355,12 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + Il parametro '{0}' in '{1}' ha più provider di valori combinatori: {2}. Applicare esattamente un attributo che implementa {3}. {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0} richiede più valori casuali univoci di quelli contenuti nell'intervallo compreso tra {1} e {2}. {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. @@ -390,7 +390,7 @@ Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + Impossibile generare automaticamente valori per il parametro di tipo {0}. Applicare un attributo che implementa {1} per specificare i valori. {0} is the parameter type. {1} is the provider interface name. diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ja.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ja.xlf index 382d486137..7a6dcdde22 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ja.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ja.xlf @@ -355,42 +355,42 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + '{1}' のパラメーター '{0}' には、複数の組み合わせ値プロバイダーがあります: {2}。{3} を実装する属性を 1 つだけ適用します。 {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0} は、{1} から {2} までの範囲に含まれる一意の乱数の数を超える値を要求しています。 {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. {0} must be positive. - {0} must be positive. + {0} は正である必要があります。 {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + {0} は {1} より大きくすることはできません。 {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + 範囲が最大整数値を超えています。 Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + 範囲が符号なし整数の最大値を超えています。 Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + 範囲に含まれる値が多すぎます。 Error message shown when a combinatorial range cannot be represented in an array. Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + 型 {0} のパラメーターの値を自動的に生成できません。値を指定するために {1} を実装する属性を適用します。 {0} is the parameter type. {1} is the provider interface name. diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ko.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ko.xlf index 76fd0635a1..1bf161b3b8 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ko.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ko.xlf @@ -355,42 +355,42 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + '{1}'의 매개 변수 '{0}'에 조합 값 공급자가 여러 개 있습니다. {2}. {3} 구현하는 특성을 하나만 적용합니다. {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0}에서는 {1}과(와) {2} 사이의 범위에 포함된 것보다 많은 고유한 임의 값을 요청합니다. {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. {0} must be positive. - {0} must be positive. + {0}은(는) 양수여야 합니다. {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + {0}은(는) {1}보다 크지 않아야 합니다. {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + 범위가 최대 정수 값을 초과합니다. Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + 범위가 최대 부호 없는 정수 값을 초과합니다. Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + 범위에 포함된 값이 너무 많습니다. Error message shown when a combinatorial range cannot be represented in an array. Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + {0} 유형의 매개 변수에 대한 값을 자동으로 생성할 수 없습니다. 값을 지정하기 위해 {1} 구현하는 특성을 적용합니다. {0} is the parameter type. {1} is the provider interface name. diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pl.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pl.xlf index d2c1b3305e..f8a79dc1a6 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pl.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pl.xlf @@ -355,42 +355,42 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + Parametr „{0}” w „{1}” ma wielu dostawców wartości kombinatoracyjnych: {2}. Zastosuj dokładnie jeden atrybut, który implementuje {3}. {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0} żąda więcej unikatowych losowych wartości niż zawiera zakres od {1} do {2}. {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. {0} must be positive. - {0} must be positive. + {0} musi być wartością dodatnią. {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + Wartość {0} nie może być większa niż {1}. {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + Zakres przekracza maksymalną wartość całkowitą. Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + Zakres przekracza maksymalną niepodpisaną wartość całkowitą. Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + Zakres zawiera zbyt wiele wartości. Error message shown when a combinatorial range cannot be represented in an array. Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + Nie można automatycznie wygenerować wartości dla parametru typu {0}. Zastosuj atrybut, który implementuje {1}, aby określić wartości. {0} is the parameter type. {1} is the provider interface name. diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pt-BR.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pt-BR.xlf index dc974f9d5c..e97f49e3cf 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pt-BR.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pt-BR.xlf @@ -355,42 +355,42 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + O parâmetro '{0}' no '{1}' tem vários provedores de valor combinatório: {2}. Aplique exatamente um atributo que implemente {3}. {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0} solicita mais valores aleatórios exclusivos do que o intervalo entre {1} e {2} contém. {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. {0} must be positive. - {0} must be positive. + {0} deve ser positivo. {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + {0} não deve ser maior que {1}. {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + O intervalo excede o valor máximo de inteiro. Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + O intervalo excede o valor máximo de inteiro sem sinal. Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + O intervalo contém valores demais. Error message shown when a combinatorial range cannot be represented in an array. Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + Não é possível gerar automaticamente valores para o parâmetro do tipo {0}. Aplique um atributo que implemente {1} para especificar os valores. {0} is the parameter type. {1} is the provider interface name. diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ru.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ru.xlf index 81489a6d7d..2835def269 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ru.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ru.xlf @@ -355,42 +355,42 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + Параметр '{0}' в '{1}' имеет несколько поставщиков комбинаторных значений: {2}. Примените ровно один атрибут, реализующий {3}. {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0} запрашивает больше уникальных случайных значений, чем содержит диапазон между {1} и {2}. {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. {0} must be positive. - {0} must be positive. + {0} должно быть положительным. {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + {0} не должно быть больше, чем {1}. {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + Диапазон превышает максимальное значение целого числа. Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + Диапазон превышает максимальное значение целого числа без знака. Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + Диапазон содержит слишком много значений. Error message shown when a combinatorial range cannot be represented in an array. Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + Не удалось автоматически создать значения для параметра типа {0}. Примените атрибут, реализующий {1} для указания значений. {0} is the parameter type. {1} is the provider interface name. diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.tr.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.tr.xlf index 830f4fb237..9592906d9d 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.tr.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.tr.xlf @@ -355,42 +355,42 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + '{1}' üzerindeki '{0}' parametresinin birden çok birleşimsel değer sağlayıcısı var: {2}. {3} uygulayan tam bir öznitelik uygulayın. {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0}, {1} ile {2} arasındaki aralığın içerdiğinden daha fazla benzersiz rastgele değer istiyor. {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. {0} must be positive. - {0} must be positive. + {0} pozitif olmalıdır. {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + {0}, {1} değerinden büyük olmamalıdır. {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + Aralık, maksimum tamsayı değerini aşıyor. Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + Aralık, maksimum işaretsiz tamsayı değerini aşıyor. Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + Aralıkta çok fazla değer var. Error message shown when a combinatorial range cannot be represented in an array. Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + {0} türündeki parametre için değerler otomatik olarak oluşturulamıyor. Değerleri belirtmek için {1} uygulayan bir öznitelik kullanın. {0} is the parameter type. {1} is the provider interface name. diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hans.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hans.xlf index 992b11b217..c2fb79c77d 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hans.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hans.xlf @@ -355,42 +355,42 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + '{1}' 上的参数 '{0}' 具有多个组合值提供程序: {2}。只应用一个实现 {3} 的属性。 {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0} 请求的唯一随机值数量超过 {1} 和 {2} 之间范围包含的数量。 {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. {0} must be positive. - {0} must be positive. + {0} 必须为正数。 {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + {0} 不得大于 {1}。 {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + 该范围超过最大整数值。 Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + 该范围超过最大无符号整数值。 Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + 该范围包含的值太多。 Error message shown when a combinatorial range cannot be represented in an array. Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + 无法为 {0} 类型的参数自动生成值。应用实现 {1} 的属性以指定值。 {0} is the parameter type. {1} is the provider interface name. diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hant.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hant.xlf index f180b2f399..c5e964a736 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hant.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hant.xlf @@ -355,42 +355,42 @@ Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. - Parameter '{0}' on '{1}' has multiple combinatorial value providers: {2}. Apply exactly one attribute that implements {3}. + 參數 '{0}' 在 '{1}' 中有多個組合值提供者: {2}。請只套用一個實作 {3} 的屬性。 {0} is the parameter name. {1} is the test method name. {2} is the comma-separated list of provider attribute types. {3} is the provider interface name. {0} requests more unique random values than the range between {1} and {2} contains. - {0} requests more unique random values than the range between {1} and {2} contains. + {0} 要求的唯一隨機值數量超過 {1} 與 {2} 之間的範圍所能包含的數量。 {0} is the count property name. {1} is the minimum property name. {2} is the maximum property name. {0} must be positive. - {0} must be positive. + {0} 必須是正數。 {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + {0} 不得大於 {1}。 {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + 範圍超過整數的最大值。 Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + 範圍超過無符號整數的最大值。 Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + 此範圍包含過多值。 Error message shown when a combinatorial range cannot be represented in an array. Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. - Unable to automatically generate values for parameter of type {0}. Apply an attribute that implements {1} to specify the values. + 無法自動產生類型 {0} 之參數的值。請套用實作 {1} 的屬性來指定值。 {0} is the parameter type. {1} is the provider interface name. From 2bc2b64651091d4cb73392b512daff5c4e19ff56 Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Mon, 7 Sep 2026 15:09:07 +0200 Subject: [PATCH 18/33] Preserve graceful cancellation through test host controller by @Evangelink in #11054 (backport to rel/4.4) (#11070) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Copilot-Session: d9c605b8-cf9f-4fbd-b4d0-4a59865a087e --- .../InternalAPI/InternalAPI.Unshipped.txt | 2 + .../InternalAPI/InternalAPI.Unshipped.txt | 1 + .../InternalAPI.Unshipped.txt | 2 + .../InternalAPI/InternalAPI.Unshipped.txt | 2 + .../InternalAPI/InternalAPI.Unshipped.txt | 2 + .../Helpers/EnvironmentVariableConstants.cs | 1 + .../Hosts/TestHostBuilder.Modes.cs | 84 +++++-- .../Hosts/TestHostBuilder.Utilities.cs | 19 ++ .../Hosts/TestHostControlledHost.cs | 64 ++++- .../TestHostControllerCancellationListener.cs | 129 ++++++++++ .../TestHostControllerCancellationServer.cs | 121 ++++++++++ .../Hosts/TestHostControllersTestHost.Ipc.cs | 10 +- ...ontrollersTestHost.ProcessConfiguration.cs | 4 + ...ostControllersTestHost.ProcessLifecycle.cs | 226 +++++++++++------- .../Hosts/TestHostControllersTestHost.cs | 52 +++- .../IPC/NamedPipeServer.cs | 171 +++++++++---- .../InternalAPI/InternalAPI.Unshipped.txt | 41 ++++ .../InternalAPI/net/InternalAPI.Unshipped.txt | 2 + .../Messages/ShutdownTimeouts.cs | 8 +- .../ServerMode/DotnetTest/IPC/Constants.cs | 4 + .../CTRLPlusCCancellationTokenSource.cs | 25 ++ .../AbortionTests.cs | 186 +++++++++++++- .../TestHostControllerCancellationTests.cs | 194 +++++++++++++++ .../CTRLPlusCCancellationTokenSourceTests.cs | 38 +++ .../TestApplicationBuilderTests.cs | 138 ++++++++++- .../TestHostBuilderTests.cs | 32 +++ 26 files changed, 1374 insertions(+), 184 deletions(-) create mode 100644 src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllerCancellationListener.cs create mode 100644 src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllerCancellationServer.cs create mode 100644 test/UnitTests/Microsoft.Testing.Platform.UnitTests/Hosts/TestHostControllerCancellationTests.cs diff --git a/src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Unshipped.txt index 7dc5c58110..fb3d937e55 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.HangDump/InternalAPI/InternalAPI.Unshipped.txt @@ -1 +1,3 @@ #nullable enable +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME = "TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME" -> string! +Microsoft.Testing.Platform.IPC.NamedPipeServer.WaitForDisconnectAsync(System.TimeSpan timeout) -> System.Threading.Tasks.Task! diff --git a/src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Unshipped.txt index 7dc5c58110..2981e4c0d4 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.HotReload/InternalAPI/InternalAPI.Unshipped.txt @@ -1 +1,2 @@ #nullable enable +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME = "TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME" -> string! diff --git a/src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Unshipped.txt index 7dc5c58110..fb3d937e55 100644 --- a/src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.MSBuild/InternalAPI.Unshipped.txt @@ -1 +1,3 @@ #nullable enable +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME = "TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME" -> string! +Microsoft.Testing.Platform.IPC.NamedPipeServer.WaitForDisconnectAsync(System.TimeSpan timeout) -> System.Threading.Tasks.Task! diff --git a/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt index 86abd98eda..c364985215 100644 --- a/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.Retry/InternalAPI/InternalAPI.Unshipped.txt @@ -3,3 +3,5 @@ static Microsoft.Testing.Extensions.Policy.RetryArgumentsBuilder.BuildAttemptArg static Microsoft.Testing.Extensions.Policy.RetryArgumentsBuilder.GetArgumentsResponseFilePath(string! retryRootFolder, int attemptCount) -> string! static Microsoft.Testing.Extensions.Policy.RetryArgumentsBuilder.GetFilterUidsResponseFilePath(string! retryRootFolder, int attemptCount) -> string! static Microsoft.Testing.Extensions.Policy.RetryOrchestrator.LogResponseFileFallbackWarningAsync(Microsoft.Testing.Platform.Logging.ILogger! logger, string![]! originalExecutableArguments, System.Collections.Generic.List! finalArguments, string! generatedResponseFilePath) -> System.Threading.Tasks.Task! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME = "TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME" -> string! +Microsoft.Testing.Platform.IPC.NamedPipeServer.WaitForDisconnectAsync(System.TimeSpan timeout) -> System.Threading.Tasks.Task! diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Unshipped.txt index 7dc5c58110..fb3d937e55 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/InternalAPI/InternalAPI.Unshipped.txt @@ -1 +1,3 @@ #nullable enable +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME = "TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME" -> string! +Microsoft.Testing.Platform.IPC.NamedPipeServer.WaitForDisconnectAsync(System.TimeSpan timeout) -> System.Threading.Tasks.Task! diff --git a/src/Platform/Microsoft.Testing.Platform/Helpers/EnvironmentVariableConstants.cs b/src/Platform/Microsoft.Testing.Platform/Helpers/EnvironmentVariableConstants.cs index 2de410339a..54fc8b829c 100644 --- a/src/Platform/Microsoft.Testing.Platform/Helpers/EnvironmentVariableConstants.cs +++ b/src/Platform/Microsoft.Testing.Platform/Helpers/EnvironmentVariableConstants.cs @@ -24,6 +24,7 @@ internal static class EnvironmentVariableConstants public const string TESTINGPLATFORM_TESTHOSTCONTROLLER_SKIPEXTENSION = nameof(TESTINGPLATFORM_TESTHOSTCONTROLLER_SKIPEXTENSION); public const string TESTINGPLATFORM_TESTHOSTCONTROLLER_PIPENAME = nameof(TESTINGPLATFORM_TESTHOSTCONTROLLER_PIPENAME); + public const string TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME = nameof(TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME); public const string TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID = nameof(TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID); public const string TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID = nameof(TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID); public const string TESTINGPLATFORM_TESTHOSTCONTROLLER_TESTHOSTPROCESSSTARTTIME = nameof(TESTINGPLATFORM_TESTHOSTCONTROLLER_TESTHOSTPROCESSSTARTTIME); diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.Modes.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.Modes.cs index c52b3459d9..452db5b48c 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.Modes.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.Modes.cs @@ -226,30 +226,53 @@ private async Task BuildTestHostModeAsync(BuildContext context) context.TestHostControllerInfo.IsCurrentProcessTestHostController = false; #pragma warning disable CA1416 // Preserve existing browser behavior while splitting the method. - NamedPipeClient? testControllerConnection = await ConnectToTestHostProcessMonitorIfAvailableAsync( - context.TestApplicationCancellationTokenSource, - context.LoggerFactory.CreateLogger(nameof(ConnectToTestHostProcessMonitorIfAvailableAsync)), - context.TestHostControllerInfo, - context.Configuration, - context.SystemEnvironment).ConfigureAwait(false); + TestHostControllerCancellationListener? testHostControllerCancellationListener = + CreateTestHostControllerCancellationListenerIfAvailable( + context.TestApplicationCancellationTokenSource, + context.LoggerFactory.CreateLogger(nameof(TestHostControllerCancellationListener)), + context.TestHostControllerInfo, + context.SystemEnvironment); + NamedPipeClient? testControllerConnection = null; + try + { + // Start the auxiliary listener before awaiting the primary handshake so cancellation can reach + // the child even while its primary connection or PID request is still in progress. + testControllerConnection = await ConnectToTestHostProcessMonitorIfAvailableAsync( + context.TestApplicationCancellationTokenSource, + context.LoggerFactory.CreateLogger(nameof(ConnectToTestHostProcessMonitorIfAvailableAsync)), + context.TestHostControllerInfo, + context.Configuration, + context.SystemEnvironment).ConfigureAwait(false); #pragma warning restore CA1416 // Preserve existing browser behavior while splitting the method. #pragma warning disable CS0618 // Type or member is obsolete - ITestHostApplicationLifetime[] testApplicationLifecycleCallback = - await ((TestHostManager)TestHost).BuildTestApplicationLifecycleCallbackAsync(context.ServiceProvider).ConfigureAwait(false); + ITestHostApplicationLifetime[] testApplicationLifecycleCallback = + await ((TestHostManager)TestHost).BuildTestApplicationLifecycleCallbackAsync(context.ServiceProvider).ConfigureAwait(false); #pragma warning restore CS0618 // Type or member is obsolete - context.ServiceProvider.AddServices(testApplicationLifecycleCallback); + context.ServiceProvider.AddServices(testApplicationLifecycleCallback); - ITestExecutionFilterProvider[] testExecutionFilterProviders = - await ((TestHostManager)TestHost).BuildTestExecutionFilterProvidersAsync(context.ServiceProvider).ConfigureAwait(false); - context.ServiceProvider.AddServices(testExecutionFilterProviders); + ITestExecutionFilterProvider[] testExecutionFilterProviders = + await ((TestHostManager)TestHost).BuildTestExecutionFilterProvidersAsync(context.ServiceProvider).ConfigureAwait(false); + context.ServiceProvider.AddServices(testExecutionFilterProviders); - return context.IsJsonRpcProtocol - ? await BuildServerTestHostAsync(context, testControllerConnection).ConfigureAwait(false) - : await BuildConsoleTestHostAsync(context, testControllerConnection).ConfigureAwait(false); + return context.IsJsonRpcProtocol + ? await BuildServerTestHostAsync(context, testControllerConnection, testHostControllerCancellationListener).ConfigureAwait(false) + : await BuildConsoleTestHostAsync(context, testControllerConnection, testHostControllerCancellationListener).ConfigureAwait(false); + } + catch + { + await DisposeHelper.DisposeAsync(testHostControllerCancellationListener).ConfigureAwait(false); +#pragma warning disable CA1416 // This method only creates named-pipe connections on supported platforms. + testControllerConnection?.Dispose(); +#pragma warning restore CA1416 + throw; + } } - private async Task BuildServerTestHostAsync(BuildContext context, NamedPipeClient? testControllerConnection) + private async Task BuildServerTestHostAsync( + BuildContext context, + NamedPipeClient? testControllerConnection, + TestHostControllerCancellationListener? testHostControllerCancellationListener) { IMessageHandlerFactory messageHandlerFactory = ServerModeManager.Build(context.ServiceProvider); ServerTestHost serverTestHost = new( @@ -260,13 +283,17 @@ private async Task BuildServerTestHostAsync(BuildContext context, NamedPi (TestHostManager)TestHost); #pragma warning disable CA1416 // Preserve existing browser behavior while splitting the method. - IHost actualTestHost = testControllerConnection is not null - ? new TestHostControlledHost( + IHost actualTestHost = serverTestHost; + if (testControllerConnection is not null) + { + var controlledHost = new TestHostControlledHost( testControllerConnection, serverTestHost, context.TestApplicationCancellationTokenSource.CancellationToken, - context.ServiceProvider.GetRequiredService()) - : serverTestHost; + context.ServiceProvider.GetRequiredService()); + controlledHost.SetCancellationListener(testHostControllerCancellationListener); + actualTestHost = controlledHost; + } #pragma warning restore CA1416 // Preserve existing browser behavior while splitting the method. // The TestHostBuilt telemetry event must be sent through the collector previously registered @@ -293,7 +320,10 @@ await LogTestHostCreatedAsync( return actualTestHost; } - private async Task BuildConsoleTestHostAsync(BuildContext context, NamedPipeClient? testControllerConnection) + private async Task BuildConsoleTestHostAsync( + BuildContext context, + NamedPipeClient? testControllerConnection, + TestHostControllerCancellationListener? testHostControllerCancellationListener) { ActionResult testExecutionFilterFactoryResult = await ((TestHostManager)TestHost).TryBuildTestExecutionFilterFactoryAsync(context.ServiceProvider).ConfigureAwait(false); if (testExecutionFilterFactoryResult.IsSuccess) @@ -320,13 +350,17 @@ private async Task BuildConsoleTestHostAsync(BuildContext context, NamedP (TestHostManager)TestHost); #pragma warning disable CA1416 // Preserve existing browser behavior while splitting the method. - IHost actualTestHost = testControllerConnection is not null - ? new TestHostControlledHost( + IHost actualTestHost = consoleHost; + if (testControllerConnection is not null) + { + var controlledHost = new TestHostControlledHost( testControllerConnection, consoleHost, context.TestApplicationCancellationTokenSource.CancellationToken, - context.ServiceProvider.GetRequiredService()) - : consoleHost; + context.ServiceProvider.GetRequiredService()); + controlledHost.SetCancellationListener(testHostControllerCancellationListener); + actualTestHost = controlledHost; + } #pragma warning restore CA1416 // Preserve existing browser behavior while splitting the method. #pragma warning disable SA1118 // Parameter should not span multiple lines diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.Utilities.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.Utilities.cs index 96007c322a..d8739fca31 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.Utilities.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.Utilities.cs @@ -60,6 +60,25 @@ await client.RequestReplyAsync( return client; } + private static TestHostControllerCancellationListener? CreateTestHostControllerCancellationListenerIfAvailable( + CTRLPlusCCancellationTokenSource testApplicationCancellationTokenSource, + ILogger logger, + TestHostControllerInfo testHostControllerInfo, + SystemEnvironment environment) + { + if (!testHostControllerInfo.HasTestHostController || OperatingSystem.IsBrowser()) + { + return null; + } + + string pipeEnvironmentVariable = $"{EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME}_{testHostControllerInfo.GetTestHostControllerPID()}"; + string? pipeName = environment.GetEnvironmentVariable(pipeEnvironmentVariable); + environment.SetEnvironmentVariable(pipeEnvironmentVariable, string.Empty); + return RoslynString.IsNullOrEmpty(pipeName) + ? null + : new TestHostControllerCancellationListener(pipeName, testApplicationCancellationTokenSource, environment, logger); + } + private void AddApplicationTelemetryMetadata(IServiceProvider serviceProvider, Dictionary builderMetadata) { ITelemetryInformation telemetryInformation = serviceProvider.GetTelemetryInformation(); diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControlledHost.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControlledHost.cs index 2053fe458e..8b99bc2b55 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControlledHost.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControlledHost.cs @@ -4,27 +4,25 @@ using Microsoft.Testing.Platform.Helpers; using Microsoft.Testing.Platform.IPC; using Microsoft.Testing.Platform.IPC.Models; +using Microsoft.Testing.Platform.Messages; using Microsoft.Testing.Platform.Services; namespace Microsoft.Testing.Platform.Hosts; [UnsupportedOSPlatform("browser")] [StackTraceHidden] -internal sealed class TestHostControlledHost( - NamedPipeClient testHostControllerPipeClient, - IHost innerHost, - CancellationToken cancellationToken, - TestApplicationResult? testApplicationResult = null) : IHost, IDisposable +internal sealed class TestHostControlledHost : IHost, IDisposable #if NETCOREAPP #pragma warning disable SA1001 // Commas should be spaced correctly , IAsyncDisposable #pragma warning restore SA1001 // Commas should be spaced correctly #endif { - private readonly NamedPipeClient _namedPipeClient = testHostControllerPipeClient; - private readonly IHost _innerHost = innerHost; - private readonly CancellationToken _cancellationToken = cancellationToken; - private readonly TestApplicationResult? _testApplicationResult = testApplicationResult; + private readonly NamedPipeClient _namedPipeClient; + private readonly IHost _innerHost; + private readonly CancellationToken _cancellationToken; + private readonly TestApplicationResult? _testApplicationResult; + private TestHostControllerCancellationListener? _testHostControllerCancellationListener; public TestHostControlledHost( NamedPipeClient testHostControllerPipeClient, @@ -34,9 +32,30 @@ public TestHostControlledHost( { } + public TestHostControlledHost( + NamedPipeClient testHostControllerPipeClient, + IHost innerHost, + CancellationToken cancellationToken, + TestApplicationResult? testApplicationResult = null) + { + _namedPipeClient = testHostControllerPipeClient; + _innerHost = innerHost; + _cancellationToken = cancellationToken; + _testApplicationResult = testApplicationResult; + } + + public void SetCancellationListener(TestHostControllerCancellationListener? testHostControllerCancellationListener) + => _testHostControllerCancellationListener = testHostControllerCancellationListener; + public async Task RunAsync() { int exitCode = await _innerHost.RunAsync().ConfigureAwait(false); + using CancellationTokenSource completionCancellationTokenSource = new(); + using CancellationTokenRegistration completionCancellationRegistration = RegisterCompletionCancellationTransition( + _cancellationToken, + () => _testHostControllerCancellationListener?.ShouldReportCompletionAfterCancellation == true, + completionCancellationTokenSource, + ShutdownTimeouts.DefaultControllerFinalization); try { int unfilteredExitCode = _testApplicationResult?.GetProcessExitCode() == exitCode @@ -44,23 +63,45 @@ public async Task RunAsync() : exitCode; await _namedPipeClient.RequestReplyAsync( new TestHostCompletedRequest(exitCode, unfilteredExitCode), - _cancellationToken).ConfigureAwait(false); + completionCancellationTokenSource.Token).ConfigureAwait(false); } - catch (OperationCanceledException oc) when (oc.CancellationToken == _cancellationToken) + catch (OperationCanceledException oc) when ( + oc.CancellationToken == _cancellationToken + || oc.CancellationToken == completionCancellationTokenSource.Token) { // We do nothing we're canceling } finally { + await DisposeHelper.DisposeAsync(_testHostControllerCancellationListener).ConfigureAwait(false); await DisposeHelper.DisposeAsync(_namedPipeClient).ConfigureAwait(false); } return exitCode; } + internal static CancellationTokenRegistration RegisterCompletionCancellationTransition( + CancellationToken applicationCancellationToken, + Func shouldReportCompletionAfterCancellation, + CancellationTokenSource completionCancellationTokenSource, + TimeSpan cooperativeCompletionTimeout) + => applicationCancellationToken.Register( + () => + { + if (shouldReportCompletionAfterCancellation()) + { + completionCancellationTokenSource.CancelAfter(cooperativeCompletionTimeout); + } + else + { + completionCancellationTokenSource.Cancel(); + } + }); + public void Dispose() { (_innerHost as IDisposable)?.Dispose(); + _testHostControllerCancellationListener?.Dispose(); _namedPipeClient.Dispose(); } @@ -68,6 +109,7 @@ public void Dispose() public async ValueTask DisposeAsync() { await DisposeHelper.DisposeAsync(_innerHost).ConfigureAwait(false); + await DisposeHelper.DisposeAsync(_testHostControllerCancellationListener).ConfigureAwait(false); _namedPipeClient.Dispose(); } #endif diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllerCancellationListener.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllerCancellationListener.cs new file mode 100644 index 0000000000..2e24d6aa83 --- /dev/null +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllerCancellationListener.cs @@ -0,0 +1,129 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using Microsoft.Testing.Platform.Helpers; +using Microsoft.Testing.Platform.IPC; +using Microsoft.Testing.Platform.IPC.Models; +using Microsoft.Testing.Platform.IPC.Serializers; +using Microsoft.Testing.Platform.Logging; +using Microsoft.Testing.Platform.Services; + +namespace Microsoft.Testing.Platform.Hosts; + +[UnsupportedOSPlatform("browser")] +internal sealed class TestHostControllerCancellationListener : IDisposable +#if NET +#pragma warning disable SA1001 // Commas should be spaced correctly + , IAsyncDisposable +#pragma warning restore SA1001 // Commas should be spaced correctly +#endif +{ + private static readonly TimeSpan ConnectionTimeout = TimeSpan.FromSeconds(30); + + private readonly CTRLPlusCCancellationTokenSource _testApplicationCancellationTokenSource; + private readonly ILogger _logger; + private readonly NamedPipeClient _client; + private readonly CancellationTokenSource _shutdownCancellationTokenSource = new(); + private readonly Task _listenerTask; + private int _cancellationRequestedByController; + private int _disposed; + + public TestHostControllerCancellationListener( + string pipeName, + CTRLPlusCCancellationTokenSource testApplicationCancellationTokenSource, + IEnvironment environment, + ILogger logger) + { + _testApplicationCancellationTokenSource = testApplicationCancellationTokenSource; + _logger = logger; + _client = new NamedPipeClient(pipeName, environment, exitProcessOnConnectionLoss: false); + _client.RegisterAllSerializers(); + _listenerTask = ListenAsync(_shutdownCancellationTokenSource.Token); + } + + public bool WasCancellationRequestedByController + => Volatile.Read(ref _cancellationRequestedByController) != 0; + + public bool ShouldReportCompletionAfterCancellation + => WasCancellationRequestedByController + || _testApplicationCancellationTokenSource.WasCancellationRequestedByConsole; + + private async Task ListenAsync(CancellationToken cancellationToken) + { + try + { + using var connectCancellationTokenSource = CancellationTokenSource.CreateLinkedTokenSource(cancellationToken); + connectCancellationTokenSource.CancelAfter(ConnectionTimeout); + await _client.ConnectAsync(connectCancellationTokenSource.Token).ConfigureAwait(false); + + while (!cancellationToken.IsCancellationRequested) + { + ServerControlMessage message = await _client.RequestReplyAsync( + WaitForServerControlRequest.CachedInstance, + cancellationToken).ConfigureAwait(false); + if (message.Kind == ServerControlKinds.CancelSession) + { + RequestCancellation(); + return; + } + + if (message.Kind == ServerControlKinds.CloseChannel) + { + return; + } + } + } + catch (Exception ex) when (cancellationToken.IsCancellationRequested) + { + // The platform logger can already be disposed when this listener is torn down. Keep the expected + // shutdown race observable for debugger diagnostics without re-entering the logging pipeline. + Debug.WriteLine($"Test host controller cancellation channel stopped during shutdown: {ex}"); + } + catch (Exception ex) + { + await _logger.LogDebugAsync($"Test host controller cancellation channel stopped unexpectedly: {ex}").ConfigureAwait(false); + } + finally + { + _client.Dispose(); + } + } + + private void RequestCancellation() + { + Volatile.Write(ref _cancellationRequestedByController, 1); + try + { + _testApplicationCancellationTokenSource.Cancel(); + } + catch (AggregateException ex) + { + _logger.LogWarning($"Exception while propagating test host controller cancellation:\n{ex}"); + } + } + + public void Dispose() + => DisposeAsyncCore().GetAwaiter().GetResult(); + +#if NET + public async ValueTask DisposeAsync() + => await DisposeAsyncCore().ConfigureAwait(false); +#endif + + private async Task DisposeAsyncCore() + { + if (Interlocked.Exchange(ref _disposed, 1) != 0) + { + return; + } + +#if NET + await _shutdownCancellationTokenSource.CancelAsync().ConfigureAwait(false); +#else + _shutdownCancellationTokenSource.Cancel(); +#endif + _client.Dispose(); + await _listenerTask.ConfigureAwait(false); + _shutdownCancellationTokenSource.Dispose(); + } +} diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllerCancellationServer.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllerCancellationServer.cs new file mode 100644 index 0000000000..da6998021d --- /dev/null +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllerCancellationServer.cs @@ -0,0 +1,121 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using Microsoft.Testing.Platform.Helpers; +using Microsoft.Testing.Platform.IPC; +using Microsoft.Testing.Platform.IPC.Models; +using Microsoft.Testing.Platform.IPC.Serializers; +using Microsoft.Testing.Platform.Logging; + +namespace Microsoft.Testing.Platform.Hosts; + +[UnsupportedOSPlatform("browser")] +internal sealed class TestHostControllerCancellationServer : IDisposable +#if NET +#pragma warning disable SA1001 // Commas should be spaced correctly + , IAsyncDisposable +#pragma warning restore SA1001 // Commas should be spaced correctly +#endif +{ + private static readonly TimeSpan CloseHandshakeTimeout = TimeSpan.FromSeconds(1); + + private readonly CancellationTokenSource _acceptCancellationTokenSource = new(); + private readonly CancellationTokenSource _serverLifetimeCancellationTokenSource = new(); + private readonly TaskCompletionSource _controlMessage = + new(TaskCreationOptions.RunContinuationsAsynchronously); + + private readonly TaskCompletionSource _requestReceived = + new(TaskCreationOptions.RunContinuationsAsynchronously); + + private readonly NamedPipeServer _server; + private Task? _waitConnectionTask; + private int _disposed; + + public TestHostControllerCancellationServer( + IReadOnlyList? authorizedSecurityIdentities, + IEnvironment environment, + ILoggerFactory loggerFactory, + ITask task) + { + _server = new NamedPipeServer( + $"CONTROLTOHOST_{Guid.NewGuid():N}", + HandleRequestAsync, + environment, + loggerFactory.CreateLogger(), + task, + authorizedSecurityIdentities, + _serverLifetimeCancellationTokenSource.Token); + _server.RegisterAllSerializers(); + } + + public string PipeName => _server.PipeName.Name; + + public void Start() + => _waitConnectionTask = _server.WaitConnectionAsync(_acceptCancellationTokenSource.Token); + + public void RequestCancellation() + => _controlMessage.TrySetResult(new ServerControlMessage(ServerControlKinds.CancelSession)); + + public Task WaitForRequestAsync() + => _requestReceived.Task; + + private async Task HandleRequestAsync(IRequest request) + { + if (request is not WaitForServerControlRequest) + { + throw new NotSupportedException($"Request '{request}' not supported"); + } + + _requestReceived.TrySetResult(true); + return await _controlMessage.Task.ConfigureAwait(false); + } + + public void Dispose() + => DisposeAsyncCore().GetAwaiter().GetResult(); + +#if NET + public async ValueTask DisposeAsync() + => await DisposeAsyncCore().ConfigureAwait(false); +#endif + + private async Task DisposeAsyncCore() + { + if (Interlocked.Exchange(ref _disposed, 1) != 0) + { + return; + } + + _controlMessage.TrySetResult(new ServerControlMessage(ServerControlKinds.CloseChannel)); +#if NET + await _acceptCancellationTokenSource.CancelAsync().ConfigureAwait(false); +#else + _acceptCancellationTokenSource.Cancel(); +#endif + bool disconnected = _requestReceived.Task.IsCompleted + && await _server.WaitForDisconnectAsync(CloseHandshakeTimeout).ConfigureAwait(false); + if (!disconnected) + { +#if NET + await _serverLifetimeCancellationTokenSource.CancelAsync().ConfigureAwait(false); +#else + _serverLifetimeCancellationTokenSource.Cancel(); +#endif + } + + if (_waitConnectionTask is not null) + { + try + { + await _waitConnectionTask.ConfigureAwait(false); + } + catch (OperationCanceledException) when (_acceptCancellationTokenSource.IsCancellationRequested) + { + // Disposal canceled the connection wait before a child connected. + } + } + + await DisposeHelper.DisposeAsync(_server).ConfigureAwait(false); + _acceptCancellationTokenSource.Dispose(); + _serverLifetimeCancellationTokenSource.Dispose(); + } +} diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.Ipc.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.Ipc.cs index a3354cb010..c06505c006 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.Ipc.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.Ipc.cs @@ -11,14 +11,10 @@ namespace Microsoft.Testing.Platform.Hosts; internal sealed partial class TestHostControllersTestHost { - private async Task CreateTestHostControllerIpcAsync(ExecutableInfo executableInfo, CancellationToken cancellationToken) + private NamedPipeServer CreateTestHostControllerIpc( + IReadOnlyList? authorizedSecurityIdentities, + CancellationToken cancellationToken) { - IReadOnlyList? authorizedSecurityIdentities = await ServiceProvider.ResolveTestHostControllerAuthorizedSecurityIdentitiesAsync( - _testHostsInformation.TestHostLauncher, - executableInfo.FilePath, - _logger, - cancellationToken).ConfigureAwait(false); - NamedPipeServer testHostControllerIpc = new( $"MONITORTOHOST_{Guid.NewGuid():N}", HandleRequestAsync, diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessConfiguration.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessConfiguration.cs index 6c13336c91..d5ed6fce74 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessConfiguration.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessConfiguration.cs @@ -24,6 +24,7 @@ internal sealed partial class TestHostControllersTestHost string processIdString, string processCorrelationId, NamedPipeServer testHostControllerIpc, + TestHostControllerCancellationServer testHostControllerCancellationServer, IEnvironment environment, ProxyOutputDevice outputDevice, CancellationToken cancellationToken) @@ -62,6 +63,7 @@ internal sealed partial class TestHostControllersTestHost { $"{EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_PARENTPID}_{currentPid}", processIdString }, { $"{EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_SKIPEXTENSION}_{currentPid}", "1" }, { $"{EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_PIPENAME}_{currentPid}", testHostControllerIpc.PipeName.Name }, + { $"{EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME}_{currentPid}", testHostControllerCancellationServer.PipeName }, }, UseShellExecute = false, }; @@ -168,6 +170,8 @@ await ApplyControllerExtensionPreLaunchAsync( } } + TestHostCooperativeShutdownTimeout = GetTestHostCooperativeShutdownTimeout(environmentVariables); + return (processStartInfo, partialCommandLine); } diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs index 7f9b932389..0dff4bca6a 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs @@ -24,6 +24,7 @@ internal sealed partial class TestHostControllersTestHost IProcessHandler process, IConfiguration configuration, NamedPipeServer testHostControllerIpc, + TestHostControllerCancellationServer testHostControllerCancellationServer, ProxyOutputDevice outputDevice, ITelemetryInformation telemetryInformation, Stopwatch consoleRunStarted, @@ -39,6 +40,9 @@ internal sealed partial class TestHostControllersTestHost using IProcess testHostProcess = testHostLauncher is null ? process.Start(processStartInfo) : await LaunchUsingCustomLauncherAsync(testHostLauncher, processStartInfo, partialCommandLine, applicationCancellationToken).ConfigureAwait(false); + var applicationCancellationTokenSource = + (CTRLPlusCCancellationTokenSource)ServiceProvider.GetTestApplicationCancellationTokenSource(); + using IDisposable forceExitRegistration = applicationCancellationTokenSource.RegisterForceExitAction(testHostProcess.Kill); int? testHostProcessId = null; try @@ -57,7 +61,6 @@ internal sealed partial class TestHostControllersTestHost _logger.LogDebug($"Test host process exited, PID: '{testHostProcessId}'"); await _logger.LogDebugAsync($"Started test host process '{testHostProcessId}' HasExited: {testHostProcess.HasExited}").ConfigureAwait(false); - // Note: we intentionally gate on HasExited only and not on 'testHostProcessId is null'. // A custom ITestHostLauncher may legitimately not expose a local PID (e.g. container, // remote, or AUMID-activated apps); the real test host PID still arrives via the IPC @@ -69,96 +72,84 @@ internal sealed partial class TestHostControllersTestHost } else { - string? seconds = configuration[PlatformConfigurationConstants.PlatformTestHostControllersManagerSingleConnectionNamedPipeServerWaitConnectionTimeoutSeconds]; - double timeoutSeconds = seconds is null ? TimeoutHelper.DefaultHangTimeoutSeconds : double.Parse(seconds, CultureInfo.InvariantCulture); - await _logger.LogDebugAsync($"Setting PlatformTestHostControllersManagerSingleConnectionNamedPipeServerWaitConnectionTimeoutSeconds '{timeoutSeconds}'").ConfigureAwait(false); - - // Wait for the test host controller to connect - using (CancellationTokenSource timeout = new(TimeSpan.FromSeconds(timeoutSeconds))) - using (var linkedToken = CancellationTokenSource.CreateLinkedTokenSource(timeout.Token, applicationCancellationToken)) - { - await _logger.LogDebugAsync("Wait connection from the test host process").ConfigureAwait(false); - await testHostControllerIpc.WaitConnectionAsync(linkedToken.Token).ConfigureAwait(false); - } + await RunWithCancellationTeardownAsync( + async () => + { + string? seconds = configuration[PlatformConfigurationConstants.PlatformTestHostControllersManagerSingleConnectionNamedPipeServerWaitConnectionTimeoutSeconds]; + double timeoutSeconds = seconds is null ? TimeoutHelper.DefaultHangTimeoutSeconds : double.Parse(seconds, CultureInfo.InvariantCulture); + await _logger.LogDebugAsync($"Setting PlatformTestHostControllersManagerSingleConnectionNamedPipeServerWaitConnectionTimeoutSeconds '{timeoutSeconds}'").ConfigureAwait(false); - // Wait for the test host controller to send the PID of the test host process - using (CancellationTokenSource timeout = new(TimeoutHelper.DefaultHangTimeSpanTimeout)) - { - _waitForPid.Wait(timeout.Token); - } + // Wait for the test host controller to connect. + using (CancellationTokenSource timeout = new(TimeSpan.FromSeconds(timeoutSeconds))) + using (var linkedToken = CancellationTokenSource.CreateLinkedTokenSource(timeout.Token, applicationCancellationToken)) + { + await _logger.LogDebugAsync("Wait connection from the test host process").ConfigureAwait(false); + await testHostControllerIpc.WaitConnectionAsync(linkedToken.Token).ConfigureAwait(false); + } - await _logger.LogDebugAsync("Fire OnTestHostProcessStartedAsync").ConfigureAwait(false); + // Wait for the test host controller to send the PID of the test host process. + using (var timeout = CancellationTokenSource.CreateLinkedTokenSource(applicationCancellationToken)) + { + timeout.CancelAfter(TimeoutHelper.DefaultHangTimeSpanTimeout); + _waitForPid.Wait(timeout.Token); + } - if (_testHostPID is null) - { - throw ApplicationStateGuard.Unreachable(); - } + await _logger.LogDebugAsync("Fire OnTestHostProcessStartedAsync").ConfigureAwait(false); - bool startHandlersCompleted = true; - if (_testHostsInformation.LifetimeHandlers.Length > 0) - { - // We don't block the host during the 'OnTestHostProcessStartedAsync' by-design, if 'ITestHostProcessLifetimeHandler' extensions needs - // to block the execution of the test host should add an in-process extension like an 'ITestHostApplicationLifetime' and - // wait for a connection/signal to return. - // This is partial information because we don't yet know the exit code, as we are just starting. - // The full info contains the exit code and happens after WaitForExit. - TestHostProcessInformation partialTestHostProcessInformation = new(_testHostPID.Value); - foreach (ITestHostProcessLifetimeHandler lifetimeHandler in _testHostsInformation.LifetimeHandlers) - { - startHandlersCompleted = await TryRunControllerExtensionAsync( - token => lifetimeHandler.OnTestHostProcessStartedAsync(partialTestHostProcessInformation, token), - applicationCancellationToken).ConfigureAwait(false); - if (!startHandlersCompleted) + if (_testHostPID is null) { - _servicesStillRunning.Add(lifetimeHandler); - break; + throw ApplicationStateGuard.Unreachable(); } - } - } - await _logger.LogDebugAsync("Wait for test host process exit").ConfigureAwait(false); - try - { - if (!startHandlersCompleted) - { - throw new OperationCanceledException(applicationCancellationToken); - } - - await testHostProcess.WaitForExitAsync(applicationCancellationToken).ConfigureAwait(false); - } - catch (OperationCanceledException) when (applicationCancellationToken.IsCancellationRequested) - { - // The run was canceled while waiting for the test host to exit. Tear the host down - // and wait (without cancellation) for it to fully exit, so the exit-code - // reconciliation below still observes a real OS exit code. - await _logger.LogDebugAsync("Test host execution was canceled; terminating the test host").ConfigureAwait(false); - try - { - testHostProcess.Kill(); - } - catch (Exception ex) - { - // Termination is best-effort. The host may have exited between the cancellation - // and this Kill call (InvalidOperationException), or Kill may delegate to a custom - // ITestHostLauncher's Terminate() which can throw anything (e.g. NotSupportedException, - // Win32Exception). Either way the host is on its way out, so swallow and log rather - // than letting it mask the cancellation teardown flow. - await _logger.LogDebugAsync($"Ignoring failure while terminating the test host during cancellation: {ex}").ConfigureAwait(false); - } + bool startHandlersCompleted = true; + if (_testHostsInformation.LifetimeHandlers.Length > 0) + { + // We don't block the host during the 'OnTestHostProcessStartedAsync' by-design, if 'ITestHostProcessLifetimeHandler' extensions needs + // to block the execution of the test host should add an in-process extension like an 'ITestHostApplicationLifetime' and + // wait for a connection/signal to return. + // This is partial information because we don't yet know the exit code, as we are just starting. + // The full info contains the exit code and happens after WaitForExit. + TestHostProcessInformation partialTestHostProcessInformation = new(_testHostPID.Value); + foreach (ITestHostProcessLifetimeHandler lifetimeHandler in _testHostsInformation.LifetimeHandlers) + { + startHandlersCompleted = await TryRunControllerExtensionAsync( + token => lifetimeHandler.OnTestHostProcessStartedAsync(partialTestHostProcessInformation, token), + applicationCancellationToken).ConfigureAwait(false); + if (!startHandlersCompleted) + { + _servicesStillRunning.Add(lifetimeHandler); + break; + } + } + } - if (!await WaitForExitAfterTerminationAsync( - testHostProcess, - TestHostTerminationTimeout).ConfigureAwait(false)) - { - if (testHostProcess is TestHostHandleToProcessAdapter adapter) + await _logger.LogDebugAsync("Wait for test host process exit").ConfigureAwait(false); + if (!startHandlersCompleted) { - adapter.DeferDisposalUntilExit(); + throw new OperationCanceledException(applicationCancellationToken); } - await _logger.LogWarningAsync( - $"Test host did not exit within {TestHostTerminationTimeout} after termination was requested; continuing controller finalization.").ConfigureAwait(false); - } - } + await testHostProcess.WaitForExitAsync(applicationCancellationToken).ConfigureAwait(false); + }, + applicationCancellationToken, + testHostProcess, + testHostControllerCancellationServer.RequestCancellation, + _logger, + TestHostCooperativeShutdownTimeout, + TestHostTerminationTimeout).ConfigureAwait(false); + } + + if (_testHostPID is null && applicationCancellationToken.IsCancellationRequested) + { + int fallbackPid = testHostProcessId ?? 0; + var canceledProcessInformation = new TestHostProcessInformation( + fallbackPid, + (int)ExitCode.TestSessionAborted, + testHostCompletedReceived: false); + return ( + (int)ExitCode.TestSessionAborted, + canceledProcessInformation, + telemetryInformation.IsEnabled ? "[]" : null); } if (_testHostPID is null) @@ -408,7 +399,8 @@ private static void MarkOutputDeviceStillRunning(List servicesStillRunni private static async Task WaitForExitAfterTerminationAsync( IProcess testHostProcess, - TimeSpan timeout) + TimeSpan timeout, + ILogger logger) { try { @@ -420,6 +412,78 @@ await testHostProcess.WaitForExitAsync(CancellationToken.None) { return false; } + catch (Exception ex) + { + await logger.LogDebugAsync($"Ignoring failure while waiting for the test host to exit during cancellation teardown: {ex}").ConfigureAwait(false); + return false; + } + } + + internal static async Task HandleCanceledTestHostAsync( + IProcess testHostProcess, + Action requestCancellation, + ILogger logger, + TimeSpan cooperativeShutdownTimeout, + TimeSpan terminationTimeout) + { + requestCancellation(); + if (await WaitForExitAfterTerminationAsync(testHostProcess, cooperativeShutdownTimeout, logger).ConfigureAwait(false)) + { + return; + } + + await logger.LogDebugAsync($"Test host did not exit within {cooperativeShutdownTimeout} after cooperative cancellation; terminating it").ConfigureAwait(false); + try + { + testHostProcess.Kill(); + } + catch (Exception ex) + { + // Termination is best-effort. The host may have exited between the cancellation + // and this Kill call (InvalidOperationException), or Kill may delegate to a custom + // ITestHostLauncher's Terminate() which can throw anything (e.g. NotSupportedException, + // Win32Exception). Either way the host is on its way out, so swallow and log rather + // than letting it mask the cancellation teardown flow. + await logger.LogDebugAsync($"Ignoring failure while terminating the test host during cancellation: {ex}").ConfigureAwait(false); + } + + if (await WaitForExitAfterTerminationAsync(testHostProcess, terminationTimeout, logger).ConfigureAwait(false)) + { + return; + } + + if (testHostProcess is TestHostHandleToProcessAdapter adapter) + { + adapter.DeferDisposalUntilExit(); + } + + await logger.LogWarningAsync( + $"Test host did not exit within {terminationTimeout} after termination was requested; continuing controller finalization.").ConfigureAwait(false); + } + + internal static async Task RunWithCancellationTeardownAsync( + Func runAsync, + CancellationToken applicationCancellationToken, + IProcess testHostProcess, + Action requestCancellation, + ILogger logger, + TimeSpan cooperativeShutdownTimeout, + TimeSpan terminationTimeout) + { + try + { + await runAsync().ConfigureAwait(false); + } + catch (OperationCanceledException) when (applicationCancellationToken.IsCancellationRequested) + { + await logger.LogDebugAsync("Test host execution was canceled; requesting cooperative test host cancellation").ConfigureAwait(false); + await HandleCanceledTestHostAsync( + testHostProcess, + requestCancellation, + logger, + cooperativeShutdownTimeout, + terminationTimeout).ConfigureAwait(false); + } } private void ScheduleFinalizationTimeoutWarning() diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.cs index b1314ba408..0b727aa971 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.cs @@ -3,6 +3,7 @@ using Microsoft.Testing.Platform.Configurations; using Microsoft.Testing.Platform.Extensions.OutputDevice; +using Microsoft.Testing.Platform.Extensions.TestHostControllers; using Microsoft.Testing.Platform.Helpers; using Microsoft.Testing.Platform.IPC; using Microsoft.Testing.Platform.Logging; @@ -20,6 +21,7 @@ namespace Microsoft.Testing.Platform.Hosts; internal sealed partial class TestHostControllersTestHost : CommonHost, IHost, IDisposable, IOutputDeviceDataProducer { private static readonly TimeSpan TestHostTerminationTimeout = TimeSpan.FromSeconds(30); + private static readonly TimeSpan TestHostCooperativeShutdownMargin = TimeSpan.FromSeconds(15); private readonly TimeSpan _controllerExtensionFinalizationTimeout; private readonly TestHostControllerConfiguration _testHostsInformation; @@ -55,6 +57,8 @@ public TestHostControllersTestHost(TestHostControllerConfiguration testHostsInfo _testHostsInformation = testHostsInformation; _passiveNode = passiveNode; _environment = environment; + TestHostCooperativeShutdownTimeout = + ShutdownTimeouts.GetCanceledConsumerCompletion(environment) + TestHostCooperativeShutdownMargin; _controllerExtensionFinalizationTimeout = ShutdownTimeouts.GetControllerFinalization(environment); _clock = clock; _loggerFactory = loggerFactory; @@ -69,6 +73,18 @@ public TestHostControllersTestHost(TestHostControllerConfiguration testHostsInfo public string Description => string.Empty; + internal TimeSpan TestHostCooperativeShutdownTimeout { get; private set; } + + internal static TimeSpan GetTestHostCooperativeShutdownTimeout(IReadOnlyEnvironmentVariables environmentVariables) + { + environmentVariables.TryGetVariable( + EnvironmentVariableConstants.TESTINGPLATFORM_MESSAGEBUS_CANCELED_SHUTDOWN_TIMEOUT_SECONDS, + out OwnedEnvironmentVariable? configuredTimeout); + + return ShutdownTimeouts.GetCanceledConsumerCompletion(configuredTimeout?.Value) + + TestHostCooperativeShutdownMargin; + } + protected override bool RunTestApplicationLifeCycleCallbacks => false; public Task IsEnabledAsync() => Task.FromResult(false); @@ -88,6 +104,8 @@ protected override async Task InternalRunAsync(CancellationToken cancellati var outputDevice = (ProxyOutputDevice)ServiceProvider.GetOutputDevice(); IConfiguration configuration = ServiceProvider.GetConfiguration(); NamedPipeServer? testHostControllerIpc = null; + TestHostControllerCancellationServer? testHostControllerCancellationServer = null; + using CancellationTokenSource testHostControllerIpcLifetime = new(); try { int currentPid = environment.ProcessId; @@ -99,7 +117,18 @@ protected override async Task InternalRunAsync(CancellationToken cancellati string processCorrelationId = Guid.NewGuid().ToString("N"); await _logger.LogDebugAsync($"{EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CORRELATIONID}_{currentPid} '{processCorrelationId}'").ConfigureAwait(false); - testHostControllerIpc = await CreateTestHostControllerIpcAsync(executableInfo, cancellationToken).ConfigureAwait(false); + IReadOnlyList? authorizedSecurityIdentities = await ServiceProvider.ResolveTestHostControllerAuthorizedSecurityIdentitiesAsync( + _testHostsInformation.TestHostLauncher, + executableInfo.FilePath, + _logger, + cancellationToken).ConfigureAwait(false); + testHostControllerIpc = CreateTestHostControllerIpc(authorizedSecurityIdentities, testHostControllerIpcLifetime.Token); + testHostControllerCancellationServer = new( + authorizedSecurityIdentities, + environment, + _loggerFactory, + ServiceProvider.GetTask()); + testHostControllerCancellationServer.Start(); (ProcessStartInfo ProcessStartInfo, IReadOnlyList PartialCommandLine)? processConfiguration = await PrepareProcessConfigurationAsync( @@ -108,6 +137,7 @@ await PrepareProcessConfigurationAsync( processIdString, processCorrelationId, testHostControllerIpc, + testHostControllerCancellationServer, environment, outputDevice, cancellationToken).ConfigureAwait(false); @@ -124,6 +154,7 @@ await RunTestHostProcessAsync( process, configuration, testHostControllerIpc, + testHostControllerCancellationServer, outputDevice, telemetryInformation, consoleRunStarted, @@ -133,9 +164,24 @@ await RunTestHostProcessAsync( { try { - if (testHostControllerIpc is not null) + try + { + if (testHostControllerCancellationServer is not null) + { + await DisposeHelper.DisposeAsync(testHostControllerCancellationServer).ConfigureAwait(false); + } + } + finally { - await DisposeHelper.DisposeAsync(testHostControllerIpc).ConfigureAwait(false); + if (testHostControllerIpc is not null) + { +#if NET + await testHostControllerIpcLifetime.CancelAsync().ConfigureAwait(false); +#else + testHostControllerIpcLifetime.Cancel(); +#endif + await DisposeHelper.DisposeAsync(testHostControllerIpc).ConfigureAwait(false); + } } } finally diff --git a/src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeServer.cs b/src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeServer.cs index 7710728333..b4cc35e132 100644 --- a/src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeServer.cs +++ b/src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeServer.cs @@ -36,6 +36,11 @@ internal sealed class NamedPipeServer : NamedPipeConnectionBase, IServer private readonly ILogger _logger; private readonly ITask _task; private readonly CancellationToken _cancellationToken; +#if NET9_0_OR_GREATER + private readonly Lock _lifecycleSync = new(); +#else + private readonly object _lifecycleSync = new(); +#endif private Task? _loopTask; private bool _disposed; @@ -180,36 +185,81 @@ private static NamedPipeServerStream CreateServerStream(string name, int maxNumb public bool WasConnected { get; private set; } + internal async Task WaitForDisconnectAsync(TimeSpan timeout) + { + bool wasConnected; + Task? loopTask; + lock (_lifecycleSync) + { + wasConnected = WasConnected; + loopTask = _loopTask; + } + + if (!wasConnected) + { + return true; + } + + if (loopTask is null) + { + return false; + } + + Task completedTask = await Task.WhenAny(loopTask, Task.Delay(timeout)).ConfigureAwait(false); + if (completedTask != loopTask) + { + return false; + } + + await loopTask.ConfigureAwait(false); + return true; + } + public async Task WaitConnectionAsync(CancellationToken cancellationToken) { - // NOTE: _cancellationToken field is usually the "test session" cancellation token. - // And cancellationToken parameter may have hang mitigating timeout. - // The parameter should only be used for the call of WaitForConnectionAsync and Task.Run call. - // NOTE: The cancellation token passed to Task.Run will only have effect before the task is started by runtime. - // Once it starts, it won't be considered. - // Then, for the internal loop, we should use _cancellationToken, because we don't know for how long the loop will run. - // So what we pass to InternalLoopAsync shouldn't have any timeout (it's usually linked to Ctrl+C). + // NOTE: _cancellationToken field is usually the "test session" cancellation token, while the parameter + // may include a connection timeout. Once the connection is accepted, always schedule the loop: using the + // parameter for Task.Run creates a race where cancellation between acceptance and scheduling leaves a + // canceled loop task, and disposal then mistakes that for a loop failure. InternalLoopAsync observes the + // server lifetime token for its whole lifetime. await _logger.LogDebugAsync($"Waiting for connection for the pipe name {PipeName.Name}").ConfigureAwait(false); await _namedPipeServerStream.WaitForConnectionAsync(cancellationToken).ConfigureAwait(false); - WasConnected = true; - await _logger.LogDebugAsync($"Client connected to {PipeName.Name}").ConfigureAwait(false); - _loopTask = _task.Run( - async () => + lock (_lifecycleSync) { - try - { - await InternalLoopAsync(_cancellationToken).ConfigureAwait(false); - } - catch (OperationCanceledException ex) when (ex.CancellationToken == _cancellationToken) + if (_disposed) { - // We are being canceled, so we don't need to wait anymore - } - catch (Exception ex) - { - await _logger.LogErrorAsync($"Exception on pipe: {PipeName.Name}", ex).ConfigureAwait(false); - _environment.FailFast($"[NamedPipeServer] Unhandled exception:{_environment.NewLine}{ex}", ex); + return; } - }, cancellationToken); + + _loopTask = _task.Run( + async () => + { + try + { + await InternalLoopAsync(_cancellationToken).ConfigureAwait(false); + } + catch (OperationCanceledException ex) when (ex.CancellationToken == _cancellationToken) + { + // We are being canceled, so we don't need to wait anymore + } + catch (Exception ex) when ( + _cancellationToken.IsCancellationRequested + && ex is OperationCanceledException or IOException or ObjectDisposedException) + { + // .NET Framework does not reliably interrupt a pending pipe read when only the cancellation + // token is canceled. Disposal closes the stream to release that read; the resulting transport + // exception is expected shutdown rather than a server failure. + } + catch (Exception ex) + { + await _logger.LogErrorAsync($"Exception on pipe: {PipeName.Name}", ex).ConfigureAwait(false); + _environment.FailFast($"[NamedPipeServer] Unhandled exception:{_environment.NewLine}{ex}", ex); + } + }, CancellationToken.None); + WasConnected = true; + } + + await _logger.LogDebugAsync($"Client connected to {PipeName.Name}").ConfigureAwait(false); } /// @@ -403,21 +453,31 @@ internal static void EnsurePathLengthWithinLimit(string path) public void Dispose() { - if (_disposed) + Task? loopTask; + bool wasConnected; + lock (_lifecycleSync) { - return; + if (_disposed) + { + return; + } + + _disposed = true; + wasConnected = WasConnected; + loopTask = _loopTask; } - if (WasConnected) + if (wasConnected) { - // If the loop task is null at this point we have race condition, means that the task didn't start yet and we already dispose. - // This is unexpected and we throw an exception. - ApplicationStateGuard.Ensure(_loopTask is not null); + if (_cancellationToken.IsCancellationRequested) + { + _namedPipeServerStream.Dispose(); + } // To close gracefully we need to ensure that the client closed the stream in the InternalLoopAsync method (there is comment `// The client has disconnected`). - if (!_loopTask.Wait(TimeoutHelper.DefaultHangTimeSpanTimeout)) + if (loopTask is not null && !loopTask.Wait(TimeoutHelper.DefaultHangTimeSpanTimeout)) { - _logger.LogError($"NamedPipeServer.Dispose: '{nameof(InternalLoopAsync)}' for pipe '{PipeName.Name}' did not complete within {TimeoutHelper.DefaultHangTimeSpanTimeout}. WasConnected={WasConnected}, LoopTaskStatus={_loopTask.Status}."); + _logger.LogError($"NamedPipeServer.Dispose: '{nameof(InternalLoopAsync)}' for pipe '{PipeName.Name}' did not complete within {TimeoutHelper.DefaultHangTimeSpanTimeout}. WasConnected={WasConnected}, LoopTaskStatus={loopTask.Status}."); throw new InvalidOperationException(string.Format( CultureInfo.InvariantCulture, PlatformResources.InternalLoopAsyncDidNotExitSuccessfullyErrorMessage, @@ -427,43 +487,52 @@ public void Dispose() _namedPipeServerStream.Dispose(); DisposeBuffers(); - - _disposed = true; } #if NET public async ValueTask DisposeAsync() { - if (_disposed) + Task? loopTask; + bool wasConnected; + lock (_lifecycleSync) { - return; + if (_disposed) + { + return; + } + + _disposed = true; + wasConnected = WasConnected; + loopTask = _loopTask; } - if (WasConnected) + if (wasConnected) { - // If the loop task is null at this point we have race condition, means that the task didn't start yet and we already dispose. - // This is unexpected and we throw an exception. - ApplicationStateGuard.Ensure(_loopTask is not null); - - try + if (_cancellationToken.IsCancellationRequested) { - // To close gracefully we need to ensure that the client closed the stream in the InternalLoopAsync method (there is comment `// The client has disconnected`). - await _loopTask.WaitAsync(TimeoutHelper.DefaultHangTimeSpanTimeout, _cancellationToken).ConfigureAwait(false); + _namedPipeServerStream.Dispose(); } - catch (TimeoutException) + + if (loopTask is not null) { - await _logger.LogErrorAsync($"NamedPipeServer.DisposeAsync: '{nameof(InternalLoopAsync)}' for pipe '{PipeName.Name}' did not complete within {TimeoutHelper.DefaultHangTimeSpanTimeout}. WasConnected={WasConnected}, LoopTaskStatus={_loopTask.Status}.").ConfigureAwait(false); - throw new InvalidOperationException(string.Format( - CultureInfo.InvariantCulture, - PlatformResources.InternalLoopAsyncDidNotExitSuccessfullyErrorMessage, - nameof(InternalLoopAsync))); + try + { + // To close gracefully we need to ensure that the client closed the stream in the InternalLoopAsync method (there is comment `// The client has disconnected`). + await loopTask.WaitAsync(TimeoutHelper.DefaultHangTimeSpanTimeout).ConfigureAwait(false); + } + catch (TimeoutException) + { + await _logger.LogErrorAsync($"NamedPipeServer.DisposeAsync: '{nameof(InternalLoopAsync)}' for pipe '{PipeName.Name}' did not complete within {TimeoutHelper.DefaultHangTimeSpanTimeout}. WasConnected={WasConnected}, LoopTaskStatus={loopTask.Status}.").ConfigureAwait(false); + throw new InvalidOperationException(string.Format( + CultureInfo.InvariantCulture, + PlatformResources.InternalLoopAsyncDidNotExitSuccessfullyErrorMessage, + nameof(InternalLoopAsync))); + } } } _namedPipeServerStream.Dispose(); DisposeBuffers(); - - _disposed = true; } #endif } diff --git a/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt index 0011f65894..d7729f4d4b 100644 --- a/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt @@ -5,3 +5,44 @@ Microsoft.Testing.Platform.Builder.TestApplicationBuilder.TestApplicationBuilder Microsoft.Testing.Platform.Services.CurrentTestApplicationModuleInfo.CurrentTestApplicationModuleInfo(Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Helpers.IProcessHandler! process, string![]? commandLineArguments, string![]? expandedCommandLineArguments) -> void Microsoft.Testing.Platform.Services.ExecutableInfo.ExecutableInfo(string! filePath, System.Collections.Generic.IEnumerable! arguments, System.Collections.Generic.IEnumerable! expandedArguments, string! workspace) -> void Microsoft.Testing.Platform.Services.ExecutableInfo.ExpandedArguments.get -> System.Collections.Generic.IEnumerable! +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationListener +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationListener.Dispose() -> void +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationListener.ShouldReportCompletionAfterCancellation.get -> bool +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationListener.TestHostControllerCancellationListener(string! pipeName, Microsoft.Testing.Platform.Services.CTRLPlusCCancellationTokenSource! testApplicationCancellationTokenSource, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILogger! logger) -> void +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationListener.WasCancellationRequestedByController.get -> bool +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationServer +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationServer.Dispose() -> void +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationServer.PipeName.get -> string! +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationServer.RequestCancellation() -> void +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationServer.Start() -> void +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationServer.TestHostControllerCancellationServer(System.Collections.Generic.IReadOnlyList? authorizedSecurityIdentities, Microsoft.Testing.Platform.Helpers.IEnvironment! environment, Microsoft.Testing.Platform.Logging.ILoggerFactory! loggerFactory, Microsoft.Testing.Platform.Helpers.ITask! task) -> void +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationServer.WaitForRequestAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Hosts.TestHostControlledHost.SetCancellationListener(Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationListener? testHostControllerCancellationListener) -> void +<<<<<<< HEAD +<<<<<<< HEAD +<<<<<<< HEAD +======= +======= +static Microsoft.Testing.Platform.Hosts.TestHostControlledHost.RegisterCompletionCancellationTransition(System.Threading.CancellationToken applicationCancellationToken, System.Func! shouldReportCompletionAfterCancellation, System.Threading.CancellationTokenSource! completionCancellationTokenSource) -> System.Threading.CancellationTokenRegistration +>>>>>>> Preserve late cooperative completion reporting +======= +static Microsoft.Testing.Platform.Hosts.TestHostControlledHost.RegisterCompletionCancellationTransition(System.Threading.CancellationToken applicationCancellationToken, System.Func! shouldReportCompletionAfterCancellation, System.Threading.CancellationTokenSource! completionCancellationTokenSource, System.TimeSpan cooperativeCompletionTimeout) -> System.Threading.CancellationTokenRegistration +>>>>>>> Verify delayed completion cancellation +Microsoft.Testing.Platform.Services.CTRLPlusCCancellationTokenSource.WasCancellationRequestedByConsole.get -> bool +Microsoft.Testing.Platform.Services.CTRLPlusCCancellationTokenSource.RegisterForceExitAction(System.Action! forceExitAction) -> System.IDisposable! +const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME = "TESTINGPLATFORM_TESTHOSTCONTROLLER_CONTROLPIPENAME" -> string! +const Microsoft.Testing.Platform.IPC.ServerControlKinds.CloseChannel = 2 -> byte +static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.HandleCanceledTestHostAsync(Microsoft.Testing.Platform.Helpers.IProcess! testHostProcess, System.Action! requestCancellation, Microsoft.Testing.Platform.Logging.ILogger! logger, System.TimeSpan cooperativeShutdownTimeout, System.TimeSpan terminationTimeout) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.GetTestHostCooperativeShutdownTimeout(Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables! environmentVariables) -> System.TimeSpan +static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.RunWithCancellationTeardownAsync(System.Func! runAsync, System.Threading.CancellationToken applicationCancellationToken, Microsoft.Testing.Platform.Helpers.IProcess! testHostProcess, System.Action! requestCancellation, Microsoft.Testing.Platform.Logging.ILogger! logger, System.TimeSpan cooperativeShutdownTimeout, System.TimeSpan terminationTimeout) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.TestHostCooperativeShutdownTimeout.get -> System.TimeSpan +Microsoft.Testing.Platform.IPC.NamedPipeServer.WaitForDisconnectAsync(System.TimeSpan timeout) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Messages.ShutdownTimeouts.GetCanceledConsumerCompletion(string? value) -> System.TimeSpan +*REMOVED*Microsoft.Testing.Platform.ServerMode.ClientCapabilities.ClientCapabilities(bool DebuggerProvider, bool IsStateful) -> void +*REMOVED*Microsoft.Testing.Platform.ServerMode.ClientCapabilities.Deconstruct(out bool DebuggerProvider, out bool IsStateful) -> void +*REMOVED*Microsoft.Testing.Platform.ServerMode.ClientCapabilities.IsStateful.get -> bool +*REMOVED*Microsoft.Testing.Platform.ServerMode.ClientCapabilities.IsStateful.init -> void +*REMOVED*Microsoft.Testing.Platform.Services.ClientCapabilitiesService.ClientCapabilitiesService(bool IsStateful) -> void +*REMOVED*Microsoft.Testing.Platform.Services.ClientCapabilitiesService.Deconstruct(out bool IsStateful) -> void +*REMOVED*Microsoft.Testing.Platform.Services.ClientCapabilitiesService.IsStateful.init -> void +>>>>>>> Address phased cancellation review feedback diff --git a/src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Unshipped.txt index 7dc5c58110..ee779ef47f 100644 --- a/src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/InternalAPI/net/InternalAPI.Unshipped.txt @@ -1 +1,3 @@ #nullable enable +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationListener.DisposeAsync() -> System.Threading.Tasks.ValueTask +Microsoft.Testing.Platform.Hosts.TestHostControllerCancellationServer.DisposeAsync() -> System.Threading.Tasks.ValueTask diff --git a/src/Platform/Microsoft.Testing.Platform/Messages/ShutdownTimeouts.cs b/src/Platform/Microsoft.Testing.Platform/Messages/ShutdownTimeouts.cs index 5415834a56..677caa9c28 100644 --- a/src/Platform/Microsoft.Testing.Platform/Messages/ShutdownTimeouts.cs +++ b/src/Platform/Microsoft.Testing.Platform/Messages/ShutdownTimeouts.cs @@ -44,9 +44,15 @@ internal static class ShutdownTimeouts public static TimeSpan GetCanceledConsumerCompletion(IEnvironment environment) { string? value = environment.GetEnvironmentVariable(EnvironmentVariableConstants.TESTINGPLATFORM_MESSAGEBUS_CANCELED_SHUTDOWN_TIMEOUT_SECONDS); - return GetConfiguredTimeout(value, DefaultCanceledConsumerCompletion); + return GetCanceledConsumerCompletion(value); } + /// + /// Gets the budget for completing the consumer handshake from a configured environment variable value. + /// + public static TimeSpan GetCanceledConsumerCompletion(string? value) + => GetConfiguredTimeout(value, DefaultCanceledConsumerCompletion); + /// /// Gets the total budget for test-host controller callbacks, output reporting, and service disposal after /// the child exits from an aborted run. diff --git a/src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/IPC/Constants.cs b/src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/IPC/Constants.cs index 80a9f494e2..54dff700b3 100644 --- a/src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/IPC/Constants.cs +++ b/src/Platform/Microsoft.Testing.Platform/ServerMode/DotnetTest/IPC/Constants.cs @@ -118,6 +118,10 @@ internal static class ServerControlKinds // Values must stay stable (they flow over IPC to dotnet test). Reserve additional values for future // signals (drain, pause, ...). internal const byte CancelSession = 1; + + // Closes a parked control request without canceling the test session. The test-host controller uses this + // when its child has already completed normally and the auxiliary control channel can shut down. + internal const byte CloseChannel = 2; } [Embedded] diff --git a/src/Platform/Microsoft.Testing.Platform/Services/CTRLPlusCCancellationTokenSource.cs b/src/Platform/Microsoft.Testing.Platform/Services/CTRLPlusCCancellationTokenSource.cs index a2c2844895..9230a88b21 100644 --- a/src/Platform/Microsoft.Testing.Platform/Services/CTRLPlusCCancellationTokenSource.cs +++ b/src/Platform/Microsoft.Testing.Platform/Services/CTRLPlusCCancellationTokenSource.cs @@ -16,6 +16,7 @@ internal sealed class CTRLPlusCCancellationTokenSource : ITestApplicationCancell private readonly IEnvironment _environment; private readonly ILogger? _logger; private readonly IConsole? _subscribedConsole; + private Action? _forceExitAction; private int _state = StateIdle; private int _disposed; @@ -48,6 +49,15 @@ private static bool IsCancelKeyPressNotSupported() public CancellationToken CancellationToken => _cancellationTokenSource.Token; + public bool WasCancellationRequestedByConsole + => Volatile.Read(ref _state) != StateIdle; + + public IDisposable RegisterForceExitAction(Action forceExitAction) + { + Volatile.Write(ref _forceExitAction, forceExitAction); + return new ForceExitRegistration(this, forceExitAction); + } + private void OnConsoleCancelKeyPressed(object? sender, ConsoleCancelEventArgs e) { // Suppress the runtime's default Ctrl+C handling so we control the exit code on @@ -83,6 +93,15 @@ private void OnConsoleCancelKeyPressed(object? sender, ConsoleCancelEventArgs e) // is the confirmation. Any subsequent presses are suppressed by the StateForcing guard. if (Interlocked.CompareExchange(ref _state, StateForcing, StateCancelling) == StateCancelling) { + try + { + Volatile.Read(ref _forceExitAction)?.Invoke(); + } + catch (Exception ex) + { + _logger?.LogWarning($"Exception while force-terminating the active test host:\n{ex}"); + } + _environment.Exit((int)ExitCode.TestSessionAborted); } } @@ -107,4 +126,10 @@ public void Dispose() public void Cancel() => _cancellationTokenSource.Cancel(); + + private sealed class ForceExitRegistration(CTRLPlusCCancellationTokenSource owner, Action forceExitAction) : IDisposable + { + public void Dispose() + => Interlocked.CompareExchange(ref owner._forceExitAction, null, forceExitAction); + } } diff --git a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/AbortionTests.cs b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/AbortionTests.cs index 9895a3bf64..d59b013b90 100644 --- a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/AbortionTests.cs +++ b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/AbortionTests.cs @@ -12,6 +12,7 @@ public class AbortionTests : AcceptanceTestBase [DynamicData(nameof(TargetFrameworks.AllForDynamicData), typeof(TargetFrameworks))] [TestMethod] [OSCondition(OperatingSystems.Windows)] + [ResourceLock(WellKnownResources.Console)] public async Task AbortWithCTRLPlusC_TestHost_Succeeded(string tfm) { // We expect the same semantic for Linux, the test setup is not cross and we're using specific @@ -27,6 +28,86 @@ public async Task AbortWithCTRLPlusC_TestHost_Succeeded(string tfm) testHostResult.AssertOutputContainsSummary(failed: 0, passed: 0, skipped: 0, aborted: true); } + [DynamicData(nameof(TargetFrameworks.AllForDynamicData), typeof(TargetFrameworks))] + [TestMethod] + [OSCondition(ConditionMode.Exclude, OperatingSystems.Windows, IgnoreMessage = "The targeted SIGINT test uses the Unix kill API.")] + public async Task AbortControllerWithSIGINT_AllowsChildCleanupToComplete(string tfm) + { + var testHost = TestInfrastructure.TestHost.LocateFrom(AssetFixture.TargetAssetPath, AssetName, tfm); + string cleanupMarker = Path.Combine(testHost.DirectoryName, $"cleanup-{Guid.NewGuid():N}.txt"); + string trxFileName = $"abort-{Guid.NewGuid():N}.trx"; + var environmentVariables = new Dictionary + { + ["ABORT_CONTROLLER_ONLY"] = "1", + ["ABORT_CLEANUP_MARKER"] = cleanupMarker, + }; + + TestHostResult testHostResult = await testHost.ExecuteAsync( + $"--report-trx --report-trx-filename {trxFileName}", + environmentVariables, + cancellationToken: TestContext.CancellationToken); + + testHostResult.AssertExitCodeIs(ExitCode.TestSessionAborted); + Assert.IsTrue(File.Exists(cleanupMarker), $"The child cleanup marker was not written to '{cleanupMarker}'."); + Assert.AreEqual("cleanup completed", File.ReadAllText(cleanupMarker)); + Assert.HasCount(1, Directory.GetFiles(testHost.DirectoryName, trxFileName, SearchOption.AllDirectories)); + } + + [DynamicData(nameof(TargetFrameworks.AllForDynamicData), typeof(TargetFrameworks))] + [TestMethod] + [OSCondition(ConditionMode.Exclude, OperatingSystems.Windows, IgnoreMessage = "The targeted SIGINT test uses the Unix kill API.")] + public async Task AbortControllerWithSecondSIGINT_ForceTerminatesChild(string tfm) + { + var testHost = TestInfrastructure.TestHost.LocateFrom(AssetFixture.TargetAssetPath, AssetName, tfm); + string cleanupMarker = Path.Combine(testHost.DirectoryName, $"cleanup-{Guid.NewGuid():N}.txt"); + string cleanupStartedMarker = Path.Combine(testHost.DirectoryName, $"cleanup-started-{Guid.NewGuid():N}.txt"); + string childPidMarker = Path.Combine(testHost.DirectoryName, $"child-pid-{Guid.NewGuid():N}.txt"); + var environmentVariables = new Dictionary + { + ["ABORT_CONTROLLER_ONLY"] = "1", + ["ABORT_CONTROLLER_TWICE"] = "1", + ["ABORT_CLEANUP_MARKER"] = cleanupMarker, + ["ABORT_CLEANUP_STARTED_MARKER"] = cleanupStartedMarker, + ["ABORT_CHILD_PID_MARKER"] = childPidMarker, + }; + + TestHostResult testHostResult = await testHost.ExecuteAsync( + "--report-trx", + environmentVariables, + cancellationToken: TestContext.CancellationToken); + + testHostResult.AssertExitCodeIs(ExitCode.TestSessionAborted); + Assert.IsTrue(File.Exists(cleanupStartedMarker), "The second SIGINT must be sent only after child cleanup starts."); + int childPid = int.Parse(File.ReadAllText(childPidMarker), CultureInfo.InvariantCulture); + await AssertProcessExitedAsync(childPid, TestContext.CancellationToken); + Assert.IsFalse(File.Exists(cleanupMarker), "Force cancellation must terminate the child before its delayed cleanup completes."); + } + + [DynamicData(nameof(TargetFrameworks.AllForDynamicData), typeof(TargetFrameworks))] + [TestMethod] + [OSCondition(OperatingSystems.Windows)] + [ResourceLock(WellKnownResources.Console)] + public async Task AbortControllerWithCTRLPlusC_AllowsChildCleanupToComplete(string tfm) + { + var testHost = TestInfrastructure.TestHost.LocateFrom(AssetFixture.TargetAssetPath, AssetName, tfm); + string cleanupMarker = Path.Combine(testHost.DirectoryName, $"cleanup-{Guid.NewGuid():N}.txt"); + string trxFileName = $"abort-{Guid.NewGuid():N}.trx"; + var environmentVariables = new Dictionary + { + ["ABORT_CLEANUP_MARKER"] = cleanupMarker, + }; + + TestHostResult testHostResult = await testHost.ExecuteAsync( + $"--report-trx --report-trx-filename {trxFileName}", + environmentVariables, + cancellationToken: TestContext.CancellationToken); + + testHostResult.AssertExitCodeIs(ExitCode.TestSessionAborted); + Assert.IsTrue(File.Exists(cleanupMarker), $"The child cleanup marker was not written to '{cleanupMarker}'."); + Assert.AreEqual("cleanup completed", File.ReadAllText(cleanupMarker)); + Assert.HasCount(1, Directory.GetFiles(testHost.DirectoryName, trxFileName, SearchOption.AllDirectories)); + } + public sealed class TestAssetFixture() : TestAssetFixtureBase() { private const string Sources = """ @@ -41,14 +122,19 @@ public sealed class TestAssetFixture() : TestAssetFixtureBase() + #file Program.cs using System; using System.Collections.Generic; +using System.Diagnostics; +using System.IO; using System.Threading.Tasks; using System.Threading; +using Microsoft.Testing.Extensions; +using Microsoft.Testing.Extensions.TrxReport.Abstractions; using Microsoft.Testing.Platform.Builder; using Microsoft.Testing.Platform.Capabilities; using Microsoft.Testing.Platform.Capabilities.TestFramework; @@ -60,13 +146,59 @@ internal sealed class Program { public static async Task Main(string[] args) { + string? childPidMarker = Environment.GetEnvironmentVariable("ABORT_CHILD_PID_MARKER"); + if (childPidMarker is not null) + { + using Process currentProcess = Process.GetCurrentProcess(); + File.WriteAllText(childPidMarker, currentProcess.Id.ToString()); + } + ITestApplicationBuilder builder = await TestApplication.CreateBuilderAsync(args); builder.RegisterTestFramework(_ => new Capabilities(), (_, __) => new DummyTestFramework()); + builder.AddTrxReportProvider(); using ITestApplication app = await builder.BuildAsync(); _ = Task.Run(() => { DummyTestFramework.FireCancel.Wait(); + if (Environment.GetEnvironmentVariable("ABORT_CONTROLLER_ONLY") == "1") + { + int optionIndex = Array.IndexOf(args, "--internal-testhostcontroller-pid"); + if (optionIndex < 0 || optionIndex + 1 >= args.Length) + { + throw new Exception("The child process did not receive the test host controller PID."); + } + + int controllerPid = int.Parse(args[optionIndex + 1]); + if (kill(controllerPid, 2) != 0) + { + throw new Exception($"kill(SIGINT) failed with errno '{Marshal.GetLastWin32Error()}'."); + } + + if (Environment.GetEnvironmentVariable("ABORT_CONTROLLER_TWICE") == "1") + { + string cleanupStartedMarker = Environment.GetEnvironmentVariable("ABORT_CLEANUP_STARTED_MARKER") + ?? throw new Exception("Missing cleanup-started marker path."); + DateTime timeout = DateTime.UtcNow.AddSeconds(15); + while (!File.Exists(cleanupStartedMarker) && DateTime.UtcNow < timeout) + { + Thread.Sleep(10); + } + + if (!File.Exists(cleanupStartedMarker)) + { + throw new Exception("Child cleanup did not start before the second SIGINT timeout."); + } + + if (kill(controllerPid, 2) != 0) + { + throw new Exception($"Second kill(SIGINT) failed with errno '{Marshal.GetLastWin32Error()}'."); + } + } + + return; + } + if (!GenerateConsoleCtrlEvent(ConsoleCtrlEvent.CTRL_C, 0)) { throw new Exception($"GetLastWin32Error '{Marshal.GetLastWin32Error()}'"); @@ -77,6 +209,8 @@ public static async Task Main(string[] args) [DllImport("kernel32.dll", SetLastError = true)] static extern bool GenerateConsoleCtrlEvent(ConsoleCtrlEvent sigevent, int dwProcessGroupId); + [DllImport("libc", SetLastError = true)] + static extern int kill(int pid, int sig); public enum ConsoleCtrlEvent { CTRL_C = 0, @@ -118,7 +252,30 @@ public async Task ExecuteRequestAsync(ExecuteRequestContext context) FireCancel.Set(); var timeoutTask = Task.Delay(15_000, context.CancellationToken); - await timeoutTask; + try + { + await timeoutTask; + } + finally + { + string? cleanupMarker = Environment.GetEnvironmentVariable("ABORT_CLEANUP_MARKER"); + if (cleanupMarker is not null) + { + string? cleanupStartedMarker = Environment.GetEnvironmentVariable("ABORT_CLEANUP_STARTED_MARKER"); + if (cleanupStartedMarker is not null) + { + File.WriteAllText(cleanupStartedMarker, "cleanup started"); + await Task.Delay(TimeSpan.FromSeconds(2), CancellationToken.None); + } + else + { + await Task.Delay(500, CancellationToken.None); + } + + File.WriteAllText(cleanupMarker, "cleanup completed"); + } + } + if (!timeoutTask.IsCanceled) { throw new Exception("Cancellation was not propagated to the adapter within 15 seconds since CTRL+C."); @@ -134,7 +291,16 @@ public async Task ExecuteRequestAsync(ExecuteRequestContext context) internal class Capabilities : ITestFrameworkCapabilities { - IReadOnlyCollection ICapabilities.Capabilities => Array.Empty(); + IReadOnlyCollection ICapabilities.Capabilities => new ITestFrameworkCapability[] { new TrxReportCapability() }; +} + +internal class TrxReportCapability : ITrxReportCapability +{ + bool ITrxReportCapability.IsSupported => true; + + void ITrxReportCapability.Enable() + { + } } """; @@ -148,4 +314,20 @@ public override (string ID, string Name, string Code) GetAssetsToGenerate() } public TestContext TestContext { get; set; } + + private static async Task AssertProcessExitedAsync(int processId, CancellationToken cancellationToken) + { + try + { + using var child = System.Diagnostics.Process.GetProcessById(processId); + Task waitForExitTask = child.WaitForExitAsync(cancellationToken); + Task completedTask = await Task.WhenAny(waitForExitTask, Task.Delay(TimeSpan.FromSeconds(5), cancellationToken)); + Assert.AreSame(waitForExitTask, completedTask, $"Child process '{processId}' was still running after forced cancellation."); + await waitForExitTask; + } + catch (ArgumentException) + { + // The process already exited before it could be opened. + } + } } diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Hosts/TestHostControllerCancellationTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Hosts/TestHostControllerCancellationTests.cs new file mode 100644 index 0000000000..88812ba0dd --- /dev/null +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Hosts/TestHostControllerCancellationTests.cs @@ -0,0 +1,194 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using Microsoft.Testing.Platform.Helpers; +using Microsoft.Testing.Platform.Hosts; +using Microsoft.Testing.Platform.IPC; +using Microsoft.Testing.Platform.Logging; +using Microsoft.Testing.Platform.Services; + +using Moq; + +namespace Microsoft.Testing.Platform.UnitTests; + +[TestClass] +[UnsupportedOSPlatform("browser")] +public sealed class TestHostControllerCancellationTests +{ + // Production closes the stalled control channel after one second. Allow loaded CI agents extra time + // to schedule the blocking Dispose call and observe the resulting pipe disconnect. + private static readonly TimeSpan DisposalTestTimeout = TimeSpan.FromSeconds(30); + + public TestContext TestContext { get; set; } + + [TestMethod] + public async Task RequestCancellation_CancelsChildApplication() + { + Mock loggerFactory = CreateLoggerFactory(); + SystemEnvironment environment = new(); + using var server = new TestHostControllerCancellationServer( + authorizedSecurityIdentities: null, + environment, + loggerFactory.Object, + new SystemTask()); + server.Start(); + using CTRLPlusCCancellationTokenSource applicationCancellationTokenSource = new(); + using var listener = new TestHostControllerCancellationListener( + server.PipeName, + applicationCancellationTokenSource, + environment, + new NopLogger()); + + await server.WaitForRequestAsync().TimeoutAfterAsync(TimeoutHelper.DefaultHangTimeSpanTimeout); + server.RequestCancellation(); + + Assert.IsTrue( + applicationCancellationTokenSource.CancellationToken.WaitHandle.WaitOne(TimeoutHelper.DefaultHangTimeSpanTimeout), + "The controller cancellation request was not propagated to the child application."); + Assert.IsTrue(listener.WasCancellationRequestedByController); + } + + [TestMethod] + public void RequestCancellation_BeforeChildConnects_CancelsChildAfterConnection() + { + Mock loggerFactory = CreateLoggerFactory(); + SystemEnvironment environment = new(); + using var server = new TestHostControllerCancellationServer( + authorizedSecurityIdentities: null, + environment, + loggerFactory.Object, + new SystemTask()); + server.Start(); + server.RequestCancellation(); + using CTRLPlusCCancellationTokenSource applicationCancellationTokenSource = new(); + using var listener = new TestHostControllerCancellationListener( + server.PipeName, + applicationCancellationTokenSource, + environment, + new NopLogger()); + + Assert.IsTrue( + applicationCancellationTokenSource.CancellationToken.WaitHandle.WaitOne(TimeoutHelper.DefaultHangTimeSpanTimeout), + "The cancellation queued before connection was not propagated after the child connected."); + Assert.IsTrue(listener.WasCancellationRequestedByController); + } + + [TestMethod] + public async Task ServerDisposal_WhenClientConnectsWithoutSendingRequest_DoesNotHang() + { + Mock loggerFactory = CreateLoggerFactory(); + SystemEnvironment environment = new(); + var server = new TestHostControllerCancellationServer( + authorizedSecurityIdentities: null, + environment, + loggerFactory.Object, + new SystemTask()); + server.Start(); + using var client = new System.IO.Pipes.NamedPipeClientStream( + ".", + server.PipeName, + System.IO.Pipes.PipeDirection.InOut, + System.IO.Pipes.PipeOptions.Asynchronous); + await client.ConnectAsync(TestContext.CancellationToken); + + await Task.Run(server.Dispose, TestContext.CancellationToken).TimeoutAfterAsync(DisposalTestTimeout); + + byte[] responseBuffer = new byte[1]; + int bytesRead = await client.ReadAsync(responseBuffer, 0, responseBuffer.Length, TestContext.CancellationToken); + Assert.AreEqual(0, bytesRead); + } + + [TestMethod] + public async Task ServerDisposal_WhenNoClientConnects_DoesNotHang() + { + Mock loggerFactory = CreateLoggerFactory(); + SystemEnvironment environment = new(); + var server = new TestHostControllerCancellationServer( + authorizedSecurityIdentities: null, + environment, + loggerFactory.Object, + new SystemTask()); + server.Start(); + + await Task.Run(server.Dispose, TestContext.CancellationToken).TimeoutAfterAsync(DisposalTestTimeout); + + using var lateClient = new System.IO.Pipes.NamedPipeClientStream( + ".", + server.PipeName, + System.IO.Pipes.PipeDirection.InOut, + System.IO.Pipes.PipeOptions.Asynchronous); + using var timeout = CancellationTokenSource.CreateLinkedTokenSource(TestContext.CancellationToken); + timeout.CancelAfter(TimeSpan.FromMilliseconds(100)); + await Assert.ThrowsAsync(() => lateClient.ConnectAsync(timeout.Token)); + } + + [TestMethod] + public async Task ServerDisposal_WhenClientKeepsConnectionOpenAfterRequest_DoesNotHang() + { + Mock loggerFactory = CreateLoggerFactory(); + SystemEnvironment environment = new(); + var server = new TestHostControllerCancellationServer( + authorizedSecurityIdentities: null, + environment, + loggerFactory.Object, + new SystemTask()); + server.Start(); + using var client = new System.IO.Pipes.NamedPipeClientStream( + ".", + server.PipeName, + System.IO.Pipes.PipeDirection.InOut, + System.IO.Pipes.PipeOptions.Asynchronous); + await client.ConnectAsync(TestContext.CancellationToken); + byte[] requestFrame = [.. BitConverter.GetBytes(sizeof(int)), .. BitConverter.GetBytes(13)]; + await client.WriteAsync(requestFrame, 0, requestFrame.Length, TestContext.CancellationToken); + await client.FlushAsync(TestContext.CancellationToken); + await server.WaitForRequestAsync().TimeoutAfterAsync(TimeoutHelper.DefaultHangTimeSpanTimeout); + + await Task.Run(server.Dispose, TestContext.CancellationToken).TimeoutAfterAsync(DisposalTestTimeout); + + byte[] responseBuffer = new byte[64]; + int bytesRead; + do + { + bytesRead = await client.ReadAsync(responseBuffer, 0, responseBuffer.Length, TestContext.CancellationToken); + } + while (bytesRead > 0); + + Assert.AreEqual(0, bytesRead); + } + + [TestMethod] + public async Task NormalServerDisposal_DoesNotCancelChildApplication() + { + for (int i = 0; i < 20; i++) + { + Mock loggerFactory = CreateLoggerFactory(); + SystemEnvironment environment = new(); + var server = new TestHostControllerCancellationServer( + authorizedSecurityIdentities: null, + environment, + loggerFactory.Object, + new SystemTask()); + server.Start(); + using CTRLPlusCCancellationTokenSource applicationCancellationTokenSource = new(); + using var listener = new TestHostControllerCancellationListener( + server.PipeName, + applicationCancellationTokenSource, + environment, + new NopLogger()); + + await server.WaitForRequestAsync().TimeoutAfterAsync(TimeoutHelper.DefaultHangTimeSpanTimeout); + server.Dispose(); + + Assert.IsFalse(applicationCancellationTokenSource.CancellationToken.IsCancellationRequested); + Assert.IsFalse(listener.WasCancellationRequestedByController); + } + } + + private static Mock CreateLoggerFactory() + { + Mock loggerFactory = new(); + loggerFactory.Setup(x => x.CreateLogger(It.IsAny())).Returns(new NopLogger()); + return loggerFactory; + } +} diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Services/CTRLPlusCCancellationTokenSourceTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Services/CTRLPlusCCancellationTokenSourceTests.cs index 70e63a4cc5..85a32ffae6 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Services/CTRLPlusCCancellationTokenSourceTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Services/CTRLPlusCCancellationTokenSourceTests.cs @@ -20,6 +20,7 @@ public void FirstCtrlC_CancelsToken_AndDoesNotExitProcess() console.FireCancelKeyPress(); Assert.IsTrue(source.CancellationToken.IsCancellationRequested); + Assert.IsTrue(source.WasCancellationRequestedByConsole); Assert.IsNull(environment.ExitCode, "Environment.Exit must not be called on the first Ctrl+C press."); } @@ -37,6 +38,42 @@ public void SecondCtrlC_TriggersForceExit_WithTestSessionAbortedExitCode() Assert.AreEqual((int)ExitCode.TestSessionAborted, environment.ExitCode); } + [TestMethod] + public void SecondCtrlC_InvokesForceExitActionBeforeExitingController() + { + var console = new CancelableConsole(); + var environment = new RecordingEnvironment(); + using var source = new CTRLPlusCCancellationTokenSource(console, logger: null, environment); + bool forceExitActionInvoked = false; + using IDisposable registration = source.RegisterForceExitAction(() => + { + Assert.IsNull(environment.ExitCode, "The child force-exit action must run before the controller exits."); + forceExitActionInvoked = true; + }); + + console.FireCancelKeyPress(); + console.FireCancelKeyPress(); + + Assert.IsTrue(forceExitActionInvoked); + Assert.AreEqual((int)ExitCode.TestSessionAborted, environment.ExitCode); + } + + [TestMethod] + public void DisposedForceExitRegistration_DoesNotInvokeAction() + { + var console = new CancelableConsole(); + var environment = new RecordingEnvironment(); + using var source = new CTRLPlusCCancellationTokenSource(console, logger: null, environment); + bool forceExitActionInvoked = false; + source.RegisterForceExitAction(() => forceExitActionInvoked = true).Dispose(); + + console.FireCancelKeyPress(); + console.FireCancelKeyPress(); + + Assert.IsFalse(forceExitActionInvoked); + Assert.AreEqual((int)ExitCode.TestSessionAborted, environment.ExitCode); + } + [TestMethod] public void CtrlC_AfterExternalCancel_DoesNotForceExit_ButSecondCtrlCDoes() { @@ -124,6 +161,7 @@ public void Constructor_WithNullConsole_DoesNotCrash_AndCancelStillWorks() source.Cancel(); Assert.IsTrue(source.CancellationToken.IsCancellationRequested); + Assert.IsFalse(source.WasCancellationRequestedByConsole); Assert.IsNull(environment.ExitCode, "Without a console there is no Ctrl+C handler and Exit must never be called."); } diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs index 55e9f8992f..650687087c 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs @@ -9,6 +9,7 @@ using Microsoft.Testing.Platform.Helpers; using Microsoft.Testing.Platform.Hosts; using Microsoft.Testing.Platform.Logging; +using Microsoft.Testing.Platform.Messages; using Microsoft.Testing.Platform.OutputDevice; using Microsoft.Testing.Platform.Services; using Microsoft.Testing.Platform.TestHost; @@ -212,12 +213,143 @@ public async Task TestHostControllerProcessTermination_WaitIsBounded() process.Setup(x => x.WaitForExitAsync(It.IsAny())).Returns(neverExits.Task); var stopwatch = Stopwatch.StartNew(); - bool exited = await WaitForExitAfterTerminationAsync(process.Object, TimeSpan.FromMilliseconds(100)); + bool exited = await WaitForExitAfterTerminationAsync(process.Object, TimeSpan.FromMilliseconds(100), new NopLogger()); Assert.IsFalse(exited); Assert.IsLessThan(5, stopwatch.Elapsed.TotalSeconds); } + [TestMethod] + public async Task TestHostControllerProcessTermination_FaultedWaitAdvancesToTermination() + { + Mock process = new(); + process.Setup(x => x.WaitForExitAsync(It.IsAny())) + .ThrowsAsync(new IOException("remote wait failed")); + bool cancellationRequested = false; + + await TestHostControllersTestHost.HandleCanceledTestHostAsync( + process.Object, + () => cancellationRequested = true, + new NopLogger(), + TimeSpan.FromMilliseconds(50), + TimeSpan.FromMilliseconds(50)); + + Assert.IsTrue(cancellationRequested); + process.Verify(x => x.Kill(), Times.Once); + } + + [TestMethod] + public async Task TestHostControllerProcessTermination_UnresponsiveCustomHandleIsTerminatedAndDeferred() + { + TaskCompletionSource exited = new(TaskCreationOptions.RunContinuationsAsynchronously); + TaskCompletionSource disposed = new(TaskCreationOptions.RunContinuationsAsynchronously); + Mock handle = new(); + handle.SetupGet(x => x.HasExited).Returns(() => exited.Task.IsCompleted); + handle.Setup(x => x.WaitForExitAsync(It.IsAny())).Returns(exited.Task); + handle.Setup(x => x.Dispose()).Callback(() => disposed.TrySetResult(true)); + var adapter = new TestHostHandleToProcessAdapter(handle.Object); + bool cancellationRequested = false; + + await TestHostControllersTestHost.HandleCanceledTestHostAsync( + adapter, + () => cancellationRequested = true, + new NopLogger(), + TimeSpan.FromMilliseconds(50), + TimeSpan.FromMilliseconds(50)); + + Assert.IsTrue(cancellationRequested); + handle.Verify(x => x.Terminate(), Times.Once); + + adapter.Dispose(); + handle.Verify(x => x.Dispose(), Times.Never); + + exited.SetResult(true); + await disposed.Task.TimeoutAfterAsync(TimeoutHelper.DefaultHangTimeSpanTimeout); + handle.Verify(x => x.Dispose(), Times.Once); + } + + [TestMethod] + public async Task TestHostControllerProcessTermination_CancellationDuringStartupUsesTeardownPath() + { + using CancellationTokenSource cancellationTokenSource = new(); + cancellationTokenSource.Cancel(); + Mock process = new(); + TaskCompletionSource neverExits = new(TaskCreationOptions.RunContinuationsAsynchronously); + process.Setup(x => x.WaitForExitAsync(It.IsAny())).Returns(neverExits.Task); + bool cancellationRequested = false; + + await TestHostControllersTestHost.RunWithCancellationTeardownAsync( + () => Task.FromCanceled(cancellationTokenSource.Token), + cancellationTokenSource.Token, + process.Object, + () => cancellationRequested = true, + new NopLogger(), + TimeSpan.FromMilliseconds(50), + TimeSpan.FromMilliseconds(50)); + + Assert.IsTrue(cancellationRequested); + process.Verify(x => x.Kill(), Times.Once); + } + + [TestMethod] + public async Task TestHostControlledHost_LateCooperativeCancellationPreservesCompletionToken() + { + using CancellationTokenSource applicationCancellationTokenSource = new(); + using CancellationTokenSource completionCancellationTokenSource = new(); + TaskCompletionSource cancellationObserved = new(TaskCreationOptions.RunContinuationsAsynchronously); + using CancellationTokenRegistration completionRegistration = + completionCancellationTokenSource.Token.Register(() => cancellationObserved.TrySetResult(true)); + bool cooperativeCancellation = false; + using CancellationTokenRegistration registration = TestHostControlledHost.RegisterCompletionCancellationTransition( + applicationCancellationTokenSource.Token, + () => cooperativeCancellation, + completionCancellationTokenSource, + TimeSpan.FromMilliseconds(20)); + + cooperativeCancellation = true; + applicationCancellationTokenSource.Cancel(); + + Assert.IsFalse(completionCancellationTokenSource.IsCancellationRequested); + await cancellationObserved.Task.TimeoutAfterAsync(TimeoutHelper.DefaultHangTimeSpanTimeout); + Assert.IsTrue(completionCancellationTokenSource.IsCancellationRequested); + } + + [TestMethod] + public void TestHostControlledHost_LateNonCooperativeCancellationCancelsCompletionToken() + { + using CancellationTokenSource applicationCancellationTokenSource = new(); + using CancellationTokenSource completionCancellationTokenSource = new(); + using CancellationTokenRegistration registration = TestHostControlledHost.RegisterCompletionCancellationTransition( + applicationCancellationTokenSource.Token, + () => false, + completionCancellationTokenSource, + TimeoutHelper.DefaultHangTimeSpanTimeout); + + applicationCancellationTokenSource.Cancel(); + + Assert.IsTrue(completionCancellationTokenSource.IsCancellationRequested); + } + + [TestMethod] + public void TestHostControllerProcessTermination_CooperativeBudgetUsesConfiguredCanceledConsumerBudget() + { + Mock environment = new(); + environment + .Setup(x => x.GetEnvironmentVariable(EnvironmentVariableConstants.TESTINGPLATFORM_MESSAGEBUS_CANCELED_SHUTDOWN_TIMEOUT_SECONDS)) + .Returns("60"); + Mock loggerFactory = new(); + loggerFactory.Setup(x => x.CreateLogger(It.IsAny())).Returns(new NopLogger()); + using var host = new TestHostControllersTestHost( + new([], [], [], testHostLauncher: null, requireProcessRestart: false), + new(), + passiveNode: null, + environment.Object, + loggerFactory.Object, + Mock.Of()); + + Assert.AreEqual(TimeSpan.FromSeconds(75), host.TestHostCooperativeShutdownTimeout); + } + [TestMethod] public async Task TestHostControllerProcessTermination_CustomHandleDisposalWaitsForExit() { @@ -440,13 +572,13 @@ private static Task TryRunControllerExtensionAsync( ?? throw new InvalidOperationException("TestHostControllersTestHost.TryRunControllerExtensionAsync returned null."); } - private static Task WaitForExitAfterTerminationAsync(IProcess process, TimeSpan timeout) + private static Task WaitForExitAfterTerminationAsync(IProcess process, TimeSpan timeout, ILogger logger) { MethodInfo method = typeof(TestHostControllersTestHost).GetMethod( "WaitForExitAfterTerminationAsync", BindingFlags.NonPublic | BindingFlags.Static) ?? throw new InvalidOperationException("Could not find TestHostControllersTestHost.WaitForExitAfterTerminationAsync."); - return (Task?)method.Invoke(null, [process, timeout]) + return (Task?)method.Invoke(null, [process, timeout, logger]) ?? throw new InvalidOperationException("TestHostControllersTestHost.WaitForExitAfterTerminationAsync returned null."); } diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestHostBuilderTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestHostBuilderTests.cs index efa6ff5195..99bf6dc2c7 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestHostBuilderTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestHostBuilderTests.cs @@ -9,6 +9,7 @@ using Microsoft.Testing.Platform.Helpers; using Microsoft.Testing.Platform.Hosts; using Microsoft.Testing.Platform.Logging; +using Microsoft.Testing.Platform.Messages; using Microsoft.Testing.Platform.Services; using Microsoft.Testing.Platform.TestHostControllers; @@ -43,6 +44,37 @@ await TestHostControllersTestHost.ApplyControllerExtensionPreLaunchAsync( Assert.AreEqual(@"LOCAL\qualified", publishedEndpoint); } + [TestMethod] + public async Task ControllerPreLaunch_CooperativeShutdownTimeoutUsesFinalProviderValue() + { + Mock provider = new(); + provider.SetupGet(x => x.Uid).Returns("provider"); + provider.SetupGet(x => x.DisplayName).Returns("provider"); + provider.Setup(x => x.UpdateAsync(It.IsAny())) + .Callback(environmentVariables => environmentVariables.SetVariable(new( + EnvironmentVariableConstants.TESTINGPLATFORM_MESSAGEBUS_CANCELED_SHUTDOWN_TIMEOUT_SECONDS, + "60", + isSecret: false, + isLocked: false))) + .Returns(Task.CompletedTask); + Mock loggerFactory = new(); + loggerFactory.Setup(x => x.CreateLogger(It.IsAny())).Returns(new NopLogger()); + var environmentVariables = new EnvironmentVariables(loggerFactory.Object); + + await TestHostControllersTestHost.ApplyControllerExtensionPreLaunchAsync( + [], + [provider.Object], + environmentVariables, + CancellationToken.None); + + Assert.AreEqual( + TimeSpan.FromSeconds(75), + TestHostControllersTestHost.GetTestHostCooperativeShutdownTimeout(environmentVariables)); + Assert.AreEqual( + TimeSpan.FromSeconds(60), + ShutdownTimeouts.GetCanceledConsumerCompletion("60")); + } + [TestMethod] public async Task ConnectToTestHostProcessMonitorIfAvailableAsync_MissingPipeName_ReportsPidQualifiedEnvironmentVariable() { From 88f01bd155809a3a2bff337fb976e138522cbba9 Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Mon, 7 Sep 2026 18:13:16 +0200 Subject: [PATCH 19/33] Fix flaky in-process disposal timing test by @Evangelink in #11074 (backport to rel/4.4) (#11091) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../Client/MtpJsonRpcConnection.cs | 8 +++++++- .../Client/MtpServerInProcessHost.cs | 19 ++++++++++++------- .../TestHostProcessLifetimeHandlerTests.cs | 5 ++++- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Platform.ServerMode.Client.Sources/Client/MtpJsonRpcConnection.cs b/src/Platform/Microsoft.Testing.Platform.ServerMode.Client.Sources/Client/MtpJsonRpcConnection.cs index e4c23dd811..3969138d7e 100644 --- a/src/Platform/Microsoft.Testing.Platform.ServerMode.Client.Sources/Client/MtpJsonRpcConnection.cs +++ b/src/Platform/Microsoft.Testing.Platform.ServerMode.Client.Sources/Client/MtpJsonRpcConnection.cs @@ -50,6 +50,9 @@ public MtpJsonRpcConnection(IMessageHandler handler, IMtpClientLogger? logger = _logger = logger ?? NullMtpClientLogger.Instance; } + internal bool IsOnReadLoopFlow + => _onReadLoopFlow.Value; + /// /// Raised for every server-to-client notification. The handler receives the method name and the raw /// params payload (an IDictionary<string, object?> or ); the client API @@ -321,6 +324,9 @@ private static (int Id, bool IsString) GetRequestKey(int id, string? stringId) => (id, stringId is not null); public void Dispose() + => Dispose(waitForReadLoop: true); + + internal void Dispose(bool waitForReadLoop) { Task? readLoop; lock (_startLock) @@ -355,7 +361,7 @@ public void Dispose() // surface spurious ObjectDisposedExceptions (one thrown out of the write lock's finally block). // Guard against waiting on ourselves in case Dispose runs from a notification / server-request // handler executing on the read-loop flow (see _onReadLoopFlow). - if (readLoop is not null && !_onReadLoopFlow.Value) + if (waitForReadLoop && readLoop is not null && !_onReadLoopFlow.Value) { try { diff --git a/src/Platform/Microsoft.Testing.Platform.ServerMode.Client.Sources/Client/MtpServerInProcessHost.cs b/src/Platform/Microsoft.Testing.Platform.ServerMode.Client.Sources/Client/MtpServerInProcessHost.cs index e352782f1c..d2fd4c0f1a 100644 --- a/src/Platform/Microsoft.Testing.Platform.ServerMode.Client.Sources/Client/MtpServerInProcessHost.cs +++ b/src/Platform/Microsoft.Testing.Platform.ServerMode.Client.Sources/Client/MtpServerInProcessHost.cs @@ -33,6 +33,7 @@ internal sealed class MtpServerInProcessHost : IMtpServerHost private readonly object _shutdownLock = new(); private Task? _shutdown; + private int _skipConnectionReadLoopWait; /// /// The exit code captured during teardown, boxed so reads and writes are atomic on every target platform. @@ -221,7 +222,7 @@ public void Dispose() #pragma warning disable VSTHRD002 // Synchronously waiting on tasks - this IS the synchronous disposal path; ShutdownAsync is the awaitable one. try { - StartShutdownAsync().GetAwaiter().GetResult(); + StartShutdownAsync(Connection.IsOnReadLoopFlow).GetAwaiter().GetResult(); } catch (Exception ex) { @@ -245,14 +246,18 @@ public Task ShutdownAsync() /// caller receives the same task, and are idempotent /// with respect to each other and to themselves. /// - /// captures the ambient execution context, so the connection's - /// read-loop marker still flows into the teardown. Disposing from inside a - /// notification handler therefore continues to skip the connection's read-loop self-wait instead of - /// stalling for its shutdown timeout. + /// When disposal starts from a notification handler, the read-loop context is captured before the + /// teardown is scheduled and passed explicitly to the connection. This avoids relying on execution-context + /// flow across the thread-pool hop to decide whether the connection may wait for its own read loop. /// /// - private Task StartShutdownAsync() + private Task StartShutdownAsync(bool skipConnectionReadLoopWait = false) { + if (skipConnectionReadLoopWait) + { + Volatile.Write(ref _skipConnectionReadLoopWait, 1); + } + lock (_shutdownLock) { return _shutdown ??= Task.Run(ShutdownCoreAsync); @@ -272,7 +277,7 @@ private async Task ShutdownCoreAsync() // Close the transport first. A server-mode application exits its message loop when the client's // connection reaches EOF, so this is the graceful stop signal even for a callback that ignores the // cancellation token (the common case: TestApplication.RunAsync takes none). - Connection.Dispose(); + Connection.Dispose(waitForReadLoop: Volatile.Read(ref _skipConnectionReadLoopWait) == 0); SafeDispose(_client, _logger, "Disposing the accepted client socket"); MtpServerConnector.SafeStop(_listener, _logger); diff --git a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TestHostProcessLifetimeHandlerTests.cs b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TestHostProcessLifetimeHandlerTests.cs index dcb244fd73..04e7ceab11 100644 --- a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TestHostProcessLifetimeHandlerTests.cs +++ b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/TestHostProcessLifetimeHandlerTests.cs @@ -86,7 +86,10 @@ public async Task Timeout_BoundsBlockingDisposalWithoutRetryingIt(string current ["BLOCK_UNTIL_TIMEOUT"] = "1", ["BLOCK_DISPOSAL"] = "1", ["DISPOSAL_ATTEMPTS_FILE"] = disposalAttemptsFile, - ["TESTINGPLATFORM_TESTHOSTCONTROLLER_FINALIZATION_TIMEOUT_SECONDS"] = "0.5", + // Leave enough room for the canceled-run cleanup to enter Dispose before its bounded wait + // expires. The handler then blocks for 10s, so the test still verifies that cleanup abandons it + // within the five-second assertion budget and never retries disposal. + ["TESTINGPLATFORM_TESTHOSTCONTROLLER_FINALIZATION_TIMEOUT_SECONDS"] = "2", ["SKIP_FIXED_LIFECYCLE_FILES"] = "1", }, cancellationToken: TestContext.CancellationToken); From eedce602d2d4fab5458cf60a26910856ed47bdcd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Tue, 8 Sep 2026 16:42:34 +0200 Subject: [PATCH 20/33] Backport recent localization updates to rel/4.4 (#11115) Copilot-Session: 63c25c36-0fb9-4605-86fa-e2152aa7588b --- .../MSTest.Analyzers/xlf/Resources.es.xlf | 2 +- .../MSTest.Analyzers/xlf/Resources.fr.xlf | 14 +++++----- .../MSTest.Analyzers/xlf/Resources.pl.xlf | 2 +- .../MSTest.Analyzers/xlf/Resources.ru.xlf | 2 +- .../xlf/Resources.zh-Hans.xlf | 2 +- .../Resources/xlf/AzureDevOpsResources.cs.xlf | 4 +-- .../Resources/xlf/AzureDevOpsResources.de.xlf | 4 +-- .../Resources/xlf/AzureDevOpsResources.es.xlf | 4 +-- .../Resources/xlf/AzureDevOpsResources.fr.xlf | 4 +-- .../Resources/xlf/AzureDevOpsResources.it.xlf | 4 +-- .../Resources/xlf/AzureDevOpsResources.ja.xlf | 4 +-- .../Resources/xlf/AzureDevOpsResources.ko.xlf | 4 +-- .../Resources/xlf/AzureDevOpsResources.pl.xlf | 4 +-- .../xlf/AzureDevOpsResources.pt-BR.xlf | 4 +-- .../Resources/xlf/AzureDevOpsResources.ru.xlf | 4 +-- .../Resources/xlf/AzureDevOpsResources.tr.xlf | 4 +-- .../xlf/AzureDevOpsResources.zh-Hans.xlf | 4 +-- .../xlf/AzureDevOpsResources.zh-Hant.xlf | 4 +-- .../Resources/xlf/ExtensionResources.de.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.es.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.pl.xlf | 6 ++-- .../xlf/ExtensionResources.zh-Hans.xlf | 6 ++-- .../xlf/GitHubActionsResources.cs.xlf | 4 +-- .../xlf/GitHubActionsResources.es.xlf | 4 +-- .../xlf/GitHubActionsResources.fr.xlf | 2 +- .../xlf/GitHubActionsResources.pl.xlf | 12 ++++---- .../xlf/GitHubActionsResources.ru.xlf | 4 +-- .../xlf/GitHubActionsResources.zh-Hans.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.cs.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.de.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.es.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.pl.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.ru.xlf | 6 ++-- .../xlf/ExtensionResources.zh-Hans.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.cs.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.de.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.es.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.pl.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.ru.xlf | 6 ++-- .../xlf/ExtensionResources.zh-Hans.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.cs.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.de.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.es.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.pl.xlf | 6 ++-- .../Resources/xlf/ExtensionResources.ru.xlf | 6 ++-- .../xlf/ExtensionResources.zh-Hans.xlf | 6 ++-- .../Terminal/xlf/TerminalResources.cs.xlf | 12 ++++---- .../Terminal/xlf/TerminalResources.ru.xlf | 12 ++++---- .../Resources/xlf/PlatformResources.cs.xlf | 20 ++++++------- .../Resources/xlf/PlatformResources.de.xlf | 28 +++++++++---------- .../Resources/xlf/PlatformResources.es.xlf | 14 +++++----- .../Resources/xlf/PlatformResources.fr.xlf | 14 +++++----- .../Resources/xlf/PlatformResources.it.xlf | 2 +- .../Resources/xlf/PlatformResources.ja.xlf | 2 +- .../Resources/xlf/PlatformResources.ko.xlf | 2 +- .../Resources/xlf/PlatformResources.pl.xlf | 6 ++-- .../Resources/xlf/PlatformResources.pt-BR.xlf | 2 +- .../Resources/xlf/PlatformResources.ru.xlf | 20 ++++++------- .../Resources/xlf/PlatformResources.tr.xlf | 8 +++--- .../xlf/PlatformResources.zh-Hans.xlf | 4 +-- .../xlf/PlatformResources.zh-Hant.xlf | 2 +- .../Resources/xlf/FrameworkMessages.it.xlf | 10 +++---- 62 files changed, 198 insertions(+), 198 deletions(-) diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.es.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.es.xlf index 34e18901e3..d2912eaca5 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.es.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.es.xlf @@ -422,7 +422,7 @@ El tipo que declara estos métodos también debe respetar las reglas siguientes: MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. + MSTest resuelve los atributos de ciclo de vida heredados "[TestInitialize]", "[TestCleanup]", "[ClassInitialize]" y "[ClassCleanup]", y los atributos de prueba "[TestMethod]" y "[DataTestMethod]", por su identidad de tipo de marco de trabajo exacta. Se cambió el nombre del ensamblado de marco de trabajo de "Microsoft.VisualStudio.TestPlatform.TestFramework" a "MSTest.TestFramework", por lo que una clase base compilada con una principal de MSTest diferente expone estos atributos con una identidad de tipo diferente. Cuando una clase de prueba compilada con otra versión hereda una base de este tipo, la instalación y limpieza heredadas no se ejecutan y no se detectan los métodos de prueba heredados, sin errores de compilación ni de detección. Vuelva a compilar el ensamblado base y, para los atributos personalizados, el ensamblado que define el atributo con la misma versión de MSTest que el proyecto de prueba. {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.fr.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.fr.xlf index a53c5a99f2..eddccf82be 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.fr.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.fr.xlf @@ -169,7 +169,7 @@ Le type doit être une classe Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. + Depuis MSTest 3.8, « DynamicDataSourceType.AutoDetect » est la valeur par défaut et identifie automatiquement les propriétés, les méthodes et les champs, ce qui réduit la verbosité et le couplage au type de membre. {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} @@ -417,12 +417,12 @@ Le type doit être une classe The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. + Le TestContext transmis à l’initialisation de l’assembly ou de la classe est spécifique à ce contexte et n’est pas mis à jour pour chaque exécution de test. Sa réutilisation dans un membre « static » peut exposer un contexte obsolète. {Locked="TestContext"}{Locked="'static'"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. + MSTest résout les attributs de cycle de vie hérités « [TestInitialize] », « [TestCleanup] », « [ClassInitialize] » et « [ClassCleanup] », ainsi que les attributs de test « [TestMethod] » et « [DataTestMethod] », selon l’identité exacte de leur type d’infrastructure. L’assembly d’infrastructure a été renommé de « Microsoft.VisualStudio.TestPlatform.TestFramework » en « MSTest.TestFramework », si bien qu’une classe de base compilée avec une version majeure différente de MSTest expose ces attributs avec une identité de type différente. Lorsqu’une telle classe de base est héritée par une classe de test compilée avec une autre version, la configuration et le nettoyage hérités ne s’exécutent pas et les méthodes de test héritées ne sont pas détectées, sans erreur de compilation ni erreur de découverte. Recompilez l’assembly de base et, pour les attributs personnalisés, l’assembly qui définit l’attribut par rapport à la même version MSTest que le projet de test. {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} @@ -762,7 +762,7 @@ Le type déclarant ces méthodes doit également respecter les règles suivantes 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. + « Assert.Fail » rend explicite un échec intentionnel et permet au message d’échec d’expliquer pourquoi le test ne peut pas continuer. {Locked="'Assert.Fail'"} @@ -807,7 +807,7 @@ Le type déclarant ces méthodes doit également respecter les règles suivantes Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. + Les constructeurs autorisent l’initialisation via des champs « readonly » et fournissent un retour plus explicite du compilateur, en particulier avec les types référence nullables. Cette règle de style en acceptation est mutuellement exclusive avec MSTEST0019. {Locked="'readonly'"}{Locked="MSTEST0019"} @@ -817,7 +817,7 @@ Le type déclarant ces méthodes doit également respecter les règles suivantes '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. + « [TestCleanup] » prend en charge le nettoyage asynchrone sur les frameworks cibles où « IAsyncDisposable » n’est pas disponible. Cette règle de style en acceptation est mutuellement exclusive avec MSTEST0021. {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} @@ -1364,7 +1364,7 @@ Le type doit être une classe MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. + MSTest ignore « [DeploymentItem] » lorsqu’il est appliqué en dehors d’une classe ou d’une méthode de test. {Locked="MSTest"}{Locked="'[DeploymentItem]'"} diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf index a6a8e0bbf6..8a87606758 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf @@ -422,7 +422,7 @@ Typ deklarujący te metody powinien również przestrzegać następujących regu MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. + Narzędzie MSTest rozpoznaje dziedziczone atrybuty cyklu życia „[TestInitialize]”, „[TestCleanup]”, „[ClassInitialize]” i „[ClassCleanup]” oraz atrybuty testowe „[TestMethod]” i „[DataTestMethod]” według ich dokładnej tożsamości typu struktury. Nazwa zestawu struktury została zmieniona z „Microsoft.VisualStudio.TestPlatform.TestFramework” na „MSTest.TestFramework”, więc klasa bazowa skompilowana względem innego elementu głównego MSTest uwidacznia te atrybuty z inną tożsamością typu. Jeśli taka podstawa jest dziedziczona przez klasę testową skompilowaną z inną wersją, dziedziczona konfiguracja i oczyszczanie nie są uruchamiane, a dziedziczone metody testowe nie są odnajdowane, są pozbawione błędów kompilacji i błędów odnajdowania. Ponownie skompiluj zestaw podstawowy i w przypadku atrybutów niestandardowych zestaw definiujący atrybut względem tej samej wersji narzędzia MSTest co projekt testowy. {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ru.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ru.xlf index bc4a1bd48d..6a6c01ee5a 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ru.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ru.xlf @@ -422,7 +422,7 @@ The type declaring these methods should also respect the following rules: MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. + MSTest сопоставляет унаследованные атрибуты жизненного цикла "[TestInitialize]", "[TestCleanup]", "[ClassInitialize]" и "[ClassCleanup]", а также тестовые атрибуты "[TestMethod]" и "[DataTestMethod]" по их точному удостоверению типа в рамках платформы. Имя сборки платформы было изменено с "Microsoft.VisualStudio.TestPlatform.TestFramework" на "MSTest.TestFramework", поэтому базовый класс, скомпилированный для другой основной версии MSTest, предоставляет эти атрибуты с другим удостоверением типа. Если такой базовый класс наследуется классом теста, скомпилированным для другой версии, унаследованные действия настройки и очистки не выполняются, а унаследованные методы теста не обнаруживаются, при этом нет ни ошибки сборки, ни ошибки обнаружения. Перекомпилируйте базовую сборку, а для пользовательских атрибутов — сборку, в которой определен атрибут, с той же версией MSTest, что и тестовый проект. {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf index 04603ff2ce..836c87826a 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf @@ -422,7 +422,7 @@ The type declaring these methods should also respect the following rules: MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. + MSTest 会通过其完全相同的框架类型标识解析继承的生命周期特性 "[TestInitialize]"、"[TestCleanup]"、"[ClassInitialize]" 和 "[ClassCleanup]",以及测试特性 "[TestMethod]" 和 "[DataTestMethod]"。框架程序集已从 "Microsoft.VisualStudio.TestPlatform.TestFramework" 重命名为 "MSTest.TestFramework",因此针对不同 MSTest 主要版本编译的基类会以不同的类型标识公开这些特性。当测试类继承此类基类,而测试类是针对另一个版本编译时,继承的初始化和清理不会运行,继承的测试方法也不会被发现,而且不会出现生成错误或发现错误。请使用与测试项目相同的 MSTest 版本重新编译基础程序集,对于自定义特性,还要重新编译定义该特性的程序集。 {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlf index 07e6111a19..c658f7fdcd 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.cs.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Ověření Azure DevOps REST API selhalo nebo bylo přesměrováno na přihlášení (stav: {0}), což znamená, že SYSTEM_ACCESSTOKEN není platný nebo dostupný. U ověřovacích buildů žádostí o přijetí změn z forku nevystavujte tajné údaje nedůvěryhodnému kódu forku. Výsledky publikujte ze samostatného důvěryhodného kontextu pipeline nebo vypněte živé publikování Azure DevOps. {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API vrátil neočekávanou úspěšnou odpověď se stavovým kódem {0} a typem obsahu '{1}'. {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlf index 1e132792fe..c9ffc594bb 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.de.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Die Authentifizierung der Azure DevOps REST API ist fehlgeschlagen oder wurde zur Anmeldung umgeleitet (Status: {0}). Dies weist darauf hin, dass SYSTEM_ACCESSTOKEN ungültig oder nicht verfügbar ist. Bei Validierungsbuilds für Fork-Pull-Requests keine Geheimnisse an Code aus einem nicht vertrauenswürdigen Fork weitergeben; Ergebnisse aus einem separaten, vertrauenswürdigen Pipelinekontext veröffentlichen oder die Liveveröffentlichung von Azure DevOps deaktivieren. {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Die Azure DevOps REST API hat eine unerwartet erfolgreiche Antwort mit dem Statuscode {0} und dem Inhaltstyp „{1}“ zurückgegeben. {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlf index 064611fcf3..33754d551c 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.es.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + La autenticación de Azure DevOps REST API falló o se redirigió a la página de inicio de sesión (estado: {0}), lo que indica que SYSTEM_ACCESSTOKEN no es válido o no está disponible. Para las compilaciones de validación de solicitudes de extracción en bifurcaciones, no exponga secretos al código de bifurcación que no es de confianza; publique los resultados desde un contexto independiente de canalización de confianza o desactive la publicación en vivo de Azure DevOps. {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API devolvió una respuesta correcta inesperada con código de estado {0} y tipo de contenido '{1}'. {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlf index 3239d956db..e8b230ba78 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.fr.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Nous n’avons pas pu effectuer l’authentification de REST API Azure DevOps ou elle a été redirigée vers la connexion (état : {0}), ce qui indique que SYSTEM_ACCESSTOKEN n’est pas valide ou disponible. Pour les builds de validation d’une demande de tirage (pull request) issues d’une duplication (fork), n’exposez pas les secrets au code d’une duplication (fork) non approuvé, publiez les résultats depuis un contexte de pipeline distinct et approuvé, ou désactivez la publication en direct Azure DevOps. {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + REST API Azure DevOps a renvoyé une réponse de réussite inattendue avec le code d’état {0} et le type de contenu « {1} ». {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlf index fcfb77ce1d..c046ff3eaa 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.it.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Autenticazione Azure DevOps REST API non riuscita o reindirizzata alla pagina di accesso (stato: {0}), il che indica che SYSTEM_ACCESSTOKEN non è valido o non è disponibile. Per le build di convalida delle richieste pull provenienti da fork, non esporre i segreti al codice non attendibile del fork; pubblicare i risultati da un contesto di pipeline separato e attendibile, oppure disabilitare la pubblicazione live di Azure DevOps. {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API ha restituito una risposta riuscita imprevista con codice di stato {0} e tipo di contenuto '{1}'. {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlf index d3d4638458..98a01237ca 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ja.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API の認証に失敗したか、サインインにリダイレクトされました (状態: {0})。これは、SYSTEM_ACCESSTOKEN が無効であるか、使用できないことを示しています。フォークからの pull request の検証ビルドでは、信頼されていないフォーク コードにシークレットを公開しないでください。別の信頼されたパイプライン コンテキストから結果を公開するか、Azure DevOps のライブ公開を無効にしてください。 {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + DevOps REST API Azure予期しない正常な応答を返しました。状態コードは {0}、コンテンツの種類は '{1}' です。 {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlf index 32a7e6a81f..11d1300c67 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ko.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API 인증에 실패했거나 로그인 화면으로 리디렉션되었습니다(상태: {0}). 이는 SYSTEM_ACCESSTOKEN이 유효하지 않거나 사용할 수 없음을 의미합니다. 포크된 끌어오기 요청 검증 빌드에서는 신뢰할 수 없는 포크 코드에 비밀 정보를 노출하지 마세요. 결과는 별도의 신뢰할 수 있는 파이프라인 컨텍스트에서 게시하거나 Azure DevOps 실시간 게시를 사용하지 않도록 설정하세요. {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API에서 코드 {0} 및 콘텐츠 형식 '{1}'상태 예기치 않은 성공적인 응답을 반환했습니다. {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlf index 6ccfdd7fe3..21f637e48d 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pl.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Uwierzytelnianie Azure DevOps REST API nie powiodło się lub nastąpiło przekierowanie do logowania (status: {0}), co oznacza, że SYSTEM_ACCESSTOKEN jest nieprawidłowy lub niedostępny. W przypadku kompilacji weryfikacyjnych żądań ściągnięcia z forka nie ujawniaj sekretów niezaufanemu kodowi z forka; publikuj wyniki z oddzielnego zaufanego kontekstu potoku lub wyłącz publikowanie na żywo w Azure DevOps. {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Interfejs REST API Azure DevOps zwrócił nieoczekiwaną, poprawną odpowiedź z kodem stanu {0} i typem zawartości „{1}”. {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlf index 6401045e20..48d944e63c 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.pt-BR.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + A autenticação da REST API do Azure DevOps falhou ou foi redirecionada para a página de entrada (status: {0}), o que indica que o SYSTEM_ACCESSTOKEN é inválido ou não está disponível. Para compilações de validação de pull request de fork, não exponha segredos a código de bifurcação não confiável; publique os resultados de um contexto de pipeline confiável separado ou desabilite a publicação ao vivo do Azure DevOps. {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure REST API do DevOps retornou uma resposta bem-sucedida inesperada com status {0} de código e tipo de conteúdo '{1}'. {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlf index 82c71413b0..5c856134df 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.ru.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Проверка подлинности через REST API Azure DevOps не удалась или произошел переход на страницу входа (статус: {0}), что указывает на недействительность или недоступность SYSTEM_ACCESSTOKEN. При сборке вилок с проверкой запросов на вытягивание не раскрывайте секреты недоверенному коду вилки. Публикуйте результаты из отдельного доверенного контекста конвейера или отключите публикацию в реальном времени в Azure DevOps. {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API возвратил неожиданный успешный ответ с кодом состояния {0} и типом контента '{1}'. {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlf index 001d1dad2b..d077f3b463 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.tr.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API kimlik doğrulaması başarısız oldu veya oturum açma bilgilerine yönlendirildi (durum: {0}); bu, SYSTEM_ACCESSTOKEN'in geçersiz veya kullanılamaz olduğunu gösterir. Çatal çekme isteği doğrulama derlemeleri için, güvenilmeyen çatal koduna gizli bilgileri kullanıma sunmayın; sonuçları ayrı bir güvenilir işlem hattı bağlamından yayımlayın veya Azure DevOps canlı yayımlamayı devre dışı bırakın. {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API, {0} durum kodu ve '{1}' içerik türüyle beklenmeyen başarılı bir yanıt döndürdü. {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlf index 801eed12c8..414576b1f5 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hans.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API 身份验证失败或被重定向到登录页(状态: {0}),这表明 SYSTEM_ACCESSTOKEN 无效或不可用。对于派生拉取请求验证构建,不要将机密暴露给不受信任的派生代码;请从单独的可信管道上下文发布结果,或禁用 Azure DevOps 实时发布。 {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API 返回了意外的成功响应,状态代码为 {0},内容类型为 '{1}'。 {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlf index b41f357ac6..928423db00 100644 --- a/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.AzureDevOpsReport/Resources/xlf/AzureDevOpsResources.zh-Hant.xlf @@ -49,7 +49,7 @@ Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. - Azure DevOps REST API authentication failed or was redirected to sign-in (status: {0}), which indicates that SYSTEM_ACCESSTOKEN is invalid or unavailable. For fork pull request validation builds, do not expose secrets to untrusted fork code; publish results from a separate trusted pipeline context or disable Azure DevOps live publishing. + Azure DevOps REST API 驗證失敗或已重新導向至登入畫面 (狀態: {0}),這表示 SYSTEM_ACCESSTOKEN 無效或無法使用。對於派生提取要求驗證組建,請不要將密碼資訊公開給不受信任的派生程式碼;請改從另一個受信任的管線內容發佈結果,或停用 Azure DevOps 即時發佈。 {0} is the HTTP status code or browser redirect reason. {Locked="REST API"}{Locked="SYSTEM_ACCESSTOKEN"} @@ -169,7 +169,7 @@ Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. - Azure DevOps REST API returned an unexpected successful response with status code {0} and content type '{1}'. + Azure DevOps REST API 傳回未預期的成功回應,狀態碼為 {0},內容類型為 '{1}'。 {0} is the HTTP status code. {1} is the response content type. {Locked="REST API"} diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.de.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.de.xlf index 21261a091e..488465b8bc 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.de.xlf @@ -51,9 +51,9 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). -Example: 'MyReport_{tfm}.ctrf.json'. + Der Name des generierten CTRF-Berichts. Kann einen relativen oder absoluten Pfad enthalten. Relative Pfade werden anhand des Verzeichnisses mit den Testergebnissen aufgelöst, und fehlende Verzeichnisse werden erstellt. +Unterstützt die folgenden Platzhalter: {pname} (Name der Testanwendung), {pid} (Prozess-ID), {asm} (Name der Eintragsassembly), {tfm} (Zielframeworkmoniker), {time} (Zeitstempel). +Beispiel: „MyReport_{tfm}.ctrf.json“. Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.es.xlf index 760cd2f082..0e3dbf7662 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.es.xlf @@ -51,9 +51,9 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). -Example: 'MyReport_{tfm}.ctrf.json'. + Nombre del informe CTRF generado. Puede incluir una ruta de acceso relativa o absoluta; las rutas de acceso relativas se resuelven respecto al directorio de resultados de pruebas y se crean los directorios que falten. +Admite los siguientes marcadores de posición: {pname} (nombre de la aplicación de prueba), {pid} (identificador de proceso), {asm} (nombre del ensamblado de entrada), {tfm} (moniker de la plataforma de destino), {time} (marca de tiempo). +Ejemplo: "MyReport_{tfm}.ctrf.json". Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.pl.xlf index 9433511cca..fa6103cda0 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.pl.xlf @@ -51,9 +51,9 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). -Example: 'MyReport_{tfm}.ctrf.json'. + Nazwa wygenerowanego raportu CTRF. Może zawierać ścieżkę względną lub bezwzględną; ścieżki względne są rozpoznawane względem katalogu wyników testów, a brakujące katalogi są tworzone. +Obsługuje następujące symbole zastępcze: {pname} (nazwa aplikacji testowej), {pid} (identyfikator procesu), {asm} (nazwa zestawu wejściowego), {tfm} (moniker platformy docelowej), {time} (sygnatura czasowa). +Przykład: „MyReport_{tfm}.ctrf.json”. Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.zh-Hans.xlf index ced1f5ac2a..2e9c8127c8 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.zh-Hans.xlf @@ -51,9 +51,9 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). -Example: 'MyReport_{tfm}.ctrf.json'. + 生成的 CTRF 报表的名称。可以包含相对路径或绝对路径;相对路径针对测试结果目录进行解析,并创建缺少的目录。 +支持以下占位符: {pname} (测试应用程序名称)、{pid} (进程 ID)、{asm} (入口程序集名称)、{tfm} (目标框架名字对象)、{time} (时间戳)。 +示例: "MyReport_{tfm}.ctrf.json"。 Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.cs.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.cs.xlf index c10619bcd4..6559b4f4e0 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.cs.xlf @@ -179,7 +179,7 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. + Na zadané cestě načte a aktualizuje omezený snímek historie testů GitHub Actions. Workflow musí před spuštěním testu stáhnout předchozí snímek a po testu nahrát aktualizovaný soubor. Vyžaduje --report-gh. {Locked="'--report-gh'"} @@ -189,7 +189,7 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. + Počet dnů historie testů, které se mají uchovávat a používat jako kontext nestabilních testů (1–90). Výchozí hodnota je 30. Vyžaduje --report-gh-history. {Locked="'--report-gh-history'"} diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.es.xlf index 2de0b40547..333877546a 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.es.xlf @@ -179,7 +179,7 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. + Leer y actualizar una instantánea del historial de pruebas de Acciones de GitHub limitada en la ruta de acceso especificada. El flujo de trabajo es responsable de descargar la instantánea anterior antes de la ejecución de la prueba y de cargar el archivo actualizado posteriormente. Requiere "--report-gh". {Locked="'--report-gh'"} @@ -189,7 +189,7 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. + Número de días del historial de pruebas que se conservarán y usarán para el contexto de prueba no confiable (1-90). El valor predeterminado es 30. Requiere "--report-gh-history". {Locked="'--report-gh-history'"} diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.fr.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.fr.xlf index f6dcd4ffc6..6f1f1f8094 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.fr.xlf @@ -304,7 +304,7 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - The GitHub Actions report sub-options require '--{0}' to be specified. + Les sous-options du rapport GitHub Actions nécessitent que l’option « --{0} » soit spécifiée. Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.pl.xlf index 2f863b1d3a..35cac4ba2b 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.pl.xlf @@ -24,7 +24,7 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. + Wymagana jest co najmniej jedna sekcja podsumowania zadania funkcji GitHub Actions. Prawidłowe wartości to „test-results”, „slow-tests”, „coverage” lub „all”. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} @@ -179,7 +179,7 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. + Odczytaj i zaktualizuj powiązaną migawkę historii testów funkcji GitHub Actions w określonej ścieżce. Przepływ pracy odpowiada za pobranie poprzedniej migawki przed uruchomieniem testów i przekazanie zaktualizowanego pliku po jego zakończeniu. Wymaga elementu „--report-gh”. {Locked="'--report-gh'"} @@ -189,7 +189,7 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. + Liczba dni historii testów do zachowania i użycia do kontekstu dla niestabilnych testów (1–90). Wartość domyślna to 30. Wymaga elementu „--report-gh-history”. {Locked="'--report-gh-history'"} @@ -224,7 +224,7 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. + Nieprawidłowa sekcja podsumowania zadania funkcji GitHub Actions „{0}”. Prawidłowe wartości to „test-results”, „slow-tests”, „coverage” lub „all”. Wartości można powtarzać, rozdzielać spacjami lub przecinkami. {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} @@ -294,7 +294,7 @@ Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. + Wybierz zawartość zawartą w podsumowaniu zadania funkcji GitHub Actions. Określ jedną lub więcej wartości, powtórz je albo rozdziel spacjami lub przecinkami: „test-results”, „slow-tests”, „coverage” lub „all”. Wartość domyślna to „all”. Wymaga elementu „--report-gh”. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} @@ -304,7 +304,7 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - The GitHub Actions report sub-options require '--{0}' to be specified. + Opcje podrzędne raportu funkcji GitHub Actions wymagają określenia parametru „--{0}”. Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ru.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ru.xlf index 55daf3d585..2e9d101411 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ru.xlf @@ -179,7 +179,7 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. + Читает и обновляет ограниченный снимок журнала тестов GitHub Actions по указанному пути. Рабочий процесс отвечает за скачивание предыдущего снимка перед запуском теста и за отправку обновленного файла после его завершения. Требуется "--report-gh". {Locked="'--report-gh'"} @@ -189,7 +189,7 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. + Число дней журнала тестов, которые нужно сохранять и использовать в качестве контекста для нестабильных тестов (1–90). По умолчанию 30. Требует "--report-gh-history". {Locked="'--report-gh-history'"} diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.zh-Hans.xlf index 789e526b9a..32634ea37b 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.zh-Hans.xlf @@ -179,7 +179,7 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. + 读取并更新指定路径下的有界 GitHub Actions 测试历史记录快照。工作流负责在测试运行前下载先前的快照,并在之后上传更新后的文件。需要 "--report-gh"。 {Locked="'--report-gh'"} @@ -189,7 +189,7 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. + 要保留并用于不稳定测试上下文的测试历史天数(1-90)。默认为 30。需要 "--report-gh-history"。 {Locked="'--report-gh-history'"} @@ -304,7 +304,7 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - The GitHub Actions report sub-options require '--{0}' to be specified. + GitHub Actions 报告子选项需要指定 "--{0}"。 Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.cs.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.cs.xlf index 9ea7291b92..57f21d9267 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.cs.xlf @@ -56,9 +56,9 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.html'. + Název vygenerované sestavy HTML. Může obsahovat relativní nebo absolutní cestu. Relativní cesty se překládají na adresář výsledků testů a vytvoří se chybějící adresáře. +Podporuje následující zástupné symboly: {pname} (název testovací aplikace), {pid} (ID procesu), {asm} (název sestavení položky), {tfm} (moniker cílové architektury), {arch} (architektura procesu), {time} (časové razítko). +Příklad: MyReport_{tfm}.html. Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.de.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.de.xlf index 72bc04b764..038bb3a4ba 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.de.xlf @@ -56,9 +56,9 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.html'. + Der Name des generierten HTML-Berichts. Kann einen relativen oder absoluten Pfad enthalten. Relative Pfade werden anhand des Verzeichnisses mit den Testergebnissen aufgelöst, und fehlende Verzeichnisse werden erstellt. +Unterstützt die folgenden Platzhalter: {pname} (Name der Testanwendung), {pid} (Prozess-ID), {asm} (Name der Eintragsassembly), {tfm} (Zielframeworkmoniker), {arch} (Prozessorarchitektur), {time} (Zeitstempel). +Beispiel: „MyReport_{tfm}.html“. Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.es.xlf index 19c2b6935d..05a5d2cdf0 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.es.xlf @@ -56,9 +56,9 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.html'. + Nombre del informe HTML generado. Puede incluir una ruta de acceso relativa o absoluta; las rutas de acceso relativas se resuelven respecto al directorio de resultados de pruebas y se crean los directorios que falten. +Admite los siguientes marcadores de posición: {pname} (nombre de la aplicación de prueba), {pid} (id. de proceso), {asm} (nombre del ensamblado de entrada), {tfm} (moniker de la plataforma de destino), {arch} (arquitectura del proceso), {time} (marca de tiempo). +Ejemplo: "MyReport_{tfm}.html". Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.pl.xlf index 27eae39811..762e56dcd2 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.pl.xlf @@ -56,9 +56,9 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.html'. + Nazwa wygenerowanego raportu HTML. Może zawierać ścieżkę względną lub bezwzględną; ścieżki względne są rozpoznawane względem katalogu wyników testów, a brakujące katalogi są tworzone. +Obsługuje następujące symbole zastępcze: {pname} (nazwa aplikacji testowej), {pid} (identyfikator procesu), {asm} (nazwa zestawu danych wejściowych), {tfm} (moniker platformy docelowej), {arch} (architektura procesu), {time} (sygnatura czasowa). +Przykład: „MyReport_{tfm}.html”. Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ru.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ru.xlf index 4be278c623..5f2187f6a3 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ru.xlf @@ -56,9 +56,9 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.html'. + Имя сгенерированного отчета в формате HTML. Может включать относительный или абсолютный путь; относительные пути разрешаются относительно каталога результатов тестов, а отсутствующие каталоги создаются. +Поддерживает следующие заполнители: {pname} (имя тестового приложения), {pid} (идентификатор процесса), {asm} (имя входной сборки), {tfm} (моникер целевой платформы), {arch} (архитектура процесса), {time} (метка времени). +Пример: "MyReport_{tfm}.html". Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.zh-Hans.xlf index 22ead11bf2..4acb1af1b9 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.zh-Hans.xlf @@ -56,9 +56,9 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.html'. + 生成的 HTML 报表的名称。可以包含相对路径或绝对路径;相对路径针对测试结果目录进行解析,并创建缺少的目录。 +支持以下占位符: {pname} (测试应用程序名称)、{pid} (进程 ID)、{asm} (入口程序集名称)、{tfm} (目标框架名字对象)、{arch} (进程体系结果)、{time} (时间戳)。 +示例: "MyReport_{tfm}.html"。 Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.cs.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.cs.xlf index 46bc6c37cf..ef8a6b82c2 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.cs.xlf @@ -61,9 +61,9 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.xml'. + Název vygenerované sestavy JUnit XML. Může obsahovat relativní nebo absolutní cestu. Relativní cesty se překládají na adresář výsledků testů a vytvoří se chybějící adresáře. +Podporuje následující zástupné symboly: {pname} (název testovací aplikace), {pid} (ID procesu), {asm} (název sestavení položky), {tfm} (moniker cílové architektury), {arch} (architektura procesu), {time} (časové razítko). +Příklad: MyReport_{tfm}.xml. Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.de.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.de.xlf index 380b710c3b..0a640b42ab 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.de.xlf @@ -61,9 +61,9 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.xml'. + Der Name des generierten JUnit XML-Berichts. Kann einen relativen oder absoluten Pfad enthalten. Relative Pfade werden anhand des Verzeichnisses mit den Testergebnissen aufgelöst, und fehlende Verzeichnisse werden erstellt. +Unterstützt die folgenden Platzhalter: {pname} (Name der Testanwendung), {pid} (Prozess-ID), {asm} (Name der Eintragsassembly), {tfm} (Zielframeworkmoniker), {arch} (Prozessorarchitektur), {time} (Zeitstempel). +Beispiel: „MyReport_{tfm}.xml“. Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.es.xlf index b5b1fe45ab..013cb4d18e 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.es.xlf @@ -61,9 +61,9 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.xml'. + Nombre del informe XML de JUnit generado. Puede incluir una ruta de acceso relativa o absoluta; las rutas de acceso relativas se resuelven respecto al directorio de resultados de pruebas y se crean los directorios que falten. +Admite los siguientes marcadores de posición: {pname} (nombre de la aplicación de prueba), {pid} (id. de proceso), {asm} (nombre del ensamblado de entrada), {tfm} (moniker de la plataforma de destino), {arch} (arquitectura del proceso), {time} (marca de tiempo). +Ejemplo: "MyReport_{tfm}.xml". Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.pl.xlf index 72eebeae44..5fb2d9dd00 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.pl.xlf @@ -61,9 +61,9 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.xml'. + Nazwa wygenerowanego raportu XML JUnit. Może zawierać ścieżkę względną lub bezwzględną; ścieżki względne są rozpoznawane względem katalogu wyników testów, a brakujące katalogi są tworzone. +Obsługuje następujące symbole zastępcze: {pname} (nazwa aplikacji testowej), {pid} (identyfikator procesu), {asm} (nazwa zestawu wejściowego), {tfm} (moniker platformy docelowej), {arch} ()architektura procesu, {time} (sygnatura czasowa). +Przykład: „MyReport_{tfm}.xml”. Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ru.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ru.xlf index 57e4c2dd97..ba07a03507 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ru.xlf @@ -61,9 +61,9 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.xml'. + Имя сгенерированного XML-отчета JUnit. Может включать относительный или абсолютный путь; относительные пути разрешаются относительно каталога результатов тестов, а отсутствующие каталоги создаются. +Поддерживает следующие заполнители: {pname} (имя тестового приложения), {pid} (идентификатор процесса), {asm} (имя входной сборки), {tfm} (моникер целевой платформы), {arch} (архитектура процесса), {time} (метка времени). +Пример: "MyReport_{tfm}.xml". Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.zh-Hans.xlf index b7528855cd..6eb4402dac 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.zh-Hans.xlf @@ -61,9 +61,9 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.xml'. + 生成的 JUnit XML 报表的名称。可以包含相对路径或绝对路径;相对路径针对测试结果目录进行解析,并创建缺少的目录。 +支持以下占位符: {pname} (测试应用程序名称)、{pid} (进程 ID)、{asm} (入口程序集名称)、{tfm} (目标框架名字对象)、{arch} (进程体系结果)、{time} (时间戳)。 +示例: "MyReport_{tfm}.xml"。 Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.cs.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.cs.xlf index 027df335c9..27cd133802 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.cs.xlf @@ -126,9 +126,9 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.trx'. + Název vygenerované sestavy TRX. Může obsahovat relativní nebo absolutní cestu. Relativní cesty se překládají na adresář výsledků testů a vytvoří se chybějící adresáře. +Podporuje následující zástupné symboly: {pname} (název testovací aplikace), {pid} (ID procesu), {asm} (název sestavení položky), {tfm} (moniker cílové architektury), {arch} (architektura procesu), {time} (časové razítko). +Příklad: MyReport_{tfm}.trx. Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.de.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.de.xlf index 12634dde47..354c7f2160 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.de.xlf @@ -126,9 +126,9 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.trx'. + Der Name des generierten TRX-Berichts. Kann einen relativen oder absoluten Pfad enthalten. Relative Pfade werden anhand des Verzeichnisses mit den Testergebnissen aufgelöst, und fehlende Verzeichnisse werden erstellt. +Unterstützt die folgenden Platzhalter: {pname} (Name der Testanwendung), {pid} (Prozess-ID), {asm} (Name der Eintragsassembly), {tfm} (Zielframeworkmoniker), {arch} (Prozessorarchitektur), {time} (Zeitstempel). +Beispiel: „MyReport_{tfm}.trx“. Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.es.xlf index 50e2264a53..a544dc434c 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.es.xlf @@ -126,9 +126,9 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.trx'. + Nombre del informe TRX generado. Puede incluir una ruta de acceso relativa o absoluta; las rutas de acceso relativas se resuelven respecto al directorio de resultados de pruebas y se crean los directorios que falten. +Admite los siguientes marcadores de posición: {pname} (nombre de la aplicación de prueba), {pid} (id. de proceso), {asm} (nombre del ensamblado de entrada), {tfm} (moniker de la plataforma de destino), {arch} (arquitectura del proceso), {time} (marca de tiempo). +Ejemplo: "MyReport_{tfm}.trx". Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.pl.xlf index fb1b1db09d..93b3f35db4 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.pl.xlf @@ -126,9 +126,9 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.trx'. + Nazwa wygenerowanego raportu TRX. Może zawierać ścieżkę względną lub bezwzględną; ścieżki względne są rozpoznawane względem katalogu wyników testów, a brakujące katalogi są tworzone. +Obsługuje następujące symbole zastępcze: {pname} (nazwa aplikacji testowej), {pid} (identyfikator procesu), {asm} (nazwa zestawu wejściowego), {tfm} (moniker platformy docelowej), {arch} ()architektura procesu, {time} (sygnatura czasowa). +Przykład: „MyReport_{tfm}.trx”. Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ru.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ru.xlf index 058809676d..faa5992d47 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ru.xlf @@ -126,9 +126,9 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.trx'. + Имя созданного отчета TRX. Может включать относительный или абсолютный путь; относительные пути разрешаются относительно каталога результатов тестов, а отсутствующие каталоги создаются. +Поддерживает следующие заполнители: {pname} (имя тестового приложения), {pid} (идентификатор процесса), {asm} (имя входной сборки), {tfm} (моникер целевой платформы), {arch} (архитектура процесса), {time} (метка времени). +Пример: "MyReport_{tfm}.trx". Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.zh-Hans.xlf index 5ebe086e55..845fc97887 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.zh-Hans.xlf @@ -126,9 +126,9 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. -Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). -Example: 'MyReport_{tfm}.trx'. + 生成的 TRX 报表名称。可以包含相对路径或绝对路径;相对路径针对测试结果目录进行解析,并创建缺少的目录。 +支持以下占位符: {pname} (测试应用程序名称)、{pid} (进程 ID)、{asm} (入口程序集名称)、{tfm} (目标框架名字对象)、{arch} (进程体系结果)、{time} (时间戳)。 +示例: "MyReport_{tfm}.trx"。 Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf index bdf68785e2..38b552d864 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf @@ -461,13 +461,13 @@ When both --ansi and --no-ansi are provided, --ansi wins. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - Preset the per-test result blocks shown in the terminal. -Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. + Přednastavte bloky výsledků jednotlivých testů zobrazené v terminálu. +Platné hodnoty jsou Minimal, Normal a Detailed. Výchozí hodnota je Normal. K přesnému výběru výsledků použijte --show-test-results. {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. + --output očekává jeden parametr s hodnotou Minimal, Normal nebo Detailed. {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} @@ -546,7 +546,7 @@ Platné hodnoty jsou All, Failed, None. Výchozí hodnota je All (nebo Failed, k --show-test-results value 'all' or 'none' cannot be combined with any other value. - --show-test-results value 'all' or 'none' cannot be combined with any other value. + Hodnotu all nebo none možnosti --show-test-results nelze kombinovat s žádnou jinou hodnotou. {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} @@ -560,12 +560,12 @@ Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. + --show-test-results vyžaduje minimálně jednu z hodnot passed, failed, skipped, all nebo none. {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. + --show-test-results očekává jednu nebo více hodnot oddělených čárkami nebo mezerami z následujících možností: passed, failed, skipped, all nebo none. {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf index 35012913dc..514fe221c8 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf @@ -461,13 +461,13 @@ When both --ansi and --no-ansi are provided, --ansi wins. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - Preset the per-test result blocks shown in the terminal. -Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. + Предварительно задает блоки результатов каждого теста, отображаемые в терминале. +Допустимые значения:"Minimal", "Normal" или "Detailed". Значение по умолчанию: "Normal". Используйте "--show-test-results" для точного выбора результатов. {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. + --output ожидает один параметр со значением "Minimal", "Normal" или "Detailed". {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} @@ -546,7 +546,7 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an --show-test-results value 'all' or 'none' cannot be combined with any other value. - --show-test-results value 'all' or 'none' cannot be combined with any other value. + Значение "--show-test-results" "all" или "none" нельзя использовать вместе с любым другим значением. {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} @@ -560,12 +560,12 @@ Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. + --show-test-results требует указать как минимум одно из следующих значений: "passed", "failed", "skipped", "all" или "none". {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. + --show-test-results ожидает одно или несколько из следующих значений: "passed", "failed", "skipped", "all" или "none", разделенных запятыми или пробелами. {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf index 2b7d23acb9..3a3abf649d 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + Byl zjištěn rekurzivní odkaz na soubor odpovědí. @@ -284,7 +284,7 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. + Spuštěním --help zobrazíte možnosti zaregistrované touto testovací aplikací. Pokud tato možnost patří k rozšíření, ujistěte se, že se odkazuje na jeho balíček a že je rozšíření zaregistrované. {Locked="'--help'"} @@ -434,17 +434,17 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. + Háček rozšíření {0}.{1} ze sestavení {2}, který je deklarovaný v manifestu rozšíření {3}, je deklarovaný jako „async void“. Platforma volá háček synchronně, takže by se vrátila při prvním čekání: vše, co se zaregistruje po tomto bodu, by se zahodilo ve vlastním nastavení testovací aplikace a všechny chyby by se ztratily. Nastavte háček jako synchronní. {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. + Háček rozšíření {0}.{1} ze sestavení {2}, který je deklarovaný v manifestu rozšíření {3}, vrací {4}, ale musí vracet „void“. Platforma volá háček synchronně, takže se nikdy nezpozoruje návratová hodnota. Konkrétně vrácená úloha by se nikdy neočekávaná a jeho registrace a selhání by se ztratily. {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. + Typ {0} v sestavení '{1}, které je deklarováno v manifestu rozšíření {2}, nezpřístupňuje metodu „public static void“ s názvem {3}, která přijímá „ITestApplicationBuilder“ a „string[]“. {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} @@ -534,7 +534,7 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. + Manifest rozšíření {0} deklaruje načtení rozšíření, ale aktuální modul runtime nepodporuje dynamické načítání sestavení (například při publikování s nativním AOT). Nastavte vlastnost {1} každého rozšíření na „false“, odeberte manifest nebo odeberte {2} z příkazového řádku. {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} @@ -913,7 +913,7 @@ Volitelně přijímá hodnotu „text“ (výchozí výstup čitelný pro člov Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. + Povolte načítání rozšíření testovací platformy deklarovaných manifesty „*.testingplatformextensions.json“ nalezenými vedle testovací aplikace. Ve výchozím nastavení je to zakázané. {Locked="'*.testingplatformextensions.json'"} @@ -952,9 +952,9 @@ Volitelně přijímá hodnotu „text“ (výchozí výstup čitelný pro člov Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - Do not report a non-successful exit value for the specified exit codes. -For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. -For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. + Neohlašujte neúspěšnou ukončovací hodnotu zadaných ukončovacích kódů. +Například „--ignore-exit-code 8;9“ ignoruje ukončovací kódy 8 a 9 a v těchto případech vrátí hodnotu 0. +Další informace o ukončovacích kódech najdete na https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf index 0c6bb0fabc..e49c788dab 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + Es wurde ein rekursiver Verweis auf eine Antwortdatei erkannt. @@ -289,7 +289,7 @@ Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. + Verwenden Sie stattdessen „--crashdump“ und/oder „--hangdump“. MTP trennt Diagnosen für Abstürze und Hänger, daher gibt es keinen direkten Ersatz für den VSTest-Blame-Collector. {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} @@ -299,12 +299,12 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. + Verwenden Sie „--output {0}“, um eine vergleichbare Ausführlichkeit der Konsole zu erzielen. Die MTP-Konsolenausgabe ist anders konfiguriert, sodass dies kein exakter Ersatz ist. {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. + MTP verwendet reporterspezifische Optionen wie „--report-trx“, „--report-html“ und „--report-junit“. Die MTP-Option finden Sie in der Dokumentation der Reportererweiterung. {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} @@ -319,7 +319,7 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. + Verwenden Sie für MTP-Code Coverage „--coverage“. Dies ist kein transparenter Ersatz für den XPlat Code Coverage-Collector von Coverlet. {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} @@ -434,17 +434,17 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. + Der Erweiterungshook „{0}.{1}“ aus der Assembly „{2}“, die im Erweiterungsmanifest „{3}“ deklariert ist, ist als „async void“ deklariert. Die Plattform ruft den Hook synchron auf, sodass er beim ersten Await-Vorgang zurückgegeben wird: Alles, was sie nach diesem Punkt registriert, würde das Setup der Testanwendung als Race ausführen, und jeder Fehler würde verloren gehen. Machen Sie den Hook synchron. {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. + Der Erweiterungshook „{0}.{1}“ aus der Assembly „{2}“, die im Erweiterungsmanifest „{3}“ deklariert ist, gibt „{4}“ zurück, muss aber „void“ zurückgeben. Die Plattform ruft den Hook synchron auf, sodass nie ein Rückgabewert beobachtet wird. insbesondere auf eine zurückgegebene Aufgabe wird nie gewartet, und ihre Registrierungen und Fehler gehen verloren. {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. + Der Typ „{0}“ in der Assembly „{1}“, der im Erweiterungsmanifest „{2}“ deklariert ist, macht keine „public static void“-Methode namens „{3}“ verfügbar, die einen „ITestApplicationBuilder“ und einen „string[]“ verwendet. {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} @@ -534,7 +534,7 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. + Das Erweiterungsmanifest „{0}“ deklariert Erweiterungen zum Laden, aber die aktuelle Runtime unterstützt das dynamische Laden von Assemblys nicht (z. B. bei Veröffentlichung mit nativem AOT). Legen Sie die Eigenschaft „{1}“ jeder Erweiterung auf „false“ fest, entfernen Sie das Manifest, oder entfernen Sie „{2}“ aus der Befehlszeile. {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} @@ -913,7 +913,7 @@ Akzeptiert optional „text“ (die standardmäsige lesbare Ausgabe) oder „jso Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. + Aktivieren Sie das Laden von Testplattformerweiterungen, die von den Manifesten „*.testingplatformextensions.json“ deklariert wurden, die neben der Testanwendung gefunden wurden. Standardmäßig deaktiviert. {Locked="'*.testingplatformextensions.json'"} @@ -952,9 +952,9 @@ Akzeptiert optional „text“ (die standardmäsige lesbare Ausgabe) oder „jso Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - Do not report a non-successful exit value for the specified exit codes. -For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. -For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. + Keinen nicht erfolgreichen Beendigungswert für die angegebenen Exitcodes melden. +Beispiel: „--ignore-exit-code 8;9“ ignoriert die Exitcodes 8 und 9 und gibt in diesen Fällen 0 zurück. +Weitere Informationen zu Exitcodes finden Sie unter https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} @@ -1294,7 +1294,7 @@ Weitere Informationen zu Microsoft Testing Platform-Telemetriedaten: https://aka The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. + Der Testhost-Launcher „{0}“ (UID: {1}) hat angefordert, die Sicherheitsidentität „{2}“ für die Testhostcontrollerverbindung zu autorisieren. Es kann jedoch nur die Identität einer einzelnen Sandbox-App autorisiert werden (unter Windows eine Sicherheits-ID im Format „S-1-15-2-...“). Benutzern, Gruppen und dem Sammelbezeichner „{3}“ wird niemals Zugriff gewährt. {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf index c26cfa68ae..77155f3f2b 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + Se detectó una referencia de archivo de respuesta recursiva. @@ -284,7 +284,7 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. + Ejecute "--help" para ver las opciones registradas por esta aplicación de prueba. Si la opción pertenece a una extensión, asegúrese de que se hace referencia a su paquete y de que la extensión está registrada. {Locked="'--help'"} @@ -434,17 +434,17 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. + El enlace de extensión "{0}.{1}" del ensamblado "{2}" declarado en el manifiesto de extensión "{3}" se declara como "async void". La plataforma invoca el enlace de forma sincrónica, por lo que devolvería en su primera espera: cualquier cosa que registre después de ese punto ejecutaría la propia configuración de la aplicación de prueba y se perdería cualquier error. Haga que el enlace sea sincrónico. {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. + El enlace de extensión "{0}.{1}" del ensamblado "{2}" declarado en el manifiesto de extensión "{3}" devuelve "{4}", pero debe devolver "void". La plataforma invoca el gancho de forma síncrona, por lo que nunca se observa ningún valor devuelto; en particular, una tarea devuelta nunca se esperaría, y sus registros y errores se perderían. {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. + El tipo "{0}" del ensamblado "{1}" declarado en el manifiesto de extensión "{2}" no expone un método "public static void" denominado "{3}" que tome "ITestApplicationBuilder" y "string[]". {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} @@ -534,7 +534,7 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. + El manifiesto de extensión "{0}" declara las extensiones que se van a cargar, pero el tiempo de ejecución actual no admite la carga dinámica de ensamblados (por ejemplo, cuando se publica con AOT nativo). Establezca la propiedad "{1}" de cada extensión en "false", quite el manifiesto o quite "{2}" de la línea de comandos. {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} @@ -913,7 +913,7 @@ Opcionalmente, acepta "text" (la salida legible por el usuario predeterminada) o Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. + Habilite la carga de extensiones de plataforma de prueba declaradas por los manifiestos "*.testingplatformextensions.json" que se encuentran junto a la aplicación de prueba. Esta opción está deshabilitada de forma predeterminada. {Locked="'*.testingplatformextensions.json'"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf index a14811ccae..17ad92a12b 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + Nous avons détecté une référence récursive à un fichier de réponses. @@ -289,7 +289,7 @@ Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. + Utilisez « --crashdump » et/ou « --hangdump » à la place. MTP sépare les diagnostics de plantage et de blocage, il n’existe donc pas de remplacement un à un du collecteur de défaillance VSTest. {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} @@ -299,12 +299,12 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. + Pour obtenir une verbosité de console comparable, utilisez « --output {0} ». La sortie de la console MTP est configurée différemment, donc il ne s’agit pas d’un remplacement exact. {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. + MTP utilise des options spécifiques au rapporteur, telles que « --report-trx », « --report-html » et « --report-junit ». Consultez la documentation de l’extension du rapporteur pour connaître son option MTP. {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} @@ -319,7 +319,7 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. + Pour la couverture du code MTP, utilisez « --coverage ». Il ne s’agit pas d’un remplacement transparent du collecteur « XPlat Code Coverage » de Coverlet. {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} @@ -1050,7 +1050,7 @@ La valeur par défaut est TestResults dans le répertoire qui contient l’appli 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. + L’option « timeout » doit avoir un argument correspondant à une valeur de temps avec un suffixe d’unité explicite et une valeur numérique positive dans la plage prise en charge (jusqu’à environ 49,7 jours). Les suffixes acceptés sont 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)' et 'd'/'day(s)', par exemple '500ms', '5400s', '90m', '1.5h', '1d'. {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} @@ -1294,7 +1294,7 @@ En savoir plus sur la télémétrie de la plateforme de tests Microsoft : https: The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. + Le lanceur d’hôte de test « {0} » (UID : {1}) a demandé à autoriser l’identité de sécurité « {2} » sur la connexion du contrôleur d’hôte de test, mais seule l’identité d’une application isolée en bac à sable peut être autorisée (sous Windows, identificateur de sécurité au format « S-1-15-2-... »). Les utilisateurs, les groupes et l’identificateur de sécurité « {3} » fourre-tout ne bénéficient jamais d’un accès. {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf index 9be3fcc3ff..04740bd284 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + È stato rilevato un riferimento ricorsivo a un file di risposta. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf index 1fb0b5fa57..da221acc51 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + 再帰的な応答ファイル参照が検出されました。 diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf index 11ca365756..f02b6d576c 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + 응답 파일에 재귀 참조가 감지되었습니다. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf index 9855ea9aa9..eac5560ece 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + Wykryto rekursywne odwołanie do pliku odpowiedzi. @@ -284,7 +284,7 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. + Uruchom „--help”, aby zobaczyć opcje zarejestrowane przez tę aplikację testową. Jeśli opcja należy do rozszerzenia, upewnij się, że jego pakiet jest uwzględniony jako odwołanie i że rozszerzenie jest zarejestrowane. {Locked="'--help'"} @@ -1294,7 +1294,7 @@ Więcej informacji o telemetrii platformy testowej firmy Microsoft: https://aka. The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. + Moduł uruchamiający hosta testowego „{0}”" (UID: {1}) poprosił o autoryzację tożsamości zabezpieczeń „{2}” w testowym połączeniu kontrolera hosta, ale tylko tożsamość pojedynczej aplikacji w trybie środowiska testowego (w systemie Windows identyfikator zabezpieczeń w postaci „S-1-15-2-...”) może być autoryzowana. Użytkownikom, grupom i identyfikatorowi zabezpieczeń catch-all „{3}” nigdy nie udzielono dostępu. {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf index 5aec7de7e2..d983183af1 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + Foi detectada uma referência recursiva a arquivo de resposta. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf index 080e09195c..ffd7fc5c69 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + Обнаружена рекурсивная ссылка на файл ответов. @@ -284,7 +284,7 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. + Запустите "--help", чтобы просмотреть параметры, зарегистрированные этим тестовым приложением. Если параметр относится к расширению, проверьте, указан ли его пакет и зарегистрировано ли расширение. {Locked="'--help'"} @@ -434,17 +434,17 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. + Обработчик расширения "{0}.{1}" из сборки "{2}", объявленный в манифесте расширения "{3}", объявлен как "async void". Платформа вызывает обработчик синхронно, поэтому он вернет управление на первом операторе "await": все, что он регистрирует после этой точки, будет конкурировать с собственной настройкой тестового приложения, а любой сбой будет потерян. Сделайте обработчик синхронным. {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. + Обработчик расширения "{0}.{1}" из сборки "{2}", объявленный в манифесте расширения "{3}", возвращает "{4}", но должен возвращать "void". Платформа вызывает обработчик синхронно, поэтому возвращаемое значение никогда не наблюдается; в частности, возвращаемая задача никогда не будет ожидаться, а ее регистрации и сбои будут потеряны. {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. + Тип "{0}" в сборке "{1}", объявленный в манифесте расширения "{2}", не предоставляет метод "public static void" с именем "{3}", принимающий "ITestApplicationBuilder" и "string[]". {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} @@ -534,7 +534,7 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. + Манифест расширения "{0}" объявляет расширения для загрузки, но текущая среда выполнения не поддерживает динамическую загрузку сборок (например, при публикации с использованием собственного AOT). Установите свойство "{1}" каждого расширения в значение "false", удалите манифест или уберите "{2}" из командной строки. {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} @@ -913,7 +913,7 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. + Включить загрузку расширений тестовой платформы, объявленных в манифестах "*.testingplatformextensions.json", найденных рядом с тестовым приложением. По умолчанию отключено. {Locked="'*.testingplatformextensions.json'"} @@ -952,9 +952,9 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - Do not report a non-successful exit value for the specified exit codes. -For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. -For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. + Не сообщать о неуспешном значении завершения для указанных кодов завершения. +Например, "'--ignore-exit-code 8;9" игнорирует коды завершения 8 и 9 и в этих случаях возвращает 0. +Дополнительные сведения о кодах завершения см. на странице https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf index be995308a1..d9647486d3 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + Yinelenen bir yanıt dosyası başvurusu algılandı. @@ -434,17 +434,17 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. + “{3}” uzantı bildiriminde bildirilen “{2}” derlemesindeki “{0}.{1}” uzantı kancası “async void” olarak bildirilmiş. Platform kancayı senkron olarak çağırır, bu nedenle ilk await ifadesinde geri döner; bu noktadan sonra kaydettiği her şey test uygulamasının kendi kurulumuyla yarışır ve herhangi bir hata kaybolur. Kancayı senkron yapın. {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. + “{3}” uzantı bildiriminde bildirilen “{2}” derlemesindeki “{0}.{1}” uzantı kancası “{4}” döndürüyor, ancak “void” döndürmelidir. Platform kancayı eşzamanlı olarak çağırır, bu nedenle hiçbir geri gönderme değeri gözlemlenmez; özellikle döndürülen bir görev hiçbir zaman await edilmez ve kayıtları ile hataları kaybolur. {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. + “{2}” uzantı bildiriminde bildirilen “{1}” derlemesindeki “{0}” türü, ITestApplicationBuilder ve string[] alan “{3}” adlı public static void yöntemini kullanıma sunmuyor. {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf index 0144297e62..fc4354f361 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + 检测到递归响应文件引用。 @@ -1294,7 +1294,7 @@ Microsoft 测试平台会收集使用数据,帮助我们改善体验。该数 The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. + 测试主机启动器 "{0}"(UID: {1})请求在测试主机控制器连接上授权安全标识符 "{2}",但只能授权单个沙盒应用的标识符(在 Windows 上,格式为 "S-1-15-2-..." 的安全标识符)。从不向用户、组以及通用 "{3}" 安全标识符授予访问权限。 {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf index ecbca4b96c..80e1faa4d6 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf @@ -244,7 +244,7 @@ A recursive response file reference was detected. - A recursive response file reference was detected. + 偵測到遞迴回應檔案參考。 diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf index bd5ffe26dd..bd1869411f 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf @@ -365,27 +365,27 @@ {0} must be positive. - {0} must be positive. + {0} deve essere positivo. {0} is the random data count property name. {0} must not be greater than {1}. - {0} must not be greater than {1}. + {0} non deve essere maggiore di {1}. {0} is the minimum property name. {1} is the maximum property name. The range exceeds the maximum integer value. - The range exceeds the maximum integer value. + L'intervallo supera il valore massimo di un intero. Error message shown when a signed combinatorial range exceeds Int32.MaxValue. The range exceeds the maximum unsigned integer value. - The range exceeds the maximum unsigned integer value. + L'intervallo supera il valore Unsigned Integer massimo. Error message shown when an unsigned combinatorial range exceeds UInt32.MaxValue. The range contains too many values. - The range contains too many values. + L'intervallo contiene troppi valori. Error message shown when a combinatorial range cannot be represented in an array. From a87474cebd814424e79636ddaa53234762945a36 Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Tue, 8 Sep 2026 17:46:31 +0200 Subject: [PATCH 21/33] Make whitespace string diff markers visible by @Evangelink in #11109 (backport to rel/4.4) (#11117) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../Assert.StringDifference.Rendering.cs | 99 ++++++++++++++++++- .../Assertions/Assert.StringDifference.cs | 4 + .../Assertions/AssertTests.AreEqualTests.cs | 44 ++++++++- 3 files changed, 143 insertions(+), 4 deletions(-) diff --git a/src/TestFramework/TestFramework/Assertions/Assert.StringDifference.Rendering.cs b/src/TestFramework/TestFramework/Assertions/Assert.StringDifference.Rendering.cs index 43e7551fe5..467237da77 100644 --- a/src/TestFramework/TestFramework/Assertions/Assert.StringDifference.Rendering.cs +++ b/src/TestFramework/TestFramework/Assertions/Assert.StringDifference.Rendering.cs @@ -33,11 +33,11 @@ private static int GetShortPrefixLength(StringTokenWindow window) } private static string RenderMismatchFragment(StringTokenWindow window) - => $"[[{RenderMismatch(window)}]]"; + => $"[[{RenderMismatch(window, makeWhitespaceVisible: true)}]]"; private static StringPreview CreatePreview(StringTokenWindow window, bool useInlineMarker) { - string mismatch = RenderMismatch(window); + string mismatch = RenderMismatch(window, makeWhitespaceVisible: useInlineMarker); if (useInlineMarker) { mismatch = $"[[{mismatch}]]"; @@ -169,7 +169,7 @@ private static bool IsAfterContextOmitted(StringTokenWindow window, int afterCou return lastIncludedIndex < window.Value.Length; } - private static string RenderMismatch(StringTokenWindow window) + private static string RenderMismatch(StringTokenWindow window, bool makeWhitespaceVisible = false) { if (window.Mismatch is not StringToken mismatch) { @@ -181,11 +181,104 @@ private static string RenderMismatch(StringTokenWindow window) return ""; } + if (makeWhitespaceVisible && IsWhitespaceOnly(window.Value, mismatch)) + { + return RenderWhitespaceMismatch(window.Value, mismatch); + } + StringBuilder builder = new(mismatch.RenderedLength); AppendEscapedToken(builder, window.Value, mismatch); return builder.ToString(); } + private static bool IsWhitespaceOnly(string value, StringToken token) + { + for (int i = token.Start; i < token.End;) + { + ScalarInfo scalar = GetScalar(value, i); + if (scalar.Value > char.MaxValue || !char.IsWhiteSpace((char)scalar.Value)) + { + return false; + } + + i += scalar.Length; + } + + return true; + } + + private static bool IsMismatchSuitableForCaret(StringTokenWindow window) + { + if (window.Mismatch is not StringToken mismatch || !IsWhitespaceOnly(window.Value, mismatch)) + { + return true; + } + + for (int i = mismatch.Start; i < mismatch.End;) + { + ScalarInfo scalar = GetScalar(window.Value, i); + if (scalar.Value is not ('\t' or '\n' or '\r')) + { + return false; + } + + i += scalar.Length; + } + + return true; + } + + private static string RenderWhitespaceMismatch(string value, StringToken token) + { + int spaceCount = 0; + StringBuilder builder = new(); + for (int i = token.Start; i < token.End;) + { + ScalarInfo scalar = GetScalar(value, i); + if (scalar.Value == ' ') + { + spaceCount++; + } + else + { + switch (scalar.Value) + { + case '\t': + builder.Append("\\t"); + break; + case '\n': + builder.Append("\\n"); + break; + case '\r': + builder.Append("\\r"); + break; + default: + builder.Append("\\u"); + builder.Append(scalar.Value.ToString("X4", CultureInfo.InvariantCulture)); + break; + } + } + + i += scalar.Length; + } + + if (spaceCount > 0) + { + if (builder.Length > 0) + { + builder.Insert(0, $"{spaceCount} space(s) "); + } + else + { + return spaceCount == 1 + ? "" + : $"<{spaceCount} spaces>"; + } + } + + return builder.ToString(); + } + private static StringTokenWindow CreateTokenWindow(string value, int mismatchIndex) { Queue before = new(); diff --git a/src/TestFramework/TestFramework/Assertions/Assert.StringDifference.cs b/src/TestFramework/TestFramework/Assertions/Assert.StringDifference.cs index d18ce18c44..1cd4bf18be 100644 --- a/src/TestFramework/TestFramework/Assertions/Assert.StringDifference.cs +++ b/src/TestFramework/TestFramework/Assertions/Assert.StringDifference.cs @@ -117,6 +117,8 @@ private static StringDifferenceDiagnostic CreateStringDifferenceDiagnostic( && !actualWindow.MismatchRequiresPlaceholder && expectedWindow.IsRetainedPrefixSafe && actualWindow.IsRetainedPrefixSafe + && IsMismatchSuitableForCaret(expectedWindow) + && IsMismatchSuitableForCaret(actualWindow) && expectedPrefixLength == actualPrefixLength; string differenceText = useCaret @@ -133,6 +135,8 @@ private static StringDifferenceDiagnostic CreateStringDifferenceDiagnostic( && !actualWindow.MismatchRequiresPlaceholder && expectedPreview.IsPrefixSafe && actualPreview.IsPrefixSafe + && IsMismatchSuitableForCaret(expectedWindow) + && IsMismatchSuitableForCaret(actualWindow) && expectedPreview.MismatchColumn == actualPreview.MismatchColumn; if (previewUsesCaret) diff --git a/test/UnitTests/TestFramework.UnitTests/Assertions/AssertTests.AreEqualTests.cs b/test/UnitTests/TestFramework.UnitTests/Assertions/AssertTests.AreEqualTests.cs index b46ab6341f..1ed2d30047 100644 --- a/test/UnitTests/TestFramework.UnitTests/Assertions/AssertTests.AreEqualTests.cs +++ b/test/UnitTests/TestFramework.UnitTests/Assertions/AssertTests.AreEqualTests.cs @@ -1668,7 +1668,7 @@ Strings have same length (4) and differ at 1 location(s). First difference at in expected: "aa\ta" actual: "aa a" - difference: ---^ + difference: expected [[\t]]; actual [[]] Assert.AreEqual("aa\ta", "aa a") """); @@ -2059,6 +2059,48 @@ Strings have same length ({expectedLength}) and differ at 1 location(s). First d } } + public void AreEqualStringDifferenceWhitespaceInLongValueUsesVisibleInlineMarkers() + { + string expected = """ + Assertion failed. Expected strings to be equal. + + expected: "Entity should not be null.'" + actual: "Entity should not be null." + """; + string actual = """ + Assertion failed. Expected strings to be equal. + + expected: "Entity should not be null.'" + actual: "Entity should not be null." + """; + + AssertFailedException exception = CaptureAreEqualFailure(() => Assert.AreEqual(expected, actual)); + + exception.Message.Should().Contain("[[]]"); + exception.Message.Should().NotContain("[[ ]]"); + exception.Message.Should().Contain("difference: mismatch marked with [[...]]"); + } + + public void AreEqualStringDifferenceWhitespaceCharactersRenderUnambiguously() + { + (string Expected, string Actual, string Marker)[] cases = + [ + (new string('a', 120) + " " + "z", new string('a', 120) + " " + "z", "[[]]"), + (new string('a', 120) + "\t" + "z", new string('a', 120) + " " + "z", "[[\\t]]"), + (new string('a', 120) + "\r\n" + "z", new string('a', 120) + " " + "z", "[[\\r\\n]]"), + (new string('a', 120) + "\u00A0" + "z", new string('a', 120) + " " + "z", "[[\\u00A0]]"), + (new string('a', 120) + "\u2009" + "z", new string('a', 120) + " " + "z", "[[\\u2009]]"), + ]; + + foreach ((string expected, string actual, string marker) in cases) + { + AssertFailedException exception = CaptureAreEqualFailure(() => Assert.AreEqual(expected, actual)); + + exception.Message.Should().Contain(marker); + exception.Message.Should().NotContain("[[ ]]"); + } + } + public void AreEqualStringDifferenceOversizedTextElementsUsePlaceholder() { string expected = "a" + new string('\u0301', 60) + new string('z', 100); From 0d4b9091fe66b4831fc0ef75ccf977d5c5f1bf76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Wed, 9 Sep 2026 08:02:14 +0200 Subject: [PATCH 22/33] Fix timing-sensitive message bus test on rel/4.4 (#11119) Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../Messages/AsynchronousMessageBusTests.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Messages/AsynchronousMessageBusTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Messages/AsynchronousMessageBusTests.cs index e2a109b8a6..c1aa0e9d5c 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Messages/AsynchronousMessageBusTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Messages/AsynchronousMessageBusTests.cs @@ -716,6 +716,7 @@ public async Task DisableAsync_WhenBlockingConsumerIgnoresTheTokenMidWait_Should } [TestMethod] + [DoNotParallelize] public async Task DisableAsync_WithManyCanceledConsumersIgnoringTheToken_ShouldNotMultiplyTheBudget() { using CTRLPlusCCancellationTokenSource cancellationTokenSource = new(); From 37cfcfca80bb76b5f59e7f406a1a8fdc0b8e7d3b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Wed, 9 Sep 2026 16:53:40 +0200 Subject: [PATCH 23/33] Backport localization lock metadata to rel/4.4 (#11143) Copilot-Session: 63c25c36-0fb9-4605-86fa-e2152aa7588b --- src/Analyzers/MSTest.Analyzers/Resources.resx | 22 ++++---- .../MSTest.Analyzers/xlf/Resources.cs.xlf | 44 +++++++-------- .../MSTest.Analyzers/xlf/Resources.de.xlf | 44 +++++++-------- .../MSTest.Analyzers/xlf/Resources.es.xlf | 44 +++++++-------- .../MSTest.Analyzers/xlf/Resources.fr.xlf | 38 ++++++------- .../MSTest.Analyzers/xlf/Resources.it.xlf | 44 +++++++-------- .../MSTest.Analyzers/xlf/Resources.ja.xlf | 44 +++++++-------- .../MSTest.Analyzers/xlf/Resources.ko.xlf | 44 +++++++-------- .../MSTest.Analyzers/xlf/Resources.pl.xlf | 44 +++++++-------- .../MSTest.Analyzers/xlf/Resources.pt-BR.xlf | 44 +++++++-------- .../MSTest.Analyzers/xlf/Resources.ru.xlf | 44 +++++++-------- .../MSTest.Analyzers/xlf/Resources.tr.xlf | 44 +++++++-------- .../xlf/Resources.zh-Hans.xlf | 44 +++++++-------- .../xlf/Resources.zh-Hant.xlf | 44 +++++++-------- .../Resources/CrashDumpResources.resx | 2 +- .../Resources/xlf/CrashDumpResources.cs.xlf | 4 +- .../Resources/xlf/CrashDumpResources.de.xlf | 2 +- .../Resources/xlf/CrashDumpResources.es.xlf | 4 +- .../Resources/xlf/CrashDumpResources.fr.xlf | 4 +- .../Resources/xlf/CrashDumpResources.it.xlf | 4 +- .../Resources/xlf/CrashDumpResources.ja.xlf | 4 +- .../Resources/xlf/CrashDumpResources.ko.xlf | 4 +- .../Resources/xlf/CrashDumpResources.pl.xlf | 2 +- .../xlf/CrashDumpResources.pt-BR.xlf | 2 +- .../Resources/xlf/CrashDumpResources.ru.xlf | 2 +- .../Resources/xlf/CrashDumpResources.tr.xlf | 4 +- .../xlf/CrashDumpResources.zh-Hans.xlf | 2 +- .../xlf/CrashDumpResources.zh-Hant.xlf | 4 +- .../Resources/ExtensionResources.resx | 2 +- .../Resources/xlf/ExtensionResources.cs.xlf | 4 +- .../Resources/xlf/ExtensionResources.de.xlf | 4 +- .../Resources/xlf/ExtensionResources.es.xlf | 4 +- .../Resources/xlf/ExtensionResources.fr.xlf | 4 +- .../Resources/xlf/ExtensionResources.it.xlf | 4 +- .../Resources/xlf/ExtensionResources.ja.xlf | 4 +- .../Resources/xlf/ExtensionResources.ko.xlf | 4 +- .../Resources/xlf/ExtensionResources.pl.xlf | 4 +- .../xlf/ExtensionResources.pt-BR.xlf | 4 +- .../Resources/xlf/ExtensionResources.ru.xlf | 4 +- .../Resources/xlf/ExtensionResources.tr.xlf | 4 +- .../xlf/ExtensionResources.zh-Hans.xlf | 4 +- .../xlf/ExtensionResources.zh-Hant.xlf | 4 +- .../Resources/GitHubActionsResources.resx | 20 +++---- .../xlf/GitHubActionsResources.cs.xlf | 36 ++++++------ .../xlf/GitHubActionsResources.de.xlf | 38 ++++++------- .../xlf/GitHubActionsResources.es.xlf | 36 ++++++------ .../xlf/GitHubActionsResources.fr.xlf | 38 ++++++------- .../xlf/GitHubActionsResources.it.xlf | 40 ++++++------- .../xlf/GitHubActionsResources.ja.xlf | 40 ++++++------- .../xlf/GitHubActionsResources.ko.xlf | 40 ++++++------- .../xlf/GitHubActionsResources.pl.xlf | 34 +++++------ .../xlf/GitHubActionsResources.pt-BR.xlf | 40 ++++++------- .../xlf/GitHubActionsResources.ru.xlf | 34 +++++------ .../xlf/GitHubActionsResources.tr.xlf | 38 ++++++------- .../xlf/GitHubActionsResources.zh-Hans.xlf | 36 ++++++------ .../xlf/GitHubActionsResources.zh-Hant.xlf | 40 ++++++------- .../Resources/ExtensionResources.resx | 2 +- .../Resources/xlf/ExtensionResources.cs.xlf | 4 +- .../Resources/xlf/ExtensionResources.de.xlf | 4 +- .../Resources/xlf/ExtensionResources.es.xlf | 4 +- .../Resources/xlf/ExtensionResources.fr.xlf | 4 +- .../Resources/xlf/ExtensionResources.it.xlf | 4 +- .../Resources/xlf/ExtensionResources.ja.xlf | 4 +- .../Resources/xlf/ExtensionResources.ko.xlf | 4 +- .../Resources/xlf/ExtensionResources.pl.xlf | 4 +- .../xlf/ExtensionResources.pt-BR.xlf | 4 +- .../Resources/xlf/ExtensionResources.ru.xlf | 4 +- .../Resources/xlf/ExtensionResources.tr.xlf | 4 +- .../xlf/ExtensionResources.zh-Hans.xlf | 4 +- .../xlf/ExtensionResources.zh-Hant.xlf | 4 +- .../Resources/ExtensionResources.resx | 2 +- .../Resources/xlf/ExtensionResources.cs.xlf | 4 +- .../Resources/xlf/ExtensionResources.de.xlf | 4 +- .../Resources/xlf/ExtensionResources.es.xlf | 4 +- .../Resources/xlf/ExtensionResources.fr.xlf | 4 +- .../Resources/xlf/ExtensionResources.it.xlf | 4 +- .../Resources/xlf/ExtensionResources.ja.xlf | 4 +- .../Resources/xlf/ExtensionResources.ko.xlf | 4 +- .../Resources/xlf/ExtensionResources.pl.xlf | 4 +- .../xlf/ExtensionResources.pt-BR.xlf | 4 +- .../Resources/xlf/ExtensionResources.ru.xlf | 4 +- .../Resources/xlf/ExtensionResources.tr.xlf | 4 +- .../xlf/ExtensionResources.zh-Hans.xlf | 4 +- .../xlf/ExtensionResources.zh-Hant.xlf | 4 +- .../Resources/ExtensionResources.resx | 2 +- .../Resources/xlf/ExtensionResources.cs.xlf | 4 +- .../Resources/xlf/ExtensionResources.de.xlf | 4 +- .../Resources/xlf/ExtensionResources.es.xlf | 4 +- .../Resources/xlf/ExtensionResources.fr.xlf | 4 +- .../Resources/xlf/ExtensionResources.it.xlf | 4 +- .../Resources/xlf/ExtensionResources.ja.xlf | 4 +- .../Resources/xlf/ExtensionResources.ko.xlf | 4 +- .../Resources/xlf/ExtensionResources.pl.xlf | 4 +- .../xlf/ExtensionResources.pt-BR.xlf | 4 +- .../Resources/xlf/ExtensionResources.ru.xlf | 4 +- .../Resources/xlf/ExtensionResources.tr.xlf | 4 +- .../xlf/ExtensionResources.zh-Hans.xlf | 4 +- .../xlf/ExtensionResources.zh-Hant.xlf | 4 +- .../Terminal/TerminalResources.resx | 14 ++--- .../Terminal/xlf/TerminalResources.cs.xlf | 24 ++++---- .../Terminal/xlf/TerminalResources.de.xlf | 26 ++++----- .../Terminal/xlf/TerminalResources.es.xlf | 28 +++++----- .../Terminal/xlf/TerminalResources.fr.xlf | 28 +++++----- .../Terminal/xlf/TerminalResources.it.xlf | 28 +++++----- .../Terminal/xlf/TerminalResources.ja.xlf | 28 +++++----- .../Terminal/xlf/TerminalResources.ko.xlf | 28 +++++----- .../Terminal/xlf/TerminalResources.pl.xlf | 26 ++++----- .../Terminal/xlf/TerminalResources.pt-BR.xlf | 28 +++++----- .../Terminal/xlf/TerminalResources.ru.xlf | 24 ++++---- .../Terminal/xlf/TerminalResources.tr.xlf | 28 +++++----- .../xlf/TerminalResources.zh-Hans.xlf | 28 +++++----- .../xlf/TerminalResources.zh-Hant.xlf | 28 +++++----- .../Resources/PlatformResources.resx | 28 +++++----- .../Resources/xlf/PlatformResources.cs.xlf | 52 ++++++++--------- .../Resources/xlf/PlatformResources.de.xlf | 54 +++++++++--------- .../Resources/xlf/PlatformResources.es.xlf | 52 ++++++++--------- .../Resources/xlf/PlatformResources.fr.xlf | 56 +++++++++---------- .../Resources/xlf/PlatformResources.it.xlf | 56 +++++++++---------- .../Resources/xlf/PlatformResources.ja.xlf | 56 +++++++++---------- .../Resources/xlf/PlatformResources.ko.xlf | 56 +++++++++---------- .../Resources/xlf/PlatformResources.pl.xlf | 52 ++++++++--------- .../Resources/xlf/PlatformResources.pt-BR.xlf | 56 +++++++++---------- .../Resources/xlf/PlatformResources.ru.xlf | 52 ++++++++--------- .../Resources/xlf/PlatformResources.tr.xlf | 56 +++++++++---------- .../xlf/PlatformResources.zh-Hans.xlf | 52 ++++++++--------- .../xlf/PlatformResources.zh-Hant.xlf | 56 +++++++++---------- 126 files changed, 1229 insertions(+), 1229 deletions(-) diff --git a/src/Analyzers/MSTest.Analyzers/Resources.resx b/src/Analyzers/MSTest.Analyzers/Resources.resx index 1369b50188..d66acf1d9c 100644 --- a/src/Analyzers/MSTest.Analyzers/Resources.resx +++ b/src/Analyzers/MSTest.Analyzers/Resources.resx @@ -289,7 +289,7 @@ The type declaring these methods should also respect the following rules: The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - {Locked="TestContext"}{Locked="'static'"} + {Locked="TestContext"}{Locked="static"} Do not store TestContext in a static member @@ -301,7 +301,7 @@ The type declaring these methods should also respect the following rules: 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - {Locked="'Assert.Fail'"} + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -313,7 +313,7 @@ The type declaring these methods should also respect the following rules: Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - {Locked="'readonly'"}{Locked="MSTEST0019"} + {Locked="readonly"}{Locked="MSTEST0019"} Prefer constructors over TestInitialize methods @@ -325,7 +325,7 @@ The type declaring these methods should also respect the following rules: 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} Prefer 'Dispose' over TestCleanup methods @@ -337,7 +337,7 @@ The type declaring these methods should also respect the following rules: '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} Prefer TestCleanup over 'Dispose' methods @@ -349,7 +349,7 @@ The type declaring these methods should also respect the following rules: '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} Prefer TestInitialize methods over constructors @@ -620,7 +620,7 @@ The type declaring these methods should also respect the following rules: MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method @@ -657,7 +657,7 @@ The type declaring these methods should also respect the following rules: 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert' instead of 'StringAssert' @@ -669,7 +669,7 @@ The type declaring these methods should also respect the following rules: 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert' instead of 'CollectionAssert' @@ -851,7 +851,7 @@ The type declaring these methods should also respect the following rules: Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Avoid passing an explicit 'DynamicDataSourceType' and use the default auto detect behavior @@ -1259,6 +1259,6 @@ The type declaring these methods should also respect the following rules: MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf index cb7f1cad07..1274e14808 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf @@ -169,8 +169,8 @@ Typ deklarující tyto metody by měl také respektovat následující pravidla: Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - Od verze MSTest 3.8 je 'DynamicDataSourceType.AutoDetect' výchozí hodnotou a automaticky rozpoznává vlastnosti, metody a pole, čímž omezuje rozvláčnost a závislost na druhu členu. - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + Od verze MSTest 3.8 je 'DynamicDataSourceType.AutoDetect' výchozí hodnotou a automaticky rozpoznává vlastnosti, metody a pole, čímž omezuje rozvláčnost a závislost na druhu členu. + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -312,8 +312,8 @@ Typ deklarující tyto metody by měl také respektovat následující pravidla: 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - Metody 'CollectionAssert' mají odpovídající protějšky ve třídě 'Assert'. Používání jediného rozhraní API pro kontrolní výrazy zlepšuje konzistenci a usnadňuje vyhledávání. - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + Metody 'CollectionAssert' mají odpovídající protějšky ve třídě 'Assert'. Používání jediného rozhraní API pro kontrolní výrazy zlepšuje konzistenci a usnadňuje vyhledávání. + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ Typ deklarující tyto metody by měl také respektovat následující pravidla: The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - Objekt TestContext předaný inicializaci sestavení nebo třídy je specifický pro daný kontext a při každém spuštění testu se neaktualizuje. Jeho opakované použití ve členovi 'static' může zpřístupnit zastaralý kontext. - {Locked="TestContext"}{Locked="'static'"} + Objekt TestContext předaný inicializaci sestavení nebo třídy je specifický pro daný kontext a při každém spuštění testu se neaktualizuje. Jeho opakované použití ve členovi 'static' může zpřístupnit zastaralý kontext. + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest překládá zděděné atributy životního cyklu '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' a '[ClassCleanup]' a testovací atributy '[TestMethod]' a '[DataTestMethod]' podle přesné identity typu architektury. Sestavení architektury bylo přejmenováno z 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', takže základní třída zkompilovaná pro jinou hlavní verzi MSTest zpřístupňuje tyto atributy s jinou identitou typu. Když testovací třída zkompilovaná pro jinou verzi dědí z takové základní třídy, zděděné nastavení a vyčištění se nespustí a zděděné testovací metody se nezjistí, aniž by došlo k chybě sestavení nebo chybě zjišťování. Znovu zkompilujte základní sestavení a u vlastních atributů také sestavení, které atribut definuje, proti stejné verzi MSTest jako testovací projekt. - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + MSTest překládá zděděné atributy životního cyklu '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' a '[ClassCleanup]' a testovací atributy '[TestMethod]' a '[DataTestMethod]' podle přesné identity typu architektury. Sestavení architektury bylo přejmenováno z 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', takže základní třída zkompilovaná pro jinou hlavní verzi MSTest zpřístupňuje tyto atributy s jinou identitou typu. Když testovací třída zkompilovaná pro jinou verzi dědí z takové základní třídy, zděděné nastavení a vyčištění se nespustí a zděděné testovací metody se nezjistí, aniž by došlo k chybě sestavení nebo chybě zjišťování. Znovu zkompilujte základní sestavení a u vlastních atributů také sestavení, které atribut definuje, proti stejné verzi MSTest jako testovací projekt. + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ Typ deklarující tyto metody by měl také respektovat následující pravidla: 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail' explicitně vyjadřuje záměrné selhání a umožňuje ve zprávě o selhání zdokumentovat, proč test nemůže pokračovat. - {Locked="'Assert.Fail'"} + 'Assert.Fail' explicitně vyjadřuje záměrné selhání a umožňuje ve zprávě o selhání zdokumentovat, proč test nemůže pokračovat. + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ Typ deklarující tyto metody by měl také respektovat následující pravidla: Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - Konstruktory umožňují inicializaci prostřednictvím polí 'readonly' a poskytují lepší zpětnou vazbu kompilátoru, zejména u typů odkazů s možnou hodnotou null. Toto volitelné pravidlo stylu se vzájemně vylučuje s pravidlem MSTEST0019. - {Locked="'readonly'"}{Locked="MSTEST0019"} + Konstruktory umožňují inicializaci prostřednictvím polí 'readonly' a poskytují lepší zpětnou vazbu kompilátoru, zejména u typů odkazů s možnou hodnotou null. Toto volitelné pravidlo stylu se vzájemně vylučuje s pravidlem MSTEST0019. + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - 'Dispose' a 'DisposeAsync' používají standardní vzory životního cyklu .NET, takže je čištění testů konzistentní s produkčním kódem. Toto volitelné pravidlo stylu se vzájemně vylučuje s pravidlem MSTEST0022. - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + 'Dispose' a 'DisposeAsync' používají standardní vzory životního cyklu .NET, takže je čištění testů konzistentní s produkčním kódem. Toto volitelné pravidlo stylu se vzájemně vylučuje s pravidlem MSTEST0022. + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]' podporuje asynchronní vyčištění v cílových architekturách, ve kterých není k dispozici 'IAsyncDisposable'. Toto volitelné pravidlo stylu se vzájemně vylučuje s pravidlem MSTEST0021. - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + '[TestCleanup]' podporuje asynchronní vyčištění v cílových architekturách, ve kterých není k dispozici 'IAsyncDisposable'. Toto volitelné pravidlo stylu se vzájemně vylučuje s pravidlem MSTEST0021. + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]' podporuje synchronní i asynchronní inicializaci, zatímco u konstruktorů nejde použít await. Toto volitelné pravidlo stylu se vzájemně vylučuje s pravidlem MSTEST0020. - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]' podporuje synchronní i asynchronní inicializaci, zatímco u konstruktorů nejde použít await. Toto volitelné pravidlo stylu se vzájemně vylučuje s pravidlem MSTEST0020. + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -957,8 +957,8 @@ Typ deklarující tyto metody by měl také respektovat následující pravidla: 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - Metody 'StringAssert' mají odpovídající protějšky ve třídě 'Assert'. Používání jediného rozhraní 'API' pro kontrolní výrazy zlepšuje konzistenci a usnadňuje vyhledávání. - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + Metody 'StringAssert' mají odpovídající protějšky ve třídě 'Assert'. Používání jediného rozhraní 'API' pro kontrolní výrazy zlepšuje konzistenci a usnadňuje vyhledávání. + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ Typ deklarující tyto metody by měl také respektovat následující pravidla: MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - 'MSTest' ignoruje '[DeploymentItem]', pokud se použije mimo testovací třídu nebo testovací metodu. - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + 'MSTest' ignoruje '[DeploymentItem]', pokud se použije mimo testovací třídu nebo testovací metodu. + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf index 5fc632841e..da8bcb921c 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf @@ -169,8 +169,8 @@ Der Typ, der diese Methoden deklariert, sollte auch die folgenden Regeln beachte Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - Seit MSTest 3.8 ist 'DynamicDataSourceType.AutoDetect' die Standardeinstellung und identifiziert automatisch Eigenschaften, Methoden und Felder, wodurch die Ausführlichkeit und die Kopplung mit der Memberart reduziert werden. - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + Seit MSTest 3.8 ist 'DynamicDataSourceType.AutoDetect' die Standardeinstellung und identifiziert automatisch Eigenschaften, Methoden und Felder, wodurch die Ausführlichkeit und die Kopplung mit der Memberart reduziert werden. + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -312,8 +312,8 @@ Der Typ, der diese Methoden deklariert, sollte auch die folgenden Regeln beachte 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - 'CollectionAssert'-Methoden verfügen über entsprechende 'Assert'-Gegenstücke. Die Verwendung einer Assertions-API verbessert die Konsistenz und Auffindbarkeit. - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + 'CollectionAssert'-Methoden verfügen über entsprechende 'Assert'-Gegenstücke. Die Verwendung einer Assertions-API verbessert die Konsistenz und Auffindbarkeit. + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ Der Typ, der diese Methoden deklariert, sollte auch die folgenden Regeln beachte The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - Der an die Assembly- oder Klasseninitialisierung übergebene TestContext ist spezifisch für diesen Kontext und wird nicht für jede Testausführung aktualisiert. Durch die Wiederverwendung in einem 'static' Member kann veralteter Kontext verfügbar gemacht werden. - {Locked="TestContext"}{Locked="'static'"} + Der an die Assembly- oder Klasseninitialisierung übergebene TestContext ist spezifisch für diesen Kontext und wird nicht für jede Testausführung aktualisiert. Durch die Wiederverwendung in einem 'static' Member kann veralteter Kontext verfügbar gemacht werden. + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest löst die geerbten Lebenszyklusattribute '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' und '[ClassCleanup]' sowie die Testattribute '[TestMethod]' und '[DataTestMethod]' anhand ihrer exakten Frameworktypidentität auf. Die Frameworkassembly wurde von 'Microsoft.VisualStudio.TestPlatform.TestFramework' in 'MSTest.TestFramework' umbenannt, sodass eine Basisklasse, die gegen eine andere MSTest-Hauptversion kompiliert wurde, diese Attribute mit einer anderen Typidentität bereitstellt. Wenn eine solche Basisklasse von einer Testklasse geerbt wird, die gegen eine andere Version kompiliert wird, werden die geerbten Setup- und Bereinigungsprozeduren nicht ausgeführt und die geerbten Testmethoden nicht erkannt, ohne dass dabei ein Buildfehler oder ein Ermittlungsfehler auftritt. Kompilieren Sie die Basisassembly und, bei benutzerdefinierten Attributen, die Assembly, die das Attribut definiert, mit derselben MSTest-Version wie das Testprojekt neu. - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + MSTest löst die geerbten Lebenszyklusattribute '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' und '[ClassCleanup]' sowie die Testattribute '[TestMethod]' und '[DataTestMethod]' anhand ihrer exakten Frameworktypidentität auf. Die Frameworkassembly wurde von 'Microsoft.VisualStudio.TestPlatform.TestFramework' in 'MSTest.TestFramework' umbenannt, sodass eine Basisklasse, die gegen eine andere MSTest-Hauptversion kompiliert wurde, diese Attribute mit einer anderen Typidentität bereitstellt. Wenn eine solche Basisklasse von einer Testklasse geerbt wird, die gegen eine andere Version kompiliert wird, werden die geerbten Setup- und Bereinigungsprozeduren nicht ausgeführt und die geerbten Testmethoden nicht erkannt, ohne dass dabei ein Buildfehler oder ein Ermittlungsfehler auftritt. Kompilieren Sie die Basisassembly und, bei benutzerdefinierten Attributen, die Assembly, die das Attribut definiert, mit derselben MSTest-Version wie das Testprojekt neu. + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ Der Typ, der diese Methoden deklariert, sollte auch die folgenden Regeln beachte 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail' macht einen absichtlichen Fehler explizit und ermöglicht es, anhand der Fehlermeldung zu dokumentieren, warum der Test nicht fortgesetzt werden kann. - {Locked="'Assert.Fail'"} + 'Assert.Fail' macht einen absichtlichen Fehler explizit und ermöglicht es, anhand der Fehlermeldung zu dokumentieren, warum der Test nicht fortgesetzt werden kann. + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ Der Typ, der diese Methoden deklariert, sollte auch die folgenden Regeln beachte Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - Konstruktoren ermöglichen die Initialisierung über 'readonly'-Felder und bieten stärkeres Compilerfeedback, insbesondere bei Verweistypen, die NULL-Werte zulassen. Diese Opt-In-Stilregel und MSTEST0019 schließen sich gegenseitig aus. - {Locked="'readonly'"}{Locked="MSTEST0019"} + Konstruktoren ermöglichen die Initialisierung über 'readonly'-Felder und bieten stärkeres Compilerfeedback, insbesondere bei Verweistypen, die NULL-Werte zulassen. Diese Opt-In-Stilregel und MSTEST0019 schließen sich gegenseitig aus. + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - 'Dispose' und 'DisposeAsync' folgen standardmäßigen .NET-Lebensdauermustern, sodass die Testbereinigung mit Produktionscode konsistent ist. Diese Opt-In-Stilregel und MSTEST0022 schließen sich gegenseitig aus. - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + 'Dispose' und 'DisposeAsync' folgen standardmäßigen .NET-Lebensdauermustern, sodass die Testbereinigung mit Produktionscode konsistent ist. Diese Opt-In-Stilregel und MSTEST0022 schließen sich gegenseitig aus. + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]' unterstützt die asynchrone Bereinigung für Zielframeworks, in denen 'IAsyncDisposable' nicht verfügbar ist. Diese Opt-In-Stilregel und MSTEST0021 schließen sich gegenseitig aus. - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + '[TestCleanup]' unterstützt die asynchrone Bereinigung für Zielframeworks, in denen 'IAsyncDisposable' nicht verfügbar ist. Diese Opt-In-Stilregel und MSTEST0021 schließen sich gegenseitig aus. + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]' unterstützt sowohl die synchrone als auch die asynchrone Initialisierung, auf Konstruktoren kann dagegen nicht gewartet werden. Diese Opt-In-Stilregel und MSTEST0020 schließen sich gegenseitig aus. - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]' unterstützt sowohl die synchrone als auch die asynchrone Initialisierung, auf Konstruktoren kann dagegen nicht gewartet werden. Diese Opt-In-Stilregel und MSTEST0020 schließen sich gegenseitig aus. + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -957,8 +957,8 @@ Der Typ, der diese Methoden deklariert, sollte auch die folgenden Regeln beachte 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - 'StringAssert'-Methoden verfügen über entsprechende 'Assert'-Gegenstücke. Die Verwendung einer Assertions-API verbessert die Konsistenz und Auffindbarkeit. - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + 'StringAssert'-Methoden verfügen über entsprechende 'Assert'-Gegenstücke. Die Verwendung einer Assertions-API verbessert die Konsistenz und Auffindbarkeit. + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ Der Typ, der diese Methoden deklariert, sollte auch die folgenden Regeln beachte MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - MSTest ignoriert '[DeploymentItem]', wenn es außerhalb einer Testklasse oder Testmethode angewendet wird. - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + MSTest ignoriert '[DeploymentItem]', wenn es außerhalb einer Testklasse oder Testmethode angewendet wird. + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.es.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.es.xlf index d2912eaca5..fca3a53e97 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.es.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.es.xlf @@ -169,8 +169,8 @@ El tipo que declara estos métodos también debe respetar las reglas siguientes: Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - Desde MSTest 3.8, 'DynamicDataSourceType.AutoDetect' es el valor predeterminado e identifica automáticamente propiedades, métodos y campos, lo que reduce el nivel de detalle y el acoplamiento al tipo de miembro. - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + Desde MSTest 3.8, 'DynamicDataSourceType.AutoDetect' es el valor predeterminado e identifica automáticamente propiedades, métodos y campos, lo que reduce el nivel de detalle y el acoplamiento al tipo de miembro. + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -312,8 +312,8 @@ El tipo que declara estos métodos también debe respetar las reglas siguientes: 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - Los métodos 'CollectionAssert' tienen equivalentes 'Assert'. El uso de una API de aserción mejora la coherencia y la detectabilidad. - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + Los métodos 'CollectionAssert' tienen equivalentes 'Assert'. El uso de una API de aserción mejora la coherencia y la detectabilidad. + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ El tipo que declara estos métodos también debe respetar las reglas siguientes: The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - El elemento TestContext pasado a la inicialización de ensamblados o clases es específico de ese contexto y no se actualiza para cada ejecución de prueba. Si se reutiliza en un miembro 'static', se puede exponer un contexto obsoleto. - {Locked="TestContext"}{Locked="'static'"} + El elemento TestContext pasado a la inicialización de ensamblados o clases es específico de ese contexto y no se actualiza para cada ejecución de prueba. Si se reutiliza en un miembro 'static', se puede exponer un contexto obsoleto. + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest resuelve los atributos de ciclo de vida heredados "[TestInitialize]", "[TestCleanup]", "[ClassInitialize]" y "[ClassCleanup]", y los atributos de prueba "[TestMethod]" y "[DataTestMethod]", por su identidad de tipo de marco de trabajo exacta. Se cambió el nombre del ensamblado de marco de trabajo de "Microsoft.VisualStudio.TestPlatform.TestFramework" a "MSTest.TestFramework", por lo que una clase base compilada con una principal de MSTest diferente expone estos atributos con una identidad de tipo diferente. Cuando una clase de prueba compilada con otra versión hereda una base de este tipo, la instalación y limpieza heredadas no se ejecutan y no se detectan los métodos de prueba heredados, sin errores de compilación ni de detección. Vuelva a compilar el ensamblado base y, para los atributos personalizados, el ensamblado que define el atributo con la misma versión de MSTest que el proyecto de prueba. - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + MSTest resuelve los atributos de ciclo de vida heredados "[TestInitialize]", "[TestCleanup]", "[ClassInitialize]" y "[ClassCleanup]", y los atributos de prueba "[TestMethod]" y "[DataTestMethod]", por su identidad de tipo de marco de trabajo exacta. Se cambió el nombre del ensamblado de marco de trabajo de "Microsoft.VisualStudio.TestPlatform.TestFramework" a "MSTest.TestFramework", por lo que una clase base compilada con una principal de MSTest diferente expone estos atributos con una identidad de tipo diferente. Cuando una clase de prueba compilada con otra versión hereda una base de este tipo, la instalación y limpieza heredadas no se ejecutan y no se detectan los métodos de prueba heredados, sin errores de compilación ni de detección. Vuelva a compilar el ensamblado base y, para los atributos personalizados, el ensamblado que define el atributo con la misma versión de MSTest que el proyecto de prueba. + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ El tipo que declara estos métodos también debe respetar las reglas siguientes: 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail' hace explícito un error intencionado y permite que el mensaje de error documente por qué la prueba no puede continuar. - {Locked="'Assert.Fail'"} + 'Assert.Fail' hace explícito un error intencionado y permite que el mensaje de error documente por qué la prueba no puede continuar. + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ El tipo que declara estos métodos también debe respetar las reglas siguientes: Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - Los constructores permiten la inicialización a través de campos 'readonly' y proporcionan comentarios más seguros del compilador, especialmente con tipos de referencia que admiten un valor NULL. Esta regla de estilo de participación se excluye mutuamente con MSTEST0019. - {Locked="'readonly'"}{Locked="MSTEST0019"} + Los constructores permiten la inicialización a través de campos 'readonly' y proporcionan comentarios más seguros del compilador, especialmente con tipos de referencia que admiten un valor NULL. Esta regla de estilo de participación se excluye mutuamente con MSTEST0019. + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - 'Dispose' y 'DisposeAsync' siguen patrones de duración estándar de .NET, lo que hace que la limpieza de pruebas sea coherente con el código de producción. Esta regla de estilo de participación se excluye mutuamente con MSTEST0022. - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + 'Dispose' y 'DisposeAsync' siguen patrones de duración estándar de .NET, lo que hace que la limpieza de pruebas sea coherente con el código de producción. Esta regla de estilo de participación se excluye mutuamente con MSTEST0022. + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]' admite la limpieza asincrónica en marcos de destino donde 'IAsyncDisposable' no está disponible. Esta regla de estilo de participación se excluye mutuamente con MSTEST0021. - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + '[TestCleanup]' admite la limpieza asincrónica en marcos de destino donde 'IAsyncDisposable' no está disponible. Esta regla de estilo de participación se excluye mutuamente con MSTEST0021. + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]' admite la inicialización sincrónica y asincrónica, mientras que no se pueden esperar constructores. Esta regla de estilo de participación se excluye mutuamente con MSTEST0020. - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]' admite la inicialización sincrónica y asincrónica, mientras que no se pueden esperar constructores. Esta regla de estilo de participación se excluye mutuamente con MSTEST0020. + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -957,8 +957,8 @@ El tipo que declara estos métodos también debe respetar las reglas siguientes: 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - Los métodos 'StringAssert' tienen equivalentes 'Assert'. El uso de una API de aserción mejora la coherencia y la detectabilidad. - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + Los métodos 'StringAssert' tienen equivalentes 'Assert'. El uso de una API de aserción mejora la coherencia y la detectabilidad. + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ El tipo que declara estos métodos también debe respetar las reglas siguientes: MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - MSTest omite '[DeploymentItem]' cuando se aplica fuera de una clase de prueba o un método de prueba. - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + MSTest omite '[DeploymentItem]' cuando se aplica fuera de una clase de prueba o un método de prueba. + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.fr.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.fr.xlf index eddccf82be..fca9d7cfda 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.fr.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.fr.xlf @@ -169,8 +169,8 @@ Le type doit être une classe Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - Depuis MSTest 3.8, « DynamicDataSourceType.AutoDetect » est la valeur par défaut et identifie automatiquement les propriétés, les méthodes et les champs, ce qui réduit la verbosité et le couplage au type de membre. - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + Depuis MSTest 3.8, « DynamicDataSourceType.AutoDetect » est la valeur par défaut et identifie automatiquement les propriétés, les méthodes et les champs, ce qui réduit la verbosité et le couplage au type de membre. + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -313,7 +313,7 @@ Le type doit être une classe 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ Le type doit être une classe The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - Le TestContext transmis à l’initialisation de l’assembly ou de la classe est spécifique à ce contexte et n’est pas mis à jour pour chaque exécution de test. Sa réutilisation dans un membre « static » peut exposer un contexte obsolète. - {Locked="TestContext"}{Locked="'static'"} + Le TestContext transmis à l’initialisation de l’assembly ou de la classe est spécifique à ce contexte et n’est pas mis à jour pour chaque exécution de test. Sa réutilisation dans un membre « static » peut exposer un contexte obsolète. + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest résout les attributs de cycle de vie hérités « [TestInitialize] », « [TestCleanup] », « [ClassInitialize] » et « [ClassCleanup] », ainsi que les attributs de test « [TestMethod] » et « [DataTestMethod] », selon l’identité exacte de leur type d’infrastructure. L’assembly d’infrastructure a été renommé de « Microsoft.VisualStudio.TestPlatform.TestFramework » en « MSTest.TestFramework », si bien qu’une classe de base compilée avec une version majeure différente de MSTest expose ces attributs avec une identité de type différente. Lorsqu’une telle classe de base est héritée par une classe de test compilée avec une autre version, la configuration et le nettoyage hérités ne s’exécutent pas et les méthodes de test héritées ne sont pas détectées, sans erreur de compilation ni erreur de découverte. Recompilez l’assembly de base et, pour les attributs personnalisés, l’assembly qui définit l’attribut par rapport à la même version MSTest que le projet de test. - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + MSTest résout les attributs de cycle de vie hérités « [TestInitialize] », « [TestCleanup] », « [ClassInitialize] » et « [ClassCleanup] », ainsi que les attributs de test « [TestMethod] » et « [DataTestMethod] », selon l’identité exacte de leur type d’infrastructure. L’assembly d’infrastructure a été renommé de « Microsoft.VisualStudio.TestPlatform.TestFramework » en « MSTest.TestFramework », si bien qu’une classe de base compilée avec une version majeure différente de MSTest expose ces attributs avec une identité de type différente. Lorsqu’une telle classe de base est héritée par une classe de test compilée avec une autre version, la configuration et le nettoyage hérités ne s’exécutent pas et les méthodes de test héritées ne sont pas détectées, sans erreur de compilation ni erreur de découverte. Recompilez l’assembly de base et, pour les attributs personnalisés, l’assembly qui définit l’attribut par rapport à la même version MSTest que le projet de test. + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ Le type déclarant ces méthodes doit également respecter les règles suivantes 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - « Assert.Fail » rend explicite un échec intentionnel et permet au message d’échec d’expliquer pourquoi le test ne peut pas continuer. - {Locked="'Assert.Fail'"} + « Assert.Fail » rend explicite un échec intentionnel et permet au message d’échec d’expliquer pourquoi le test ne peut pas continuer. + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ Le type déclarant ces méthodes doit également respecter les règles suivantes Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - Les constructeurs autorisent l’initialisation via des champs « readonly » et fournissent un retour plus explicite du compilateur, en particulier avec les types référence nullables. Cette règle de style en acceptation est mutuellement exclusive avec MSTEST0019. - {Locked="'readonly'"}{Locked="MSTEST0019"} + Les constructeurs autorisent l’initialisation via des champs « readonly » et fournissent un retour plus explicite du compilateur, en particulier avec les types référence nullables. Cette règle de style en acceptation est mutuellement exclusive avec MSTEST0019. + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - « [TestCleanup] » prend en charge le nettoyage asynchrone sur les frameworks cibles où « IAsyncDisposable » n’est pas disponible. Cette règle de style en acceptation est mutuellement exclusive avec MSTEST0021. - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + « [TestCleanup] » prend en charge le nettoyage asynchrone sur les frameworks cibles où « IAsyncDisposable » n’est pas disponible. Cette règle de style en acceptation est mutuellement exclusive avec MSTEST0021. + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]' prend en charge l’initialisation synchrone et asynchrone, alors que les constructeurs ne peuvent pas être attendus. Cette règle de style en acceptation est mutuellement exclusive avec MSTEST0020. - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]' prend en charge l’initialisation synchrone et asynchrone, alors que les constructeurs ne peuvent pas être attendus. Cette règle de style en acceptation est mutuellement exclusive avec MSTEST0020. + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -958,7 +958,7 @@ Le type déclarant ces méthodes doit également respecter les règles suivantes 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ Le type doit être une classe MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - MSTest ignore « [DeploymentItem] » lorsqu’il est appliqué en dehors d’une classe ou d’une méthode de test. - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + MSTest ignore « [DeploymentItem] » lorsqu’il est appliqué en dehors d’une classe ou d’une méthode de test. + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf index 152c43f6d6..fe94b5cfe5 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf @@ -169,8 +169,8 @@ Anche il tipo che dichiara questi metodi deve rispettare le regole seguenti: Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - Da MSTest 3.8, 'DynamicDataSourceType.AutoDetect' è l'impostazione predefinita e identifica automaticamente proprietà, metodi e campi, riducendo la verbosità e il collegamento al tipo di membro. - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + Da MSTest 3.8, 'DynamicDataSourceType.AutoDetect' è l'impostazione predefinita e identifica automaticamente proprietà, metodi e campi, riducendo la verbosità e il collegamento al tipo di membro. + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -312,8 +312,8 @@ Anche il tipo che dichiara questi metodi deve rispettare le regole seguenti: 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - I metodi 'CollectionAssert' hanno controparti equivalenti in 'Assert'. L'uso di una sola API di asserzione migliora la coerenza e la facilità di individuazione. - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + I metodi 'CollectionAssert' hanno controparti equivalenti in 'Assert'. L'uso di una sola API di asserzione migliora la coerenza e la facilità di individuazione. + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ Anche il tipo che dichiara questi metodi deve rispettare le regole seguenti: The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - Il TestContext passato all'inizializzazione dell'assembly o della classe è specifico di quel contesto e non viene aggiornato per ogni esecuzione del test. Il suo riutilizzo in un membro 'static' può esporre un contesto obsoleto. - {Locked="TestContext"}{Locked="'static'"} + Il TestContext passato all'inizializzazione dell'assembly o della classe è specifico di quel contesto e non viene aggiornato per ogni esecuzione del test. Il suo riutilizzo in un membro 'static' può esporre un contesto obsoleto. + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest risolve gli attributi del ciclo di vita ereditati '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' e '[ClassCleanup]', e gli attributi di test '[TestMethod]' e '[DataTestMethod]', in base all'identità esatta del tipo del framework. L'assembly del framework è stato rinominato da 'Microsoft.VisualStudio.TestPlatform.TestFramework' in 'MSTest.TestFramework', quindi una classe di base compilata con una versione principale diversa di MSTest espone questi attributi con un'identità di tipo differente. Quando una base di questo tipo viene ereditata da una classe di test compilata con un'altra versione, le operazioni di configurazione e pulizia ereditate non vengono eseguite e i metodi di test ereditati non vengono individuati, senza errori di compilazione né di individuazione. Ricompilare l'assembly di base e, per gli attributi personalizzati, l'assembly che definisce l'attributo usando la stessa versione di MSTest del progetto di test. - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + MSTest risolve gli attributi del ciclo di vita ereditati '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' e '[ClassCleanup]', e gli attributi di test '[TestMethod]' e '[DataTestMethod]', in base all'identità esatta del tipo del framework. L'assembly del framework è stato rinominato da 'Microsoft.VisualStudio.TestPlatform.TestFramework' in 'MSTest.TestFramework', quindi una classe di base compilata con una versione principale diversa di MSTest espone questi attributi con un'identità di tipo differente. Quando una base di questo tipo viene ereditata da una classe di test compilata con un'altra versione, le operazioni di configurazione e pulizia ereditate non vengono eseguite e i metodi di test ereditati non vengono individuati, senza errori di compilazione né di individuazione. Ricompilare l'assembly di base e, per gli attributi personalizzati, l'assembly che definisce l'attributo usando la stessa versione di MSTest del progetto di test. + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ Anche il tipo che dichiara questi metodi deve rispettare le regole seguenti: 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail' rende esplicito un errore intenzionale e consente al messaggio di errore di documentare il motivo per cui il test non può continuare. - {Locked="'Assert.Fail'"} + 'Assert.Fail' rende esplicito un errore intenzionale e consente al messaggio di errore di documentare il motivo per cui il test non può continuare. + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ Anche il tipo che dichiara questi metodi deve rispettare le regole seguenti: Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - I costruttori consentono l'inizializzazione tramite campi 'readonly' e forniscono un feedback del compilatore più efficace, soprattutto con i tipi riferimento che ammettono i valori Null. Questa regola di stile facoltativa è mutuamente esclusiva con MSTEST0019. - {Locked="'readonly'"}{Locked="MSTEST0019"} + I costruttori consentono l'inizializzazione tramite campi 'readonly' e forniscono un feedback del compilatore più efficace, soprattutto con i tipi riferimento che ammettono i valori Null. Questa regola di stile facoltativa è mutuamente esclusiva con MSTEST0019. + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - 'Dispose' e 'DisposeAsync' seguono i modelli standard del ciclo di vita .NET, rendendo la pulizia dei test coerente con il codice di produzione. Questa regola di stile facoltativa è mutuamente esclusiva con MSTEST0022. - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + 'Dispose' e 'DisposeAsync' seguono i modelli standard del ciclo di vita .NET, rendendo la pulizia dei test coerente con il codice di produzione. Questa regola di stile facoltativa è mutuamente esclusiva con MSTEST0022. + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]' supporta la pulizia asincrona nei framework di destinazione in cui 'IAsyncDisposable' non è disponibile. Questa regola di stile facoltativa è mutuamente esclusiva con MSTEST0021. - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + '[TestCleanup]' supporta la pulizia asincrona nei framework di destinazione in cui 'IAsyncDisposable' non è disponibile. Questa regola di stile facoltativa è mutuamente esclusiva con MSTEST0021. + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]' supporta sia l'inizializzazione sincrona sia quella asincrona, mentre i costruttori non possono essere attesi. Questa regola di stile facoltativa è mutuamente esclusiva con MSTEST0020. - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]' supporta sia l'inizializzazione sincrona sia quella asincrona, mentre i costruttori non possono essere attesi. Questa regola di stile facoltativa è mutuamente esclusiva con MSTEST0020. + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -957,8 +957,8 @@ Anche il tipo che dichiara questi metodi deve rispettare le regole seguenti: 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - I metodi 'StringAssert' hanno controparti equivalenti in 'Assert'. L'uso di una sola API di asserzione migliora la coerenza e la facilità di individuazione. - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + I metodi 'StringAssert' hanno controparti equivalenti in 'Assert'. L'uso di una sola API di asserzione migliora la coerenza e la facilità di individuazione. + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ Anche il tipo che dichiara questi metodi deve rispettare le regole seguenti: MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - MSTest ignora '[DeploymentItem]' quando viene applicato al di fuori di una classe di test o di un metodo di test. - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + MSTest ignora '[DeploymentItem]' quando viene applicato al di fuori di una classe di test o di un metodo di test. + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf index ef06f4198f..8ac1ecd3d5 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf @@ -169,8 +169,8 @@ The type declaring these methods should also respect the following rules: Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - MSTest 3.8 以降では、'DynamicDataSourceType.AutoDetect' が既定値であり、プロパティ、メソッド、およびフィールドが自動的に識別されるため、冗長さとメンバーの種類への結合が減少します。 - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + MSTest 3.8 以降では、'DynamicDataSourceType.AutoDetect' が既定値であり、プロパティ、メソッド、およびフィールドが自動的に識別されるため、冗長さとメンバーの種類への結合が減少します。 + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -312,8 +312,8 @@ The type declaring these methods should also respect the following rules: 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - 'CollectionAssert' メソッドには、対応する同等の 'Assert' メソッドがあります。1 つのアサーション API を使用すると、一貫性と見つかりやすさが向上します。 - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + 'CollectionAssert' メソッドには、対応する同等の 'Assert' メソッドがあります。1 つのアサーション API を使用すると、一貫性と見つかりやすさが向上します。 + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ The type declaring these methods should also respect the following rules: The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - アセンブリまたはクラスの初期化に渡される TestContext は、そのコンテキストに固有であり、テストの実行ごとに更新されません。'static' メンバーで再利用すると、古いコンテキストが公開される可能性があります。 - {Locked="TestContext"}{Locked="'static'"} + アセンブリまたはクラスの初期化に渡される TestContext は、そのコンテキストに固有であり、テストの実行ごとに更新されません。'static' メンバーで再利用すると、古いコンテキストが公開される可能性があります。 + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest では、継承されたライフサイクル属性 '[TestInitialize]'、'[TestCleanup]'、'[ClassInitialize]'、'[ClassCleanup]' と、テスト属性 '[TestMethod]' および '[DataTestMethod]' が、厳密なフレームワークの型 ID で解決されます。フレームワーク アセンブリは 'Microsoft.VisualStudio.TestPlatform.TestFramework' から 'MSTest.TestFramework' に名前が変更されたため、異なる MSTest のメジャーに対してコンパイルされた基底クラスでは、異なる型 ID でこれらの属性が公開されます。こうした基底のものが、別のバージョンに対してコンパイルされたテスト クラスによって継承されると、継承されたセットアップとクリーンアップは実行されず、継承されたテスト メソッドは検出されず、ビルド エラーも検出エラーも発生しません。基本アセンブリと、カスタム属性の場合はその属性を定義しているアセンブリを、テスト プロジェクトと同じバージョンの MSTest に対して再コンパイルします。 - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + MSTest では、継承されたライフサイクル属性 '[TestInitialize]'、'[TestCleanup]'、'[ClassInitialize]'、'[ClassCleanup]' と、テスト属性 '[TestMethod]' および '[DataTestMethod]' が、厳密なフレームワークの型 ID で解決されます。フレームワーク アセンブリは 'Microsoft.VisualStudio.TestPlatform.TestFramework' から 'MSTest.TestFramework' に名前が変更されたため、異なる MSTest のメジャーに対してコンパイルされた基底クラスでは、異なる型 ID でこれらの属性が公開されます。こうした基底のものが、別のバージョンに対してコンパイルされたテスト クラスによって継承されると、継承されたセットアップとクリーンアップは実行されず、継承されたテスト メソッドは検出されず、ビルド エラーも検出エラーも発生しません。基本アセンブリと、カスタム属性の場合はその属性を定義しているアセンブリを、テスト プロジェクトと同じバージョンの MSTest に対して再コンパイルします。 + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ The type declaring these methods should also respect the following rules: 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail' は意図的な失敗を明示し、エラー メッセージでテストを続行できない理由を文書化できるようにします。 - {Locked="'Assert.Fail'"} + 'Assert.Fail' は意図的な失敗を明示し、エラー メッセージでテストを続行できない理由を文書化できるようにします。 + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ The type declaring these methods should also respect the following rules: Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - コンストラクターを使用すると、'readonly' フィールドを使用して初期化でき、特に null 許容参照型では、より強力なコンパイラ フィードバックが得られます。このオプトイン スタイル ルールは、MSTEST0019 と相互に排他的です。 - {Locked="'readonly'"}{Locked="MSTEST0019"} + コンストラクターを使用すると、'readonly' フィールドを使用して初期化でき、特に null 許容参照型では、より強力なコンパイラ フィードバックが得られます。このオプトイン スタイル ルールは、MSTEST0019 と相互に排他的です。 + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - 'Dispose' と 'DisposeAsync' は標準の .NET 有効期間パターンに従い、テストのクリーンアップを運用コードと一貫性のあるものにしています。このオプトイン スタイル ルールは、MSTEST0022 と相互に排他的です。 - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + 'Dispose' と 'DisposeAsync' は標準の .NET 有効期間パターンに従い、テストのクリーンアップを運用コードと一貫性のあるものにしています。このオプトイン スタイル ルールは、MSTEST0022 と相互に排他的です。 + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]' は、'IAsyncDisposable' を使用できないターゲット フレームワークでの非同期クリーンアップをサポートしています。このオプトイン スタイル ルールは、MSTEST0021 と相互に排他的です。 - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + '[TestCleanup]' は、'IAsyncDisposable' を使用できないターゲット フレームワークでの非同期クリーンアップをサポートしています。このオプトイン スタイル ルールは、MSTEST0021 と相互に排他的です。 + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]' は同期および非同期初期化の両方をサポートしていますが、コンストラクターを待機することはできません。このオプトイン スタイル ルールは、MSTEST0020 と相互に排他的です。 - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]' は同期および非同期初期化の両方をサポートしていますが、コンストラクターを待機することはできません。このオプトイン スタイル ルールは、MSTEST0020 と相互に排他的です。 + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -957,8 +957,8 @@ The type declaring these methods should also respect the following rules: 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - 'StringAssert' メソッドには、対応する同等の 'Assert' メソッドがあります。1 つのアサーション API を使用すると、一貫性と見つかりやすさが向上します。 - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + 'StringAssert' メソッドには、対応する同等の 'Assert' メソッドがあります。1 つのアサーション API を使用すると、一貫性と見つかりやすさが向上します。 + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ The type declaring these methods should also respect the following rules: MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - MSTest は、テスト クラスまたはテスト メソッドの外で適用されている '[DeploymentItem]' を無視します。 - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + MSTest は、テスト クラスまたはテスト メソッドの外で適用されている '[DeploymentItem]' を無視します。 + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf index c779ef0e35..823819777b 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf @@ -169,8 +169,8 @@ The type declaring these methods should also respect the following rules: Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - MSTest 3.8부터 'DynamicDataSourceType.AutoDetect'는 기본값이며 속성, 메서드 및 필드를 자동으로 식별하여 세부 정보 표시 및 멤버 종류와의 결합을 줄입니다. - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + MSTest 3.8부터 'DynamicDataSourceType.AutoDetect'는 기본값이며 속성, 메서드 및 필드를 자동으로 식별하여 세부 정보 표시 및 멤버 종류와의 결합을 줄입니다. + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -312,8 +312,8 @@ The type declaring these methods should also respect the following rules: 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - 'CollectionAssert' 메서드에는 동등한 'Assert' 대응 메서드가 있습니다. 하나의 어설션 API를 사용하면 일관성과 검색 가능성이 개선됩니다. - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + 'CollectionAssert' 메서드에는 동등한 'Assert' 대응 메서드가 있습니다. 하나의 어설션 API를 사용하면 일관성과 검색 가능성이 개선됩니다. + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ The type declaring these methods should also respect the following rules: The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - 어셈블리 또는 클래스 초기화에 전달된 TestContext는 해당 컨텍스트에 한정되며 각 테스트가 실행될 때마다 업데이트되지 않습니다. 'static' 멤버에서 다시 사용하면 오래된 컨텍스트가 노출될 수 있습니다. - {Locked="TestContext"}{Locked="'static'"} + 어셈블리 또는 클래스 초기화에 전달된 TestContext는 해당 컨텍스트에 한정되며 각 테스트가 실행될 때마다 업데이트되지 않습니다. 'static' 멤버에서 다시 사용하면 오래된 컨텍스트가 노출될 수 있습니다. + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest는 상속된 수명 주기 특성 '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]', '[ClassCleanup]'와 테스트 특성 '[TestMethod]', '[DataTestMethod]'를 정확한 프레임워크 형식 ID로 확인합니다. 프레임워크 어셈블리 이름은 'Microsoft.VisualStudio.TestPlatform.TestFramework'에서 'MSTest.TestFramework'로 변경되었으므로, 다른 MSTest 주요 버전에 맞춰 컴파일된 기본 클래스는 이러한 특성을 다른 형식 ID로 노출합니다. 이런 기본 클래스를 다른 버전에 맞춰 컴파일된 테스트 클래스가 상속하면, 상속된 설정과 정리 메서드는 실행되지 않고 상속된 테스트 메서드도 검색되지 않으며, 이때 빌드 오류와 검색 오류는 발생하지 않습니다. 기본 어셈블리와, 사용자 지정 특성의 경우 해당 특성을 정의하는 어셈블리를 테스트 프로젝트와 동일한 MSTest 버전에 맞춰 다시 컴파일하세요. - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + MSTest는 상속된 수명 주기 특성 '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]', '[ClassCleanup]'와 테스트 특성 '[TestMethod]', '[DataTestMethod]'를 정확한 프레임워크 형식 ID로 확인합니다. 프레임워크 어셈블리 이름은 'Microsoft.VisualStudio.TestPlatform.TestFramework'에서 'MSTest.TestFramework'로 변경되었으므로, 다른 MSTest 주요 버전에 맞춰 컴파일된 기본 클래스는 이러한 특성을 다른 형식 ID로 노출합니다. 이런 기본 클래스를 다른 버전에 맞춰 컴파일된 테스트 클래스가 상속하면, 상속된 설정과 정리 메서드는 실행되지 않고 상속된 테스트 메서드도 검색되지 않으며, 이때 빌드 오류와 검색 오류는 발생하지 않습니다. 기본 어셈블리와, 사용자 지정 특성의 경우 해당 특성을 정의하는 어셈블리를 테스트 프로젝트와 동일한 MSTest 버전에 맞춰 다시 컴파일하세요. + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ The type declaring these methods should also respect the following rules: 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail'은 의도적인 실패를 명시적으로 나타내고 실패 메시지가 테스트를 계속할 수 없는 이유를 문서화할 수 있도록 합니다. - {Locked="'Assert.Fail'"} + 'Assert.Fail'은 의도적인 실패를 명시적으로 나타내고 실패 메시지가 테스트를 계속할 수 없는 이유를 문서화할 수 있도록 합니다. + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ The type declaring these methods should also respect the following rules: Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - 생성자는 'readonly' 필드를 통해 초기화를 허용하고 특히 null 허용 참조 형식에서 더 강력한 컴파일러 피드백을 제공합니다. 이 옵트인 스타일 규칙은 MSTEST0019와 상호 배타적입니다. - {Locked="'readonly'"}{Locked="MSTEST0019"} + 생성자는 'readonly' 필드를 통해 초기화를 허용하고 특히 null 허용 참조 형식에서 더 강력한 컴파일러 피드백을 제공합니다. 이 옵트인 스타일 규칙은 MSTEST0019와 상호 배타적입니다. + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - 'Dispose' 및 'DisposeAsync'는 표준 .NET 수명 주기 패턴을 따르므로 테스트 정리 작업을 프로덕션 코드와 일관되게 수행할 수 있습니다. 이 옵트인 스타일 규칙은 MSTEST0022와 상호 배타적입니다. - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + 'Dispose' 및 'DisposeAsync'는 표준 .NET 수명 주기 패턴을 따르므로 테스트 정리 작업을 프로덕션 코드와 일관되게 수행할 수 있습니다. 이 옵트인 스타일 규칙은 MSTEST0022와 상호 배타적입니다. + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]'은 'IAsyncDisposable'을 사용할 수 없는 대상 프레임워크에서 비동기 정리를 지원합니다. 이 옵트인 스타일 규칙은 MSTEST0021과 상호 배타적입니다. - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + '[TestCleanup]'은 'IAsyncDisposable'을 사용할 수 없는 대상 프레임워크에서 비동기 정리를 지원합니다. 이 옵트인 스타일 규칙은 MSTEST0021과 상호 배타적입니다. + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]'는 동기 및 비동기 초기화를 모두 지원하는 반면 생성자는 대기할 수 없습니다. 이 옵트인 스타일 규칙은 MSTEST0020과 상호 배타적입니다. - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]'는 동기 및 비동기 초기화를 모두 지원하는 반면 생성자는 대기할 수 없습니다. 이 옵트인 스타일 규칙은 MSTEST0020과 상호 배타적입니다. + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -957,8 +957,8 @@ The type declaring these methods should also respect the following rules: 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - 'StringAssert' 메서드에는 동등한 'Assert' 대응 메서드가 있습니다. 하나의 어설션 API를 사용하면 일관성과 검색 가능성이 개선됩니다. - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + 'StringAssert' 메서드에는 동등한 'Assert' 대응 메서드가 있습니다. 하나의 어설션 API를 사용하면 일관성과 검색 가능성이 개선됩니다. + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ The type declaring these methods should also respect the following rules: MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - MSTest는 테스트 클래스나 테스트 메서드 외부에 적용된 경우 '[DeploymentItem]'을 무시합니다. - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + MSTest는 테스트 클래스나 테스트 메서드 외부에 적용된 경우 '[DeploymentItem]'을 무시합니다. + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf index 8a87606758..6f58b05d14 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf @@ -169,8 +169,8 @@ Typ deklarujący te metody powinien również przestrzegać następujących regu Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - Od MSTest 3.8 'DynamicDataSourceType.AutoDetect' jest wartością domyślną i automatycznie rozpoznaje właściwości, metody i pola, zmniejszając szczegółowość oraz zależność od rodzaju składowej. - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + Od MSTest 3.8 'DynamicDataSourceType.AutoDetect' jest wartością domyślną i automatycznie rozpoznaje właściwości, metody i pola, zmniejszając szczegółowość oraz zależność od rodzaju składowej. + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -312,8 +312,8 @@ Typ deklarujący te metody powinien również przestrzegać następujących regu 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - Metody 'CollectionAssert' mają równoważne odpowiedniki 'Assert'. Używanie jednego interfejsu API do asercji poprawia spójność i odnajdywanie. - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + Metody 'CollectionAssert' mają równoważne odpowiedniki 'Assert'. Używanie jednego interfejsu API do asercji poprawia spójność i odnajdywanie. + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ Typ deklarujący te metody powinien również przestrzegać następujących regu The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - TestContext przekazany do inicjalizacji zestawu lub klasy jest specyficzny dla tego kontekstu i nie jest aktualizowany dla każdego uruchomienia testu. Ponowne użycie go w składowej 'static' może ujawnić nieaktualny kontekst. - {Locked="TestContext"}{Locked="'static'"} + TestContext przekazany do inicjalizacji zestawu lub klasy jest specyficzny dla tego kontekstu i nie jest aktualizowany dla każdego uruchomienia testu. Ponowne użycie go w składowej 'static' może ujawnić nieaktualny kontekst. + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - Narzędzie MSTest rozpoznaje dziedziczone atrybuty cyklu życia „[TestInitialize]”, „[TestCleanup]”, „[ClassInitialize]” i „[ClassCleanup]” oraz atrybuty testowe „[TestMethod]” i „[DataTestMethod]” według ich dokładnej tożsamości typu struktury. Nazwa zestawu struktury została zmieniona z „Microsoft.VisualStudio.TestPlatform.TestFramework” na „MSTest.TestFramework”, więc klasa bazowa skompilowana względem innego elementu głównego MSTest uwidacznia te atrybuty z inną tożsamością typu. Jeśli taka podstawa jest dziedziczona przez klasę testową skompilowaną z inną wersją, dziedziczona konfiguracja i oczyszczanie nie są uruchamiane, a dziedziczone metody testowe nie są odnajdowane, są pozbawione błędów kompilacji i błędów odnajdowania. Ponownie skompiluj zestaw podstawowy i w przypadku atrybutów niestandardowych zestaw definiujący atrybut względem tej samej wersji narzędzia MSTest co projekt testowy. - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + Narzędzie MSTest rozpoznaje dziedziczone atrybuty cyklu życia „[TestInitialize]”, „[TestCleanup]”, „[ClassInitialize]” i „[ClassCleanup]” oraz atrybuty testowe „[TestMethod]” i „[DataTestMethod]” według ich dokładnej tożsamości typu struktury. Nazwa zestawu struktury została zmieniona z „Microsoft.VisualStudio.TestPlatform.TestFramework” na „MSTest.TestFramework”, więc klasa bazowa skompilowana względem innego elementu głównego MSTest uwidacznia te atrybuty z inną tożsamością typu. Jeśli taka podstawa jest dziedziczona przez klasę testową skompilowaną z inną wersją, dziedziczona konfiguracja i oczyszczanie nie są uruchamiane, a dziedziczone metody testowe nie są odnajdowane, są pozbawione błędów kompilacji i błędów odnajdowania. Ponownie skompiluj zestaw podstawowy i w przypadku atrybutów niestandardowych zestaw definiujący atrybut względem tej samej wersji narzędzia MSTest co projekt testowy. + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ Typ deklarujący te metody powinien również przestrzegać następujących regu 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail' jawnie oznacza celowe niepowodzenie i pozwala komunikatowi o błędzie wyjaśnić, dlaczego test nie może być kontynuowany. - {Locked="'Assert.Fail'"} + 'Assert.Fail' jawnie oznacza celowe niepowodzenie i pozwala komunikatowi o błędzie wyjaśnić, dlaczego test nie może być kontynuowany. + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ Typ deklarujący te metody powinien również przestrzegać następujących regu Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - Konstruktory umożliwiają inicjowanie za pomocą pól 'readonly' i zapewniają lepsze informacje zwrotne od kompilatora, zwłaszcza w przypadku typów referencyjnych dopuszczających wartość null. Ta reguła stylu zgody na uczestnictwo wyklucza się wzajemnie z MSTEST0019. - {Locked="'readonly'"}{Locked="MSTEST0019"} + Konstruktory umożliwiają inicjowanie za pomocą pól 'readonly' i zapewniają lepsze informacje zwrotne od kompilatora, zwłaszcza w przypadku typów referencyjnych dopuszczających wartość null. Ta reguła stylu zgody na uczestnictwo wyklucza się wzajemnie z MSTEST0019. + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - 'Dispose' i 'DisposeAsync' są zgodne ze standardowymi wzorcami cyklu życia w .NET, dzięki czemu czyszczenie testów jest spójne z kodem produkcyjnym. Ta reguła stylu zgody na uczestnictwo wyklucza się wzajemnie z MSTEST0022. - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + 'Dispose' i 'DisposeAsync' są zgodne ze standardowymi wzorcami cyklu życia w .NET, dzięki czemu czyszczenie testów jest spójne z kodem produkcyjnym. Ta reguła stylu zgody na uczestnictwo wyklucza się wzajemnie z MSTEST0022. + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]' obsługuje asynchroniczne czyszczenie na platformach docelowych, na których 'IAsyncDisposable' jest niedostępny. Ta reguła stylu zgody na uczestnictwo wyklucza się wzajemnie z MSTEST0021. - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + '[TestCleanup]' obsługuje asynchroniczne czyszczenie na platformach docelowych, na których 'IAsyncDisposable' jest niedostępny. Ta reguła stylu zgody na uczestnictwo wyklucza się wzajemnie z MSTEST0021. + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]' obsługuje inicjowanie synchroniczne i asynchroniczne, natomiast nie należy oczekiwać konstruktorów. Ta reguła stylu zgody na uczestnictwo wyklucza się wzajemnie z MSTEST0020. - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]' obsługuje inicjowanie synchroniczne i asynchroniczne, natomiast nie należy oczekiwać konstruktorów. Ta reguła stylu zgody na uczestnictwo wyklucza się wzajemnie z MSTEST0020. + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -957,8 +957,8 @@ Typ deklarujący te metody powinien również przestrzegać następujących regu 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - Metody 'StringAssert' mają równoważne odpowiedniki 'Assert'. Używanie jednego interfejsu API do asercji poprawia spójność i odnajdywanie. - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + Metody 'StringAssert' mają równoważne odpowiedniki 'Assert'. Używanie jednego interfejsu API do asercji poprawia spójność i odnajdywanie. + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ Typ deklarujący te metody powinien również przestrzegać następujących regu MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - MSTest ignoruje '[DeploymentItem]', gdy jest on używany poza klasą testową lub metodą testową. - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + MSTest ignoruje '[DeploymentItem]', gdy jest on używany poza klasą testową lub metodą testową. + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf index ac07322f11..00b74e5715 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf @@ -169,8 +169,8 @@ O tipo que declara esses métodos também deve respeitar as seguintes regras: Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - Desde o MSTest 3.8, 'DynamicDataSourceType.AutoDetect' é o padrão e identifica automaticamente propriedades, métodos e campos, reduzindo a verbosidade e o acoplamento ao tipo de membro. - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + Desde o MSTest 3.8, 'DynamicDataSourceType.AutoDetect' é o padrão e identifica automaticamente propriedades, métodos e campos, reduzindo a verbosidade e o acoplamento ao tipo de membro. + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -312,8 +312,8 @@ O tipo que declara esses métodos também deve respeitar as seguintes regras: 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - Os métodos 'CollectionAssert' têm equivalentes em 'Assert'. O uso de uma API de declaração melhora a consistência e a capacidade de descoberta. - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + Os métodos 'CollectionAssert' têm equivalentes em 'Assert'. O uso de uma API de declaração melhora a consistência e a capacidade de descoberta. + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ O tipo que declara esses métodos também deve respeitar as seguintes regras: The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - O TestContext passado para a inicialização do assembly ou da classe é específico desse contexto e não é atualizado para cada execução de teste. Reutilizá-lo em um membro 'static' pode expor um contexto obsoleto. - {Locked="TestContext"}{Locked="'static'"} + O TestContext passado para a inicialização do assembly ou da classe é específico desse contexto e não é atualizado para cada execução de teste. Reutilizá-lo em um membro 'static' pode expor um contexto obsoleto. + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - O MSTest resolve os atributos de ciclo de vida herdados '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' e '[ClassCleanup]' e os atributos de teste '[TestMethod]' e '[DataTestMethod]' pela identidade exata do tipo de estrutura. O assembly da estrutura foi renomeado de 'Microsoft.VisualStudio.TestPlatform.TestFramework' para 'MSTest.TestFramework', portanto uma classe base compilada com uma versão principal diferente do MSTest expõe esses atributos com uma identidade de tipo diferente. Quando essa base é herdada por uma classe de teste compilada com outra versão, a configuração e a limpeza herdadas não são executadas e os métodos de teste herdados não são descobertos, sem erro de build nem erro de descoberta. Recompile o assembly base e, para atributos personalizados, o assembly que define o atributo na mesma versão do MSTest que o projeto de teste. - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + O MSTest resolve os atributos de ciclo de vida herdados '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' e '[ClassCleanup]' e os atributos de teste '[TestMethod]' e '[DataTestMethod]' pela identidade exata do tipo de estrutura. O assembly da estrutura foi renomeado de 'Microsoft.VisualStudio.TestPlatform.TestFramework' para 'MSTest.TestFramework', portanto uma classe base compilada com uma versão principal diferente do MSTest expõe esses atributos com uma identidade de tipo diferente. Quando essa base é herdada por uma classe de teste compilada com outra versão, a configuração e a limpeza herdadas não são executadas e os métodos de teste herdados não são descobertos, sem erro de build nem erro de descoberta. Recompile o assembly base e, para atributos personalizados, o assembly que define o atributo na mesma versão do MSTest que o projeto de teste. + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ O tipo que declara esses métodos também deve respeitar as seguintes regras: 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail' torna explícita uma falha intencional e permite que a mensagem de falha documente por que o teste não pode continuar. - {Locked="'Assert.Fail'"} + 'Assert.Fail' torna explícita uma falha intencional e permite que a mensagem de falha documente por que o teste não pode continuar. + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ O tipo que declara esses métodos também deve respeitar as seguintes regras: Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - Os construtores permitem a inicialização por meio de campos 'readonly' e fornecem melhor feedback do compilador, especialmente com tipos de referência anuláveis. Esta regra de estilo de aceitação é mutuamente exclusiva com MSTEST0019. - {Locked="'readonly'"}{Locked="MSTEST0019"} + Os construtores permitem a inicialização por meio de campos 'readonly' e fornecem melhor feedback do compilador, especialmente com tipos de referência anuláveis. Esta regra de estilo de aceitação é mutuamente exclusiva com MSTEST0019. + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - 'Dispose' e 'DisposeAsync' seguem padrões de tempo de vida padrão do .NET, tornando a limpeza de teste consistente com o código de produção. Esta regra de estilo de aceitação é mutuamente exclusiva com MSTEST0022. - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + 'Dispose' e 'DisposeAsync' seguem padrões de tempo de vida padrão do .NET, tornando a limpeza de teste consistente com o código de produção. Esta regra de estilo de aceitação é mutuamente exclusiva com MSTEST0022. + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]' dá suporte à limpeza assíncrona em frameworks de destino nos quais 'IAsyncDisposable' não está disponível. Esta regra de estilo de aceitação é mutuamente exclusiva com MSTEST0021. - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + '[TestCleanup]' dá suporte à limpeza assíncrona em frameworks de destino nos quais 'IAsyncDisposable' não está disponível. Esta regra de estilo de aceitação é mutuamente exclusiva com MSTEST0021. + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]' dá suporte à inicialização síncrona e assíncrona, enquanto os construtores não podem ser aguardados. Esta regra de estilo de aceitação é mutuamente exclusiva com MSTEST0020. - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]' dá suporte à inicialização síncrona e assíncrona, enquanto os construtores não podem ser aguardados. Esta regra de estilo de aceitação é mutuamente exclusiva com MSTEST0020. + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -957,8 +957,8 @@ O tipo que declara esses métodos também deve respeitar as seguintes regras: 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - Os métodos 'StringAssert' têm equivalentes em 'Assert'. O uso de uma API de declaração melhora a consistência e a capacidade de descoberta. - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + Os métodos 'StringAssert' têm equivalentes em 'Assert'. O uso de uma API de declaração melhora a consistência e a capacidade de descoberta. + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ O tipo que declara esses métodos também deve respeitar as seguintes regras: MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - MSTest ignora '[DeploymentItem]' quando ele é aplicado fora de uma classe de teste ou método de teste. - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + MSTest ignora '[DeploymentItem]' quando ele é aplicado fora de uma classe de teste ou método de teste. + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ru.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ru.xlf index 6a6c01ee5a..146841e755 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ru.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ru.xlf @@ -169,8 +169,8 @@ The type declaring these methods should also respect the following rules: Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - Начиная с MSTest 3.8, 'DynamicDataSourceType.AutoDetect' используется по умолчанию и автоматически определяет свойства, методы и поля, уменьшая многословность и зависимость от вида элемента. - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + Начиная с MSTest 3.8, 'DynamicDataSourceType.AutoDetect' используется по умолчанию и автоматически определяет свойства, методы и поля, уменьшая многословность и зависимость от вида элемента. + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -312,8 +312,8 @@ The type declaring these methods should also respect the following rules: 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - Методы 'CollectionAssert' имеют эквивалентные аналоги в 'Assert'. Использование одного API утверждений улучшает согласованность и возможность обнаружения. - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + Методы 'CollectionAssert' имеют эквивалентные аналоги в 'Assert'. Использование одного API утверждений улучшает согласованность и возможность обнаружения. + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ The type declaring these methods should also respect the following rules: The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - TestContext, переданный для инициализации сборки или класса, относится только к этому контексту и не обновляется при каждом выполнении теста. Его повторное использование в элементе 'static' может привести к предоставлению устаревшего контекста. - {Locked="TestContext"}{Locked="'static'"} + TestContext, переданный для инициализации сборки или класса, относится только к этому контексту и не обновляется при каждом выполнении теста. Его повторное использование в элементе 'static' может привести к предоставлению устаревшего контекста. + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest сопоставляет унаследованные атрибуты жизненного цикла "[TestInitialize]", "[TestCleanup]", "[ClassInitialize]" и "[ClassCleanup]", а также тестовые атрибуты "[TestMethod]" и "[DataTestMethod]" по их точному удостоверению типа в рамках платформы. Имя сборки платформы было изменено с "Microsoft.VisualStudio.TestPlatform.TestFramework" на "MSTest.TestFramework", поэтому базовый класс, скомпилированный для другой основной версии MSTest, предоставляет эти атрибуты с другим удостоверением типа. Если такой базовый класс наследуется классом теста, скомпилированным для другой версии, унаследованные действия настройки и очистки не выполняются, а унаследованные методы теста не обнаруживаются, при этом нет ни ошибки сборки, ни ошибки обнаружения. Перекомпилируйте базовую сборку, а для пользовательских атрибутов — сборку, в которой определен атрибут, с той же версией MSTest, что и тестовый проект. - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + MSTest сопоставляет унаследованные атрибуты жизненного цикла "[TestInitialize]", "[TestCleanup]", "[ClassInitialize]" и "[ClassCleanup]", а также тестовые атрибуты "[TestMethod]" и "[DataTestMethod]" по их точному удостоверению типа в рамках платформы. Имя сборки платформы было изменено с "Microsoft.VisualStudio.TestPlatform.TestFramework" на "MSTest.TestFramework", поэтому базовый класс, скомпилированный для другой основной версии MSTest, предоставляет эти атрибуты с другим удостоверением типа. Если такой базовый класс наследуется классом теста, скомпилированным для другой версии, унаследованные действия настройки и очистки не выполняются, а унаследованные методы теста не обнаруживаются, при этом нет ни ошибки сборки, ни ошибки обнаружения. Перекомпилируйте базовую сборку, а для пользовательских атрибутов — сборку, в которой определен атрибут, с той же версией MSTest, что и тестовый проект. + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ The type declaring these methods should also respect the following rules: 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail' явно указывает на намеренный сбой и позволяет с помощью сообщения о сбое задокументировать, почему невозможно продолжить тест. - {Locked="'Assert.Fail'"} + 'Assert.Fail' явно указывает на намеренный сбой и позволяет с помощью сообщения о сбое задокументировать, почему невозможно продолжить тест. + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ The type declaring these methods should also respect the following rules: Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - Конструкторы позволяют выполнять инициализацию через поля 'readonly' и обеспечивают более надежную обратную связь от компилятора, особенно при использовании ссылочных типов, допускающих значение null. Это правило согласия на стиль является взаимоисключающим с MSTEST0019. - {Locked="'readonly'"}{Locked="MSTEST0019"} + Конструкторы позволяют выполнять инициализацию через поля 'readonly' и обеспечивают более надежную обратную связь от компилятора, особенно при использовании ссылочных типов, допускающих значение null. Это правило согласия на стиль является взаимоисключающим с MSTEST0019. + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - 'Dispose' и 'DisposeAsync' следуют стандартным шаблонам жизненного цикла .NET, что делает очистку тестов согласованной с кодом рабочей среды. Это правило согласия на стиль является взаимоисключающим с MSTEST0022. - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + 'Dispose' и 'DisposeAsync' следуют стандартным шаблонам жизненного цикла .NET, что делает очистку тестов согласованной с кодом рабочей среды. Это правило согласия на стиль является взаимоисключающим с MSTEST0022. + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]' поддерживает асинхронную очистку на целевых платформах, где 'IAsyncDisposable' недоступен. Это правило согласия на стиль является взаимоисключающим с MSTEST0021. - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + '[TestCleanup]' поддерживает асинхронную очистку на целевых платформах, где 'IAsyncDisposable' недоступен. Это правило согласия на стиль является взаимоисключающим с MSTEST0021. + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]' поддерживает как синхронную, так и асинхронную инициализацию, тогда как конструкторы нельзя ожидать. Это правило согласия на стиль является взаимоисключающим с MSTEST0020. - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]' поддерживает как синхронную, так и асинхронную инициализацию, тогда как конструкторы нельзя ожидать. Это правило согласия на стиль является взаимоисключающим с MSTEST0020. + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -957,8 +957,8 @@ The type declaring these methods should also respect the following rules: 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - Методы 'StringAssert' имеют эквивалентные аналоги в 'Assert'. Использование одного API утверждений улучшает согласованность и возможность обнаружения. - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + Методы 'StringAssert' имеют эквивалентные аналоги в 'Assert'. Использование одного API утверждений улучшает согласованность и возможность обнаружения. + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ The type declaring these methods should also respect the following rules: MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - MSTest игнорирует '[DeploymentItem]', если его применяют вне класса теста или метода теста. - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + MSTest игнорирует '[DeploymentItem]', если его применяют вне класса теста или метода теста. + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.tr.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.tr.xlf index 782f411411..c0abb3b751 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.tr.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.tr.xlf @@ -169,8 +169,8 @@ Bu yöntemleri bildiren tipin ayrıca aşağıdaki kurallara uyması gerekir: Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - MSTest 3.8'den itibaren 'DynamicDataSourceType.AutoDetect' varsayılandır ve özellikleri, yöntemleri ve alanları otomatik olarak tanımlayarak ayrıntı düzeyini ve üye türüne olan bağımlılığı azaltır. - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + MSTest 3.8'den itibaren 'DynamicDataSourceType.AutoDetect' varsayılandır ve özellikleri, yöntemleri ve alanları otomatik olarak tanımlayarak ayrıntı düzeyini ve üye türüne olan bağımlılığı azaltır. + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -312,8 +312,8 @@ Bu yöntemleri bildiren tipin ayrıca aşağıdaki kurallara uyması gerekir: 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - 'CollectionAssert' yöntemlerinin eşdeğer 'Assert' karşılıkları vardır. Bir onaylama API'si kullanmak tutarlılığı ve bulunabilirliği artırır. - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + 'CollectionAssert' yöntemlerinin eşdeğer 'Assert' karşılıkları vardır. Bir onaylama API'si kullanmak tutarlılığı ve bulunabilirliği artırır. + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ Bu yöntemleri bildiren tipin ayrıca aşağıdaki kurallara uyması gerekir: The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - Derleme veya sınıf başlatma için geçirilen TestContext, bu bağlama özgüdür ve her test çalıştırmasında güncellenmez. Bunu 'static' bir üyede yeniden kullanmak eski bağlamı açığa çıkarabilir. - {Locked="TestContext"}{Locked="'static'"} + Derleme veya sınıf başlatma için geçirilen TestContext, bu bağlama özgüdür ve her test çalıştırmasında güncellenmez. Bunu 'static' bir üyede yeniden kullanmak eski bağlamı açığa çıkarabilir. + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest, devralınan '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' ve '[ClassCleanup]' yaşam döngüsü öznitelikleri ile '[TestMethod]' ve '[DataTestMethod]' test özniteliklerini tam çerçeve türü kimliklerine göre çözümler. Çerçeve derlemesinin 'Microsoft.VisualStudio.TestPlatform.TestFramework' adı 'MSTest.TestFramework' olarak değiştirildi, bu nedenle farklı bir MSTest ana sürümüne göre derlenen bir temel sınıf bu öznitelikleri farklı bir tür kimliğiyle kullanıma sunuyor. Böyle bir temel, başka bir sürüme göre derlenmiş bir test sınıfı tarafından devralındığında, devralınan kurulum ve temizleme çalışmaz, ayrıca devralınan test yöntemleri bulunmaz ve derleme hatası ve keşif hatası oluşmaz. Temel derlemeyi ve özel öznitelikler için özniteliği tanımlayan derlemeyi, test projesiyle aynı MSTest sürümünde yeniden derleyin. - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + MSTest, devralınan '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' ve '[ClassCleanup]' yaşam döngüsü öznitelikleri ile '[TestMethod]' ve '[DataTestMethod]' test özniteliklerini tam çerçeve türü kimliklerine göre çözümler. Çerçeve derlemesinin 'Microsoft.VisualStudio.TestPlatform.TestFramework' adı 'MSTest.TestFramework' olarak değiştirildi, bu nedenle farklı bir MSTest ana sürümüne göre derlenen bir temel sınıf bu öznitelikleri farklı bir tür kimliğiyle kullanıma sunuyor. Böyle bir temel, başka bir sürüme göre derlenmiş bir test sınıfı tarafından devralındığında, devralınan kurulum ve temizleme çalışmaz, ayrıca devralınan test yöntemleri bulunmaz ve derleme hatası ve keşif hatası oluşmaz. Temel derlemeyi ve özel öznitelikler için özniteliği tanımlayan derlemeyi, test projesiyle aynı MSTest sürümünde yeniden derleyin. + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ Bu metotları bildiren türün ayrıca aşağıdaki kurallara uyması gerekir: 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail', kasıtlı bir hatayı açıkça belirtir ve hata iletisinin testin neden devam edemediğini belgelemesini sağlar. - {Locked="'Assert.Fail'"} + 'Assert.Fail', kasıtlı bir hatayı açıkça belirtir ve hata iletisinin testin neden devam edemediğini belgelemesini sağlar. + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ Bu metotları bildiren türün ayrıca aşağıdaki kurallara uyması gerekir: Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - Oluşturucular, 'readonly' alanlar üzerinden başlatmaya izin verir ve özellikle null atanabilir başvuru türlerinde daha güçlü derleyici geri bildirimi sağlar. Bu isteğe bağlı stil kuralı ile MSTEST0019 birbirini dışlar. - {Locked="'readonly'"}{Locked="MSTEST0019"} + Oluşturucular, 'readonly' alanlar üzerinden başlatmaya izin verir ve özellikle null atanabilir başvuru türlerinde daha güçlü derleyici geri bildirimi sağlar. Bu isteğe bağlı stil kuralı ile MSTEST0019 birbirini dışlar. + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - 'Dispose' ve 'DisposeAsync', standart .NET yaşam döngüsü desenlerini izler ve test temizliğini üretim koduyla tutarlı hale getirir. Bu isteğe bağlı stil kuralı ile MSTEST0022 birbirini dışlar. - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + 'Dispose' ve 'DisposeAsync', standart .NET yaşam döngüsü desenlerini izler ve test temizliğini üretim koduyla tutarlı hale getirir. Bu isteğe bağlı stil kuralı ile MSTEST0022 birbirini dışlar. + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]', 'IAsyncDisposable' kullanılamayan hedef çerçevelerde zaman uyumsuz temizlemeyi destekler. Bu isteğe bağlı stil kuralı ile MSTEST0021 birbirini dışlar. - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + '[TestCleanup]', 'IAsyncDisposable' kullanılamayan hedef çerçevelerde zaman uyumsuz temizlemeyi destekler. Bu isteğe bağlı stil kuralı ile MSTEST0021 birbirini dışlar. + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]' hem zaman uyumlu hem de zaman uyumsuz başlatmayı destekler, ancak oluşturucular beklenemez. Bu isteğe bağlı stil kuralı ile MSTEST0020 birbirini dışlar. - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]' hem zaman uyumlu hem de zaman uyumsuz başlatmayı destekler, ancak oluşturucular beklenemez. Bu isteğe bağlı stil kuralı ile MSTEST0020 birbirini dışlar. + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -957,8 +957,8 @@ Bu metotları bildiren türün ayrıca aşağıdaki kurallara uyması gerekir: 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - 'StringAssert' yöntemlerinin eşdeğer 'Assert' karşılıkları vardır. Bir onaylama API'si kullanmak tutarlılığı ve bulunabilirliği artırır. - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + 'StringAssert' yöntemlerinin eşdeğer 'Assert' karşılıkları vardır. Bir onaylama API'si kullanmak tutarlılığı ve bulunabilirliği artırır. + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ Bu yöntemleri bildiren tipin ayrıca aşağıdaki kurallara uyması gerekir: MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - MSTest, '[DeploymentItem]' bir test sınıfının veya test yönteminin dışında uygulandığında bunu yok sayar. - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + MSTest, '[DeploymentItem]' bir test sınıfının veya test yönteminin dışında uygulandığında bunu yok sayar. + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf index 836c87826a..f1ebcebbc2 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf @@ -169,8 +169,8 @@ The type declaring these methods should also respect the following rules: Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - 从 MSTest 3.8 开始,'DynamicDataSourceType.AutoDetect' 为默认值,可自动标识属性、方法和字段,从而降低详细程度并减少与成员类型的耦合。 - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + 从 MSTest 3.8 开始,'DynamicDataSourceType.AutoDetect' 为默认值,可自动标识属性、方法和字段,从而降低详细程度并减少与成员类型的耦合。 + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -312,8 +312,8 @@ The type declaring these methods should also respect the following rules: 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - 'CollectionAssert' 方法具有等效的 'Assert' 对应项。使用一个断言 API 可提高一致性和可发现性。 - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + 'CollectionAssert' 方法具有等效的 'Assert' 对应项。使用一个断言 API 可提高一致性和可发现性。 + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ The type declaring these methods should also respect the following rules: The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - 传递给程序集或类初始化的 TestContext 特定于该上下文,并且不会随每个测试执行进行更新。在 'static' 成员中重用它可能会公开过时的上下文。 - {Locked="TestContext"}{Locked="'static'"} + 传递给程序集或类初始化的 TestContext 特定于该上下文,并且不会随每个测试执行进行更新。在 'static' 成员中重用它可能会公开过时的上下文。 + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest 会通过其完全相同的框架类型标识解析继承的生命周期特性 "[TestInitialize]"、"[TestCleanup]"、"[ClassInitialize]" 和 "[ClassCleanup]",以及测试特性 "[TestMethod]" 和 "[DataTestMethod]"。框架程序集已从 "Microsoft.VisualStudio.TestPlatform.TestFramework" 重命名为 "MSTest.TestFramework",因此针对不同 MSTest 主要版本编译的基类会以不同的类型标识公开这些特性。当测试类继承此类基类,而测试类是针对另一个版本编译时,继承的初始化和清理不会运行,继承的测试方法也不会被发现,而且不会出现生成错误或发现错误。请使用与测试项目相同的 MSTest 版本重新编译基础程序集,对于自定义特性,还要重新编译定义该特性的程序集。 - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + MSTest 会通过其完全相同的框架类型标识解析继承的生命周期特性 "[TestInitialize]"、"[TestCleanup]"、"[ClassInitialize]" 和 "[ClassCleanup]",以及测试特性 "[TestMethod]" 和 "[DataTestMethod]"。框架程序集已从 "Microsoft.VisualStudio.TestPlatform.TestFramework" 重命名为 "MSTest.TestFramework",因此针对不同 MSTest 主要版本编译的基类会以不同的类型标识公开这些特性。当测试类继承此类基类,而测试类是针对另一个版本编译时,继承的初始化和清理不会运行,继承的测试方法也不会被发现,而且不会出现生成错误或发现错误。请使用与测试项目相同的 MSTest 版本重新编译基础程序集,对于自定义特性,还要重新编译定义该特性的程序集。 + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ The type declaring these methods should also respect the following rules: 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail' 可显式化处理有意失败,并允许失败消息记录测试无法继续的原因。 - {Locked="'Assert.Fail'"} + 'Assert.Fail' 可显式化处理有意失败,并允许失败消息记录测试无法继续的原因。 + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ The type declaring these methods should also respect the following rules: Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - 构造函数允许通过 'readonly' 字段进行初始化,并提供更强大的编译器反馈,对于可为 null 的引用类型尤为如此。此选择加入样式规则与 MSTEST0019 互斥。 - {Locked="'readonly'"}{Locked="MSTEST0019"} + 构造函数允许通过 'readonly' 字段进行初始化,并提供更强大的编译器反馈,对于可为 null 的引用类型尤为如此。此选择加入样式规则与 MSTEST0019 互斥。 + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - 'Dispose' 和 'DisposeAsync' 遵循标准的 .NET 生存期模式,从而保持测试清理与生产代码处于一致状态。此选择加入样式规则与 MSTEST0022 互斥。 - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + 'Dispose' 和 'DisposeAsync' 遵循标准的 .NET 生存期模式,从而保持测试清理与生产代码处于一致状态。此选择加入样式规则与 MSTEST0022 互斥。 + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]' 支持在 'IAsyncDisposable' 不可用的目标框架上进行异步清理。此选择加入样式规则与 MSTEST0021 互斥。 - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + '[TestCleanup]' 支持在 'IAsyncDisposable' 不可用的目标框架上进行异步清理。此选择加入样式规则与 MSTEST0021 互斥。 + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]' 同时支持同步初始化和异步初始化,但构造函数无法成为等待目标。此选择加入样式规则与 MSTEST0020 互斥。 - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]' 同时支持同步初始化和异步初始化,但构造函数无法成为等待目标。此选择加入样式规则与 MSTEST0020 互斥。 + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -957,8 +957,8 @@ The type declaring these methods should also respect the following rules: 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - 'StringAssert' 方法具有等效的 'Assert' 对应项。使用一个断言 API 可提高一致性和可发现性。 - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + 'StringAssert' 方法具有等效的 'Assert' 对应项。使用一个断言 API 可提高一致性和可发现性。 + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ The type declaring these methods should also respect the following rules: MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - 在测试类或测试方法外部应用时,MSTest 会忽略 '[DeploymentItem]'。 - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + 在测试类或测试方法外部应用时,MSTest 会忽略 '[DeploymentItem]'。 + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hant.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hant.xlf index 35546e2e07..835a869f03 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hant.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hant.xlf @@ -169,8 +169,8 @@ The type declaring these methods should also respect the following rules: Since MSTest 3.8, 'DynamicDataSourceType.AutoDetect' is the default and automatically identifies properties, methods, and fields, reducing verbosity and coupling to the member kind. - 自 MSTest 3.8 起,'DynamicDataSourceType.AutoDetect' 為預設值,會自動識別屬性、方法和欄位,減少冗長性,並降低與成員類型的耦合。 - {Locked="MSTest 3.8"}{Locked="'DynamicDataSourceType.AutoDetect'"} + 自 MSTest 3.8 起,'DynamicDataSourceType.AutoDetect' 為預設值,會自動識別屬性、方法和欄位,減少冗長性,並降低與成員類型的耦合。 + {Locked="MSTest 3.8"}{Locked="DynamicDataSourceType.AutoDetect"} Remove the 'DynamicDataSourceType' argument to use the default auto detect behavior @@ -312,8 +312,8 @@ The type declaring these methods should also respect the following rules: 'CollectionAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - 'CollectionAssert' 方法有對應的 'Assert' 方法。使用單一判斷提示 API 可提升一致性和可發現性。 - {Locked="'CollectionAssert'"}{Locked="'Assert'"}{Locked="API"} + 'CollectionAssert' 方法有對應的 'Assert' 方法。使用單一判斷提示 API 可提升一致性和可發現性。 + {Locked="CollectionAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'CollectionAssert.{1}' @@ -417,13 +417,13 @@ The type declaring these methods should also respect the following rules: The TestContext passed to assembly or class initialization is specific to that context and is not updated for each test execution. Reusing it in a 'static' member can expose stale context. - 傳遞給組件或類別初始化的 TestContext 只適用於該內容,且不會在每次測試執行時更新。在 'static' 成員中重複使用它,可能會暴露過時的內容。 - {Locked="TestContext"}{Locked="'static'"} + 傳遞給組件或類別初始化的 TestContext 只適用於該內容,且不會在每次測試執行時更新。在 'static' 成員中重複使用它,可能會暴露過時的內容。 + {Locked="TestContext"}{Locked="static"} MSTest resolves the inherited lifecycle attributes '[TestInitialize]', '[TestCleanup]', '[ClassInitialize]' and '[ClassCleanup]', and the test attributes '[TestMethod]' and '[DataTestMethod]', by their exact framework type identity. The framework assembly was renamed from 'Microsoft.VisualStudio.TestPlatform.TestFramework' to 'MSTest.TestFramework', so a base class compiled against a different MSTest major exposes these attributes with a different type identity. When such a base is inherited by a test class compiled against another version, the inherited setup and cleanup do not run and inherited test methods are not discovered, with no build error and no discovery error. Recompile the base assembly and, for custom attributes, the assembly that defines the attribute against the same MSTest version as the test project. - MSTest 會根據精確的架構類型識別,解析繼承的生命週期屬性 '[TestInitialize]'、'[TestCleanup]'、'[ClassInitialize]' 和 '[ClassCleanup]',以及測試屬性 '[TestMethod]' 和 '[DataTestMethod]'。架構組件已從 'Microsoft.VisualStudio.TestPlatform.TestFramework' 重新命名為 'MSTest.TestFramework',因此,若基底類別是以不同的 MSTest 主要版本編譯,就會以不同的類型識別公開這些屬性。當其他版本編譯的測試類別繼承這類基底類別時,繼承的設定與清除不會執行,繼承的測試方法也不會被探索,而且不會出現建置錯誤或探索錯誤。請使用與測試專案相同的 MSTest 版本,重新編譯基底組件,以及針對自訂屬性,定義屬性的組件。 - {Locked="MSTest"}{Locked="'[TestInitialize]'"}{Locked="'[TestCleanup]'"}{Locked="'[ClassInitialize]'"}{Locked="'[ClassCleanup]'"}{Locked="'[TestMethod]'"}{Locked="'[DataTestMethod]'"}{Locked="'Microsoft.VisualStudio.TestPlatform.TestFramework'"}{Locked="'MSTest.TestFramework'"} + MSTest 會根據精確的架構類型識別,解析繼承的生命週期屬性 '[TestInitialize]'、'[TestCleanup]'、'[ClassInitialize]' 和 '[ClassCleanup]',以及測試屬性 '[TestMethod]' 和 '[DataTestMethod]'。架構組件已從 'Microsoft.VisualStudio.TestPlatform.TestFramework' 重新命名為 'MSTest.TestFramework',因此,若基底類別是以不同的 MSTest 主要版本編譯,就會以不同的類型識別公開這些屬性。當其他版本編譯的測試類別繼承這類基底類別時,繼承的設定與清除不會執行,繼承的測試方法也不會被探索,而且不會出現建置錯誤或探索錯誤。請使用與測試專案相同的 MSTest 版本,重新編譯基底組件,以及針對自訂屬性,定義屬性的組件。 + {Locked="MSTest"}{Locked="[TestInitialize]"}{Locked="[TestCleanup]"}{Locked="[ClassInitialize]"}{Locked="[ClassCleanup]"}{Locked="[TestMethod]"}{Locked="[DataTestMethod]"}{Locked="Microsoft.VisualStudio.TestPlatform.TestFramework"}{Locked="MSTest.TestFramework"} The inherited member '{1}.{0}' is annotated with a '[{2}]' attribute that resolves to a canonical MSTest attribute in '{3}', a different MSTest framework assembly than this test project uses; MSTest matches these attributes by exact type identity, so the inherited '[{2}]' is silently ignored at run time. Recompile the assembly that declares '{1}' and, for custom attributes, the assembly that defines '[{2}]', against the same MSTest version as the test project. @@ -762,8 +762,8 @@ The type declaring these methods should also respect the following rules: 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. - 'Assert.Fail' 可明確表示刻意失敗,並讓失敗訊息說明測試為何無法繼續。 - {Locked="'Assert.Fail'"} + 'Assert.Fail' 可明確表示刻意失敗,並讓失敗訊息說明測試為何無法繼續。 + {Locked="Assert.Fail"} Use 'Assert.Fail' instead of an always-failing 'Assert.{0}' assert @@ -807,23 +807,23 @@ The type declaring these methods should also respect the following rules: Constructors allow initialization through 'readonly' fields and provide stronger compiler feedback, especially with nullable reference types. This opt-in style rule is mutually exclusive with MSTEST0019. - 建構函式可透過 'readonly' 欄位進行初始化,並提供更強的編譯器回饋,尤其是在使用可為 null 的參考型別時。此選用樣式規則與 MSTEST0019 互斥。 - {Locked="'readonly'"}{Locked="MSTEST0019"} + 建構函式可透過 'readonly' 欄位進行初始化,並提供更強的編譯器回饋,尤其是在使用可為 null 的參考型別時。此選用樣式規則與 MSTEST0019 互斥。 + {Locked="readonly"}{Locked="MSTEST0019"} 'Dispose' and 'DisposeAsync' follow standard .NET lifetime patterns, making test cleanup consistent with production code. This opt-in style rule is mutually exclusive with MSTEST0022. - 'Dispose' 和 'DisposeAsync' 遵循標準 .NET 存留期模式,讓測試清除與實際生產程式碼保持一致。此選用樣式規則與 MSTEST0022 互斥。 - {Locked="'DisposeAsync'"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} + 'Dispose' 和 'DisposeAsync' 遵循標準 .NET 存留期模式,讓測試清除與實際生產程式碼保持一致。此選用樣式規則與 MSTEST0022 互斥。 + {Locked="DisposeAsync"}{Locked="'Dispose'"}{Locked=".NET"}{Locked="MSTEST0022"} '[TestCleanup]' supports asynchronous cleanup on target frameworks where 'IAsyncDisposable' is unavailable. This opt-in style rule is mutually exclusive with MSTEST0021. - '[TestCleanup]' 支援在無法使用 'IAsyncDisposable' 的目標架構上進行非同步清除。此選用樣式規則與 MSTEST0021 互斥。 - {Locked="'[TestCleanup]'"}{Locked="'IAsyncDisposable'"}{Locked="MSTEST0021"} + '[TestCleanup]' 支援在無法使用 'IAsyncDisposable' 的目標架構上進行非同步清除。此選用樣式規則與 MSTEST0021 互斥。 + {Locked="[TestCleanup]"}{Locked="IAsyncDisposable"}{Locked="MSTEST0021"} '[TestInitialize]' supports both synchronous and asynchronous initialization, whereas constructors cannot be awaited. This opt-in style rule is mutually exclusive with MSTEST0020. - '[TestInitialize]' 支援同步和非同步初始化,而建構函式無法等待。此選用樣式規則與 MSTEST0020 互斥。 - {Locked="'[TestInitialize]'"}{Locked="MSTEST0020"} + '[TestInitialize]' 支援同步和非同步初始化,而建構函式無法等待。此選用樣式規則與 MSTEST0020 互斥。 + {Locked="[TestInitialize]"}{Locked="MSTEST0020"} 'DataTestMethodAttribute' is obsolete and provides no additional functionality over 'TestMethodAttribute'. Use 'TestMethodAttribute' for all test methods, including parameterized tests. @@ -957,8 +957,8 @@ The type declaring these methods should also respect the following rules: 'StringAssert' methods have equivalent 'Assert' counterparts. Using one assertion API improves consistency and discoverability. - 'StringAssert' 方法有對應的 'Assert' 方法。使用單一判斷提示 API 可提升一致性和可發現性。 - {Locked="'StringAssert'"}{Locked="'Assert'"}{Locked="API"} + 'StringAssert' 方法有對應的 'Assert' 方法。使用單一判斷提示 API 可提升一致性和可發現性。 + {Locked="StringAssert"}{Locked="'Assert'"}{Locked="API"} Use 'Assert.{0}' instead of 'StringAssert.{1}' @@ -1364,8 +1364,8 @@ The type declaring these methods should also respect the following rules: MSTest ignores '[DeploymentItem]' when it is applied outside a test class or test method. - MSTest 會忽略在測試類別或測試方法外套用的 '[DeploymentItem]'。 - {Locked="MSTest"}{Locked="'[DeploymentItem]'"} + MSTest 會忽略在測試類別或測試方法外套用的 '[DeploymentItem]'。 + {Locked="MSTest"}{Locked="[DeploymentItem]"} '[DeploymentItem]' can be specified only on test class or test method diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/CrashDumpResources.resx b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/CrashDumpResources.resx index de07a974a2..e9b8a4c37f 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/CrashDumpResources.resx +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/CrashDumpResources.resx @@ -172,7 +172,7 @@ Supports the following placeholders: {pname} (process executable name, deferred Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.cs.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.cs.xlf index 1364f7b98b..e4b8fc3b61 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.cs.xlf @@ -167,10 +167,10 @@ Další informace najdete na https://learn.microsoft.com/dotnet/core/diagnostics Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - Určuje, zda se spolu s výpisem stavu systému při chybovém ukončení nebo sestavou o chybovém ukončení vygeneruje soubor sekvence uvádějící testy spuštěné a ukončené během testovací relace. + Určuje, zda se spolu s výpisem stavu systému při chybovém ukončení nebo sestavou o chybovém ukončení vygeneruje soubor sekvence uvádějící testy spuštěné a ukončené během testovací relace. Soubor umožňuje identifikovat testy, které byly spuštěny v době chybového ukončení, aniž by bylo nutné kontrolovat výpis paměti. Platné hodnoty jsou 'on' (výchozí; přijímá také hodnoty 'true', 'enable', '1') nebo 'off' (přijímá také hodnoty 'false', 'disable', '0'). - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.de.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.de.xlf index e0b5aa0a89..aaef5d58f6 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.de.xlf @@ -170,7 +170,7 @@ Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (al Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.es.xlf index db9a886412..1d806c276c 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.es.xlf @@ -167,10 +167,10 @@ Para obtener más información, visite https://learn.microsoft.com/dotnet/core/d Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - Controlar si se genera un archivo de secuencia que enumera las pruebas iniciadas y finalizadas durante la sesión de prueba junto con el volcado de memoria o el informe de bloqueos. + Controlar si se genera un archivo de secuencia que enumera las pruebas iniciadas y finalizadas durante la sesión de prueba junto con el volcado de memoria o el informe de bloqueos. El archivo permite identificar las pruebas que se estaban ejecutando en el momento del bloqueo sin tener que inspeccionar el volcado. Los valores válidos son 'on' (valor predeterminado; también acepta 'true', 'enable', '1') o 'off' (también acepta 'false', 'disable', '0'). - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.fr.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.fr.xlf index a00f2fab4b..29019a9879 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.fr.xlf @@ -167,10 +167,10 @@ Pour plus d’informations, visitez https://learn.microsoft.com/dotnet/core/diag Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - Contrôlez si un fichier de séquence, listant les tests démarrés et terminés au cours de la session de test, est généré parallèlement au vidage mémoire ou au rapport d'incident. + Contrôlez si un fichier de séquence, listant les tests démarrés et terminés au cours de la session de test, est généré parallèlement au vidage mémoire ou au rapport d'incident. Le fichier permet d'identifier les tests qui étaient en cours d'exécution au moment du plantage, sans avoir à inspecter le dump. Les valeurs valides sont 'on' (par défaut ; accepte également 'true', 'enable', '1') ou 'off' (accepte également 'false', 'disable', '0'). - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.it.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.it.xlf index d37d0903c7..528e876b09 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.it.xlf @@ -167,10 +167,10 @@ Per altre informazioni, visitare https://learn.microsoft.com/dotnet/core/diagnos Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - Controllare se un file di sequenza che elenca i test avviati e terminati durante la sessione di test viene generato insieme al dump di arresto anomalo del sistema o al report di arresto anomalo del sistema. + Controllare se un file di sequenza che elenca i test avviati e terminati durante la sessione di test viene generato insieme al dump di arresto anomalo del sistema o al report di arresto anomalo del sistema. Il file consente di identificare i test in esecuzione al momento dell'arresto anomalo senza dover esaminare il dump. I valori validi sono ''on'' (impostazione predefinita; accetta anche ''true'', 'enable'', ''1'') o ''off'' (accetta anche ''false'', ''disable'', ''0''). - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.ja.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.ja.xlf index d61cd2494e..05211a7794 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.ja.xlf @@ -167,10 +167,10 @@ For more information visit https://learn.microsoft.com/dotnet/core/diagnostics/c Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - テスト セッション中に開始および終了したテストを一覧表示するシーケンス ファイルを、クラッシュ ダンプまたはクラッシュ レポートと共に生成するかどうかを制御します。 + テスト セッション中に開始および終了したテストを一覧表示するシーケンス ファイルを、クラッシュ ダンプまたはクラッシュ レポートと共に生成するかどうかを制御します。 このファイルを使用すると、ダンプを調べなくても、クラッシュ時に実行されていたテストを特定できます。 有効な値は、'on' (既定値; 'true'、'enable'、'1' も指定可能)、または 'off' ('false'、'disable'、'0' も指定可能) です。 - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.ko.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.ko.xlf index 06769a95f4..6d723b72e7 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.ko.xlf @@ -167,10 +167,10 @@ For more information visit https://learn.microsoft.com/dotnet/core/diagnostics/c Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - 테스트 세션 중에 시작되고 종료된 테스트를 나열하는 시퀀스 파일이 크래시 덤프 또는 크래시 보고서와 함께 생성되는지 여부를 제어합니다. + 테스트 세션 중에 시작되고 종료된 테스트를 나열하는 시퀀스 파일이 크래시 덤프 또는 크래시 보고서와 함께 생성되는지 여부를 제어합니다. 이 파일을 사용하면 덤프를 검사하지 않고도 크래시 발생 시 실행 중이던 테스트를 식별할 수 있습니다. 유효한 값은 'on'(기본값, 'true', 'enable', '1'도 허용) 또는 'off'('false', 'disable', '0'도 허용)입니다. - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.pl.xlf index 8e786dc73e..0b73a0f198 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.pl.xlf @@ -170,7 +170,7 @@ Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (al Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.pt-BR.xlf index 232ebeedd2..668937f084 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.pt-BR.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.pt-BR.xlf @@ -170,7 +170,7 @@ Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (al Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.ru.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.ru.xlf index 8ed7d6fad7..1fae02a8d4 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.ru.xlf @@ -170,7 +170,7 @@ Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (al Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.tr.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.tr.xlf index 4111da0bb6..1830ddf411 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.tr.xlf @@ -167,10 +167,10 @@ Daha fazla bilgi için https://learn.microsoft.com/dotnet/core/diagnostics/colle Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - Test oturumu sırasında başlatılan ve sonlandırılan testleri listeleyen bir sıra dosyasının kilitlenme bilgi dökümü veya kilitlenme raporuyla birlikte oluşturulup oluşturulmadığını denetleyin. + Test oturumu sırasında başlatılan ve sonlandırılan testleri listeleyen bir sıra dosyasının kilitlenme bilgi dökümü veya kilitlenme raporuyla birlikte oluşturulup oluşturulmadığını denetleyin. Dosya, dökümü incelemeye gerek kalmadan kilitlenme sırasında çalışan testlerin belirlenmesini mümkün kılar. Geçerli değerler: 'on' (varsayılan: 'true', 'enable', '1' değerlerini de kabul eder) ve 'off' ('false', 'disable', '0' değerlerini de kabul eder). - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.zh-Hans.xlf index 2769ac4486..8be8ab90eb 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.zh-Hans.xlf @@ -170,7 +170,7 @@ Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (al Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.zh-Hant.xlf index 1b0c458579..9f1a9b3ce9 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CrashDump/Resources/xlf/CrashDumpResources.zh-Hant.xlf @@ -167,10 +167,10 @@ For more information visit https://learn.microsoft.com/dotnet/core/diagnostics/c Control whether a sequence file listing the tests started and ended during the test session is generated alongside the crash dump or crash report. The file makes it possible to identify the tests that were running at the time of the crash without having to inspect the dump. Valid values are 'on' (default; also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). - 控制是否在產生損毀傾印或損毀報告時,一併產生一個列出測試工作階段期間已開始與已結束測試的序列檔案。 + 控制是否在產生損毀傾印或損毀報告時,一併產生一個列出測試工作階段期間已開始與已結束測試的序列檔案。 這個檔案可讓您在不檢查傾印的情況下,找出發生損毀時正在執行的測試。 有效值為 'on' (預設值,也接受 'true'、'enable'、'1') 或 'off' (也接受 'false'、'disable'、'0')。 - Do not localize option name {Locked="--crash-sequence"} or option values {Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}. + Do not localize option values {Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}. --crash-sequence expects a single parameter with value 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/ExtensionResources.resx b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/ExtensionResources.resx index 8f325e2123..85b3710ab3 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/ExtensionResources.resx +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/ExtensionResources.resx @@ -98,7 +98,7 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.cs.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.cs.xlf index 813405f697..9aa57e309d 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.cs.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - Název vygenerované sestavy CTRF. Může obsahovat relativní nebo absolutní cestu. Relativní cesty se překládají na adresář výsledků testů a vytvoří se chybějící adresáře. + Název vygenerované sestavy CTRF. Může obsahovat relativní nebo absolutní cestu. Relativní cesty se překládají na adresář výsledků testů a vytvoří se chybějící adresáře. Podporuje následující zástupné symboly: {pname} (název testovací aplikace), {pid} (ID procesu), {asm} (název sestavení položky), {tfm} (moniker cílové architektury), {time} (časové razítko). Příklad: 'MyReport_{tfm}.ctrf.json'. - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.de.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.de.xlf index 488465b8bc..36cada9392 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.de.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - Der Name des generierten CTRF-Berichts. Kann einen relativen oder absoluten Pfad enthalten. Relative Pfade werden anhand des Verzeichnisses mit den Testergebnissen aufgelöst, und fehlende Verzeichnisse werden erstellt. + Der Name des generierten CTRF-Berichts. Kann einen relativen oder absoluten Pfad enthalten. Relative Pfade werden anhand des Verzeichnisses mit den Testergebnissen aufgelöst, und fehlende Verzeichnisse werden erstellt. Unterstützt die folgenden Platzhalter: {pname} (Name der Testanwendung), {pid} (Prozess-ID), {asm} (Name der Eintragsassembly), {tfm} (Zielframeworkmoniker), {time} (Zeitstempel). Beispiel: „MyReport_{tfm}.ctrf.json“. - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.es.xlf index 0e3dbf7662..3a66b59dec 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.es.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - Nombre del informe CTRF generado. Puede incluir una ruta de acceso relativa o absoluta; las rutas de acceso relativas se resuelven respecto al directorio de resultados de pruebas y se crean los directorios que falten. + Nombre del informe CTRF generado. Puede incluir una ruta de acceso relativa o absoluta; las rutas de acceso relativas se resuelven respecto al directorio de resultados de pruebas y se crean los directorios que falten. Admite los siguientes marcadores de posición: {pname} (nombre de la aplicación de prueba), {pid} (identificador de proceso), {asm} (nombre del ensamblado de entrada), {tfm} (moniker de la plataforma de destino), {time} (marca de tiempo). Ejemplo: "MyReport_{tfm}.ctrf.json". - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.fr.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.fr.xlf index ac978848a5..7318744572 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.fr.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - Le nom du rapport CTRF généré. Peut inclure un chemin d’accès relatif ou absolu. Les chemins relatifs sont résolus sur le répertoire des résultats des tests et les répertoires manquants sont créés. + Le nom du rapport CTRF généré. Peut inclure un chemin d’accès relatif ou absolu. Les chemins relatifs sont résolus sur le répertoire des résultats des tests et les répertoires manquants sont créés. Prend en charge les espaces réservés suivants : {pname} (nom de l’application de test), {pid} (ID de processus), {asm} (nom de l’assembly d’entrée), {tfm} (moniker de framework cible), {time} (horodateur). Exemple : 'MyReport_{tfm}.ctrf.json'. - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.it.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.it.xlf index 1edebc6558..d5f0d5465b 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.it.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - Nome del report CTRF generato. Può includere un percorso relativo o assoluto; i percorsi relativi vengono risolti rispetto alla directory dei risultati dei test e le directory mancanti vengono create. + Nome del report CTRF generato. Può includere un percorso relativo o assoluto; i percorsi relativi vengono risolti rispetto alla directory dei risultati dei test e le directory mancanti vengono create. Supporta i seguenti segnaposti: {pname} (nome dell'applicazione di test), {pid} (ID processo), {asm} (nome dell'assembly di immissione), {tfm} (moniker framework di destinazione), {time} (timestamp). Esempio: 'MyReport_{tfm}.ctrf.json'. - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.ja.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.ja.xlf index 85cfbb69eb..2d3aabae6d 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.ja.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - 生成された CTRF レポートの名前。相対または絶対パスを含めることができます。相対パスはテスト結果ディレクトリを基準に解決され、存在しないディレクトリは作成されます。 + 生成された CTRF レポートの名前。相対または絶対パスを含めることができます。相対パスはテスト結果ディレクトリを基準に解決され、存在しないディレクトリは作成されます。 次のプレースホルダーがサポートされています: {pname} (テスト アプリケーション名)、{pid} (プロセス ID)、{asm} (エントリ アセンブリ名)、{tfm} (ターゲット フレームワーク モニカー)、{time} (タイムスタンプ)。 例: 'MyReport_{tfm}.ctrf.json'。 - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.ko.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.ko.xlf index d07b4f001b..4487569293 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.ko.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - 생성된 CTRF 보고서의 이름입니다. 상대 경로 또는 절대 경로를 사용할 수 있습니다. 상대 경로는 테스트 결과 디렉터리를 기준으로 확인되며, 없는 디렉터리는 만들어집니다. + 생성된 CTRF 보고서의 이름입니다. 상대 경로 또는 절대 경로를 사용할 수 있습니다. 상대 경로는 테스트 결과 디렉터리를 기준으로 확인되며, 없는 디렉터리는 만들어집니다. 자리 표시자 {pname}(테스트 애플리케이션 이름), {pid}(프로세스 ID), {asm}(항목 어셈블리 이름), {tfm}(대상 프레임워크 모니커), {time}(타임스탬프)을(를) 지원합니다. 예: 'MyReport_{tfm}.ctrf.json'. - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.pl.xlf index fa6103cda0..cd259bcfb5 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.pl.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - Nazwa wygenerowanego raportu CTRF. Może zawierać ścieżkę względną lub bezwzględną; ścieżki względne są rozpoznawane względem katalogu wyników testów, a brakujące katalogi są tworzone. + Nazwa wygenerowanego raportu CTRF. Może zawierać ścieżkę względną lub bezwzględną; ścieżki względne są rozpoznawane względem katalogu wyników testów, a brakujące katalogi są tworzone. Obsługuje następujące symbole zastępcze: {pname} (nazwa aplikacji testowej), {pid} (identyfikator procesu), {asm} (nazwa zestawu wejściowego), {tfm} (moniker platformy docelowej), {time} (sygnatura czasowa). Przykład: „MyReport_{tfm}.ctrf.json”. - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.pt-BR.xlf index 302b1f03a6..31b036c372 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.pt-BR.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.pt-BR.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - O nome do relatório CTRF gerado. Pode incluir um caminho relativo ou absoluto; os caminhos relativos são resolvidos em relação ao diretório de resultados de teste, e os diretórios ausentes são criados. + O nome do relatório CTRF gerado. Pode incluir um caminho relativo ou absoluto; os caminhos relativos são resolvidos em relação ao diretório de resultados de teste, e os diretórios ausentes são criados. Dá suporte aos seguintes espaços reservados: {pname} (nome do aplicativo de teste), {pid} (ID do processo), {asm} (nome do assembly de entrada), {tfm} (moniker da estrutura de destino), {time} (carimbo de data/hora). Exemplo: 'MyReport_{tfm}.ctrf.json'. - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.ru.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.ru.xlf index 6c1f8916c6..658de2b39f 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.ru.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - Название сформированного отчета CTRF. Может включать относительный или абсолютный путь; относительные пути разрешаются относительно каталога результатов тестов, а отсутствующие каталоги создаются. + Название сформированного отчета CTRF. Может включать относительный или абсолютный путь; относительные пути разрешаются относительно каталога результатов тестов, а отсутствующие каталоги создаются. Поддерживаются следующие заполнители: {pname} (имя тестового приложения), {pid} (идентификатор процесса), {asm} (имя входной сборки), {tfm} (моникер целевой платформы), {time} (метка времени). Пример: 'MyReport_{tfm}.ctrf.json'. - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.tr.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.tr.xlf index 48999c5489..2aac379758 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.tr.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - Oluşturulan CTRF raporunun adı. Göreli veya mutlak yol içerebilir; göreli yollar test sonuçları dizinine göre çözülmüş ve eksik dizinler oluşturulur. + Oluşturulan CTRF raporunun adı. Göreli veya mutlak yol içerebilir; göreli yollar test sonuçları dizinine göre çözülmüş ve eksik dizinler oluşturulur. Şu yer tutucuları destekler: {pname} (test uygulaması adı), {pid} (işlem kimliği), {asm} (girdi derleme adı), {tfm} (hedef çerçeve bilinen adı), {time} (zaman damgası). Örnek: 'MyReport_{tfm}.ctrf.json'. - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.zh-Hans.xlf index 2e9c8127c8..1356d07fc8 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.zh-Hans.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - 生成的 CTRF 报表的名称。可以包含相对路径或绝对路径;相对路径针对测试结果目录进行解析,并创建缺少的目录。 + 生成的 CTRF 报表的名称。可以包含相对路径或绝对路径;相对路径针对测试结果目录进行解析,并创建缺少的目录。 支持以下占位符: {pname} (测试应用程序名称)、{pid} (进程 ID)、{asm} (入口程序集名称)、{tfm} (目标框架名字对象)、{time} (时间戳)。 示例: "MyReport_{tfm}.ctrf.json"。 - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.zh-Hant.xlf index 558809807f..38544e7ebc 100644 --- a/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.CtrfReport/Resources/xlf/ExtensionResources.zh-Hant.xlf @@ -51,10 +51,10 @@ The name of the generated CTRF report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {time} (timestamp). Example: 'MyReport_{tfm}.ctrf.json'. - 產生的 CTRF 報告名稱。可以包含相對或絕對路徑; 系統會針對測試結果目錄解析相對路徑,並建立遺漏的目錄。 + 產生的 CTRF 報告名稱。可以包含相對或絕對路徑; 系統會針對測試結果目錄解析相對路徑,並建立遺漏的目錄。 支援下列預留位置: {pname}(測試應用程式名稱)、{pid}(處理序識別碼)、{asm}(進入組件名稱)、{tfm}(目標 Framework Moniker)、{time}(時間戳記)。 範例: 'MyReport_{tfm}.ctrf.json'。 - Do not localize option name {Locked="--report-ctrf-filename"}, format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="'MyReport_{tfm}.ctrf.json'"}. + Do not localize format name {Locked="CTRF"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{time}"}, file extension {Locked=".json"}, or example file name {Locked="MyReport_{tfm}.ctrf.json"}. '--report-ctrf-filename' relative paths must stay under the test results directory (e.g. --report-ctrf-filename nested/myreport.ctrf.json) diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/GitHubActionsResources.resx b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/GitHubActionsResources.resx index 65736dd806..d187c58a29 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/GitHubActionsResources.resx +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/GitHubActionsResources.resx @@ -81,19 +81,19 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -132,11 +132,11 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - {Locked="'--report-gh'"} + {Locked="--report-gh"} Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - {Locked="'--report-gh-history'"} + {Locked="--report-gh-history"} Invalid GitHub Actions test history window '{0}'. Specify a whole number of days from 1 through 90. @@ -147,7 +147,7 @@ The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to load the GitHub Actions test history snapshot from '{0}': {1} @@ -179,11 +179,11 @@ Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. The GitHub Actions report sub-options require '--{0}' to be specified. - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} Enable GitHub Actions report generator to emit workflow commands so test runs produce a first-class experience on GitHub Actions. @@ -248,7 +248,7 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Exception diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.cs.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.cs.xlf index 6559b4f4e0..75fcec546e 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.cs.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - Je vyžadováno alespoň jedno oddělení souhrnu úlohy GitHub Actions. Platné hodnoty jsou 'test-results', 'slow-tests', 'coverage' nebo 'all'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Je vyžadováno alespoň jedno oddělení souhrnu úlohy GitHub Actions. Platné hodnoty jsou 'test-results', 'slow-tests', 'coverage' nebo 'all'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -139,8 +139,8 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - Povolte nebo zakažte rozbalení každého neúspěšného testu v souhrnu úlohy do sbalitelné části se zprávou o chybě, typem výjimky, umístěním zdroje a trasováním zásobníku. Platné hodnoty jsou 'on' (přijímá také hodnoty 'true', 'enable', '1') nebo 'off' (přijímá také hodnoty 'false', 'disable', '0'). Při spuštění na GitHub Actions je výchozí hodnota 'on'. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + Povolte nebo zakažte rozbalení každého neúspěšného testu v souhrnu úlohy do sbalitelné části se zprávou o chybě, typem výjimky, umístěním zdroje a trasováním zásobníku. Platné hodnoty jsou 'on' (přijímá také hodnoty 'true', 'enable', '1') nebo 'off' (přijímá také hodnoty 'false', 'disable', '0'). Při spuštění na GitHub Actions je výchozí hodnota 'on'. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Na zadané cestě načte a aktualizuje omezený snímek historie testů GitHub Actions. Workflow musí před spuštěním testu stáhnout předchozí snímek a po testu nahrát aktualizovaný soubor. Vyžaduje --report-gh. - {Locked="'--report-gh'"} + Na zadané cestě načte a aktualizuje omezený snímek historie testů GitHub Actions. Workflow musí před spuštěním testu stáhnout předchozí snímek a po testu nahrát aktualizovaný soubor. Vyžaduje --report-gh. + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Počet dnů historie testů, které se mají uchovávat a používat jako kontext nestabilních testů (1–90). Výchozí hodnota je 30. Vyžaduje --report-gh-history. - {Locked="'--report-gh-history'"} + Počet dnů historie testů, které se mají uchovávat a používat jako kontext nestabilních testů (1–90). Výchozí hodnota je 30. Vyžaduje --report-gh-history. + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - Neplatná část souhrnu úlohy GitHub Actions '{0}'. Platné hodnoty jsou 'test-results', 'slow-tests', 'coverage' nebo 'all'. Hodnoty se můžou opakovat a můžou být oddělené mezerami nebo čárkami. - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Neplatná část souhrnu úlohy GitHub Actions '{0}'. Platné hodnoty jsou 'test-results', 'slow-tests', 'coverage' nebo 'all'. Hodnoty se můžou opakovat a můžou být oddělené mezerami nebo čárkami. + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - Neplatná hodnota '{0}'. Platné hodnoty jsou 'on' (nebo 'true', 'enable', '1'), 'off' (nebo 'false', 'disable', '0') nebo 'on-failure'. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + Neplatná hodnota '{0}'. Platné hodnoty jsou 'on' (nebo 'true', 'enable', '1'), 'off' (nebo 'false', 'disable', '0') nebo 'on-failure'. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -290,12 +290,12 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - Vyberte obsah zahrnutý do souhrnu úlohy GitHub Actions. Zadejte jednu nebo více hodnot, opakovaně, oddělených mezerami nebo čárkami: 'test-results', 'slow-tests', 'coverage' nebo 'all'. Výchozí hodnota je 'all'. Vyžaduje '--report-gh'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + Vyberte obsah zahrnutý do souhrnu úlohy GitHub Actions. Zadejte jednu nebo více hodnot, opakovaně, oddělených mezerami nebo čárkami: 'test-results', 'slow-tests', 'coverage' nebo 'all'. Výchozí hodnota je 'all'. Vyžaduje '--report-gh'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - Dílčí možnosti sestavy GitHub Actions vyžadují zadání parametru '--{0}'. - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + Dílčí možnosti sestavy GitHub Actions vyžadují zadání parametru '--{0}'. + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.de.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.de.xlf index 948aee91a8..04f29492c1 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.de.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - Mindestens ein Abschnitt der Auftragszusammenfassung für GitHub Actions ist erforderlich. Gültige Werte sind 'test-results', 'slow-tests', 'coverage', oder 'all'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Mindestens ein Abschnitt der Auftragszusammenfassung für GitHub Actions ist erforderlich. Gültige Werte sind 'test-results', 'slow-tests', 'coverage', oder 'all'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -139,8 +139,8 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - Aktivieren oder deaktivieren Sie, dass jeder fehlgeschlagene Test in der Jobzusammenfassung in einen einklappbaren Abschnitt mit Fehlermeldung, Ausnahmetyp, Quellposition und Stacktrace erweitert wird. Gültige Werte sind 'on' (akzeptiert auch 'true', 'enable', '1') oder 'off' (akzeptiert auch 'false', 'disable', '0'). Der Standardwert ist 'on', wenn die Ausführung auf GitHub Actions erfolgt. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + Aktivieren oder deaktivieren Sie, dass jeder fehlgeschlagene Test in der Jobzusammenfassung in einen einklappbaren Abschnitt mit Fehlermeldung, Ausnahmetyp, Quellposition und Stacktrace erweitert wird. Gültige Werte sind 'on' (akzeptiert auch 'true', 'enable', '1') oder 'off' (akzeptiert auch 'false', 'disable', '0'). Der Standardwert ist 'on', wenn die Ausführung auf GitHub Actions erfolgt. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Liest eine begrenzte Momentaufnahme des GitHub Actions Testverlaufs am angegebenen Pfad und aktualisiert ihn. Der Workflow ist dafür verantwortlich, die vorherige Momentaufnahme vor dem Testlauf herunterzuladen und die aktualisierte Datei anschließend hochzuladen. Erfordert '--report-gh'. - {Locked="'--report-gh'"} + Liest eine begrenzte Momentaufnahme des GitHub Actions Testverlaufs am angegebenen Pfad und aktualisiert ihn. Der Workflow ist dafür verantwortlich, die vorherige Momentaufnahme vor dem Testlauf herunterzuladen und die aktualisierte Datei anschließend hochzuladen. Erfordert '--report-gh'. + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Anzahl der Tage des Testverlaufs, die aufbewahrt und für den Kontext zu instabilen Tests verwendet werden sollen (1–90). Standardwert ist 30. Erfordert '--report-gh-history'. - {Locked="'--report-gh-history'"} + Anzahl der Tage des Testverlaufs, die aufbewahrt und für den Kontext zu instabilen Tests verwendet werden sollen (1–90). Standardwert ist 30. Erfordert '--report-gh-history'. + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - Die Option '--report-gh-history-window' erfordert, dass '--report-gh-history' angegeben wird. - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + Die Option '--report-gh-history-window' erfordert, dass '--report-gh-history' angegeben wird. + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - Ungültiger Abschnitt „{0}“ in der Auftragszusammenfassung für GitHub Actions. Gültige Werte sind 'test-results', 'slow-tests', 'coverage' oder 'all'. Werte können wiederholt, durch Leerzeichen getrennt oder durch Kommas getrennt werden. - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Ungültiger Abschnitt „{0}“ in der Auftragszusammenfassung für GitHub Actions. Gültige Werte sind 'test-results', 'slow-tests', 'coverage' oder 'all'. Werte können wiederholt, durch Leerzeichen getrennt oder durch Kommas getrennt werden. + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - Ungültiger Wert: „{0}“. Gültige Werte sind 'on' (oder 'true', 'enable', '1'), 'off' (oder 'false', 'disable', '0'), oder 'on-failure'. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + Ungültiger Wert: „{0}“. Gültige Werte sind 'on' (oder 'true', 'enable', '1'), 'off' (oder 'false', 'disable', '0'), oder 'on-failure'. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -290,12 +290,12 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - Wählen Sie den Inhalt aus, der in der Auftragszusammenfassung für GitHub Actions enthalten ist. Geben Sie einen oder mehrere Werte an, die wiederholt, durch Leerzeichen oder durch Kommas getrennt sein können: 'test-results', 'slow-tests', 'coverage' oder 'all'. Der Standardwert lautet 'all'. Erfordert '--report-gh'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + Wählen Sie den Inhalt aus, der in der Auftragszusammenfassung für GitHub Actions enthalten ist. Geben Sie einen oder mehrere Werte an, die wiederholt, durch Leerzeichen oder durch Kommas getrennt sein können: 'test-results', 'slow-tests', 'coverage' oder 'all'. Der Standardwert lautet 'all'. Erfordert '--report-gh'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - Für die Unteroptionen des GitHub Actions-Berichts muss '--{0}' angegeben werden. - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + Für die Unteroptionen des GitHub Actions-Berichts muss '--{0}' angegeben werden. + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.es.xlf index 333877546a..e033b7ddd3 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.es.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - Se requiere al menos una sección de resumen del trabajo de Acciones de GitHub. Los valores válidos son 'test-results', 'slow-tests', 'coverage' o 'all'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Se requiere al menos una sección de resumen del trabajo de Acciones de GitHub. Los valores válidos son 'test-results', 'slow-tests', 'coverage' o 'all'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -139,8 +139,8 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - Habilite o deshabilite la expansión de cada prueba con errores en el resumen del trabajo en una sección contraíble con su mensaje de error, tipo de excepción, ubicación de origen y seguimiento de pila. Los valores válidos son 'on' (también acepta 'true', 'enable', '1') o 'off' (también acepta 'false', 'disable', '0'). El valor predeterminado es 'on' cuando se ejecuta en Acciones de GitHub. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + Habilite o deshabilite la expansión de cada prueba con errores en el resumen del trabajo en una sección contraíble con su mensaje de error, tipo de excepción, ubicación de origen y seguimiento de pila. Los valores válidos son 'on' (también acepta 'true', 'enable', '1') o 'off' (también acepta 'false', 'disable', '0'). El valor predeterminado es 'on' cuando se ejecuta en Acciones de GitHub. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Leer y actualizar una instantánea del historial de pruebas de Acciones de GitHub limitada en la ruta de acceso especificada. El flujo de trabajo es responsable de descargar la instantánea anterior antes de la ejecución de la prueba y de cargar el archivo actualizado posteriormente. Requiere "--report-gh". - {Locked="'--report-gh'"} + Leer y actualizar una instantánea del historial de pruebas de Acciones de GitHub limitada en la ruta de acceso especificada. El flujo de trabajo es responsable de descargar la instantánea anterior antes de la ejecución de la prueba y de cargar el archivo actualizado posteriormente. Requiere "--report-gh". + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Número de días del historial de pruebas que se conservarán y usarán para el contexto de prueba no confiable (1-90). El valor predeterminado es 30. Requiere "--report-gh-history". - {Locked="'--report-gh-history'"} + Número de días del historial de pruebas que se conservarán y usarán para el contexto de prueba no confiable (1-90). El valor predeterminado es 30. Requiere "--report-gh-history". + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - La sección de resumen del trabajo de GitHub Actions '{0}' no es válida. Los valores válidos son 'test-results', 'slow-tests', 'coverage' o 'all'. Los valores pueden repetirse, separarse por espacios o por comas. - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + La sección de resumen del trabajo de GitHub Actions '{0}' no es válida. Los valores válidos son 'test-results', 'slow-tests', 'coverage' o 'all'. Los valores pueden repetirse, separarse por espacios o por comas. + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - Valor no válido '{0}'. Los valores válidos son 'on' (o 'true', 'enable', '1'), 'off' (o 'false', 'disable', '0') o 'on-failure'. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + Valor no válido '{0}'. Los valores válidos son 'on' (o 'true', 'enable', '1'), 'off' (o 'false', 'disable', '0') o 'on-failure'. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -290,12 +290,12 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - Seleccione el contenido incluido en el resumen del trabajo de Acciones de GitHub. Especifique uno o varios valores, repetidos, separados por espacios o separados por comas: 'test-results', 'slow-tests', 'coverage' o 'all'. El valor predeterminado es 'all'. Requiere '--report-gh'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + Seleccione el contenido incluido en el resumen del trabajo de Acciones de GitHub. Especifique uno o varios valores, repetidos, separados por espacios o separados por comas: 'test-results', 'slow-tests', 'coverage' o 'all'. El valor predeterminado es 'all'. Requiere '--report-gh'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - Las subopciones del informe de GitHub Actions requieren especificar '--{0}'. - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + Las subopciones del informe de GitHub Actions requieren especificar '--{0}'. + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.fr.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.fr.xlf index 6f1f1f8094..002ed028c1 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.fr.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - Au moins une section du résumé de travail GitHub Actions est requise. Les valeurs valides sont 'test-results', 'slow-tests', 'coverage' ou 'all'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Au moins une section du résumé de travail GitHub Actions est requise. Les valeurs valides sont 'test-results', 'slow-tests', 'coverage' ou 'all'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -139,8 +139,8 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - Activez ou désactivez l’affichage de chaque test en échec dans le résumé du travail sous forme de section réductible avec son message d’échec, son type d’exception, son emplacement source et sa trace de pile. Les valeurs valides sont 'on' (par défaut, accepte également 'true', 'enable', '1') ou 'off' (accepte également 'false', 'disable', '0'). La valeur par défaut est 'on' lors de l’exécution sur GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + Activez ou désactivez l’affichage de chaque test en échec dans le résumé du travail sous forme de section réductible avec son message d’échec, son type d’exception, son emplacement source et sa trace de pile. Les valeurs valides sont 'on' (par défaut, accepte également 'true', 'enable', '1') ou 'off' (accepte également 'false', 'disable', '0'). La valeur par défaut est 'on' lors de l’exécution sur GitHub Actions. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Lire et mettre à jour un instantané limité de l'historique des tests GitHub Actions au chemin spécifié. Le flux de travail est chargé de télécharger l’instantané précédent avant la série de tests et de charger le fichier mis à jour par la suite. Nécessite '--report-gh'. - {Locked="'--report-gh'"} + Lire et mettre à jour un instantané limité de l'historique des tests GitHub Actions au chemin spécifié. Le flux de travail est chargé de télécharger l’instantané précédent avant la série de tests et de charger le fichier mis à jour par la suite. Nécessite '--report-gh'. + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Nombre de jours d'historique de tests à conserver et à utiliser pour le contexte des tests instables (1 à 90). La valeur par défaut est 30. Nécessite '--report-gh-history'. - {Locked="'--report-gh-history'"} + Nombre de jours d'historique de tests à conserver et à utiliser pour le contexte des tests instables (1 à 90). La valeur par défaut est 30. Nécessite '--report-gh-history'. + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - L'option '--report-gh-history-window' nécessite que '--report-gh-history' soit spécifiée. - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + L'option '--report-gh-history-window' nécessite que '--report-gh-history' soit spécifiée. + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - Section du résumé de travail GitHub Actions '{0}' non valide. Les valeurs valides sont 'test-results', 'slow-tests', 'coverage' ou 'all'. Vous pouvez répéter des valeurs ou les séparer par des espaces ou des virgules. - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Section du résumé de travail GitHub Actions '{0}' non valide. Les valeurs valides sont 'test-results', 'slow-tests', 'coverage' ou 'all'. Vous pouvez répéter des valeurs ou les séparer par des espaces ou des virgules. + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - Valeur '{0}' non valide. Les valeurs valides sont 'on' (ou 'true', 'enable', '1'), 'off' (ou 'false', 'disable', '0') ou 'on-failure'. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + Valeur '{0}' non valide. Les valeurs valides sont 'on' (ou 'true', 'enable', '1'), 'off' (ou 'false', 'disable', '0') ou 'on-failure'. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -290,12 +290,12 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - Sélectionnez le contenu inclus dans le résumé du travail GitHub Actions. Spécifiez une ou plusieurs valeurs, répétées, séparées par des espaces ou des virgules : 'test-results', 'slow-tests', 'coverage' ou 'all'. Prend la valeur 'all' par défaut. Nécessite '--report-gh'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + Sélectionnez le contenu inclus dans le résumé du travail GitHub Actions. Spécifiez une ou plusieurs valeurs, répétées, séparées par des espaces ou des virgules : 'test-results', 'slow-tests', 'coverage' ou 'all'. Prend la valeur 'all' par défaut. Nécessite '--report-gh'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - Les sous-options du rapport GitHub Actions nécessitent que l’option « --{0} » soit spécifiée. - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + Les sous-options du rapport GitHub Actions nécessitent que l’option « --{0} » soit spécifiée. + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.it.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.it.xlf index 9b0281d2fc..fdb3c2c788 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.it.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - È richiesta almeno una sezione di riepilogo del processo di GitHub Actions. I valori validi sono 'test-results', 'slow-tests', 'coverage' o 'all'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + È richiesta almeno una sezione di riepilogo del processo di GitHub Actions. I valori validi sono 'test-results', 'slow-tests', 'coverage' o 'all'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -139,8 +139,8 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - Abilitare o disabilitare l'espansione di ogni test non superato nel riepilogo di processo in una sezione comprimibile contenente il messaggio di errore, il tipo di eccezione, il percorso di origine e l'analisi dello stack. I valori validi sono 'on' (accetta anche 'true', 'enable', '1') o 'off' (accetta anche 'false', 'disable', '0'). Il valore predefinito è 'on' quando si esegue in GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + Abilitare o disabilitare l'espansione di ogni test non superato nel riepilogo di processo in una sezione comprimibile contenente il messaggio di errore, il tipo di eccezione, il percorso di origine e l'analisi dello stack. I valori validi sono 'on' (accetta anche 'true', 'enable', '1') o 'off' (accetta anche 'false', 'disable', '0'). Il valore predefinito è 'on' quando si esegue in GitHub Actions. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Leggere e aggiornare uno snapshot con vincoli della cronologia dei test di GitHub Actions nel percorso specificato. Il flusso di lavoro è responsabile del download dello snapshot precedente prima dell'esecuzione dei test e del caricamento del file aggiornato al termine. Richiede '--report-gh'. - {Locked="'--report-gh'"} + Leggere e aggiornare uno snapshot con vincoli della cronologia dei test di GitHub Actions nel percorso specificato. Il flusso di lavoro è responsabile del download dello snapshot precedente prima dell'esecuzione dei test e del caricamento del file aggiornato al termine. Richiede '--report-gh'. + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Numero di giorni di cronologia dei test da conservare e usare per il contesto dei test inattendibili (1-90). Il valore predefinito è 30. Richiede '--report-gh-history'. - {Locked="'--report-gh-history'"} + Numero di giorni di cronologia dei test da conservare e usare per il contesto dei test inattendibili (1-90). Il valore predefinito è 30. Richiede '--report-gh-history'. + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - L'opzione '--report-gh-history-window' richiede che sia specificato '--report-gh-history'. - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + L'opzione '--report-gh-history-window' richiede che sia specificato '--report-gh-history'. + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - Sezione di riepilogo del processo di GitHub Actions non valida: '{0}'. I valori validi sono 'test-results', 'slow-tests', 'coverage' o 'all'. I valori possono essere ripetuti, separati da spazi o da virgole. - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Sezione di riepilogo del processo di GitHub Actions non valida: '{0}'. I valori validi sono 'test-results', 'slow-tests', 'coverage' o 'all'. I valori possono essere ripetuti, separati da spazi o da virgole. + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - Valore '{0}' non valido. I valori validi sono 'on' (o 'true', 'enable', '1'), 'off' (o 'false', 'disable', '0') o 'on-failure'. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + Valore '{0}' non valido. I valori validi sono 'on' (o 'true', 'enable', '1'), 'off' (o 'false', 'disable', '0') o 'on-failure'. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -289,13 +289,13 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - Consente di controllare la scrittura di un riepilogo del processo in Markdown nel file GITHUB_STEP_SUMMARY. I valori validi sono 'on' (accetta anche 'true', 'enable', '1'), 'off' (accetta anche 'false', 'disable', '0') oppure 'on-failure' per scrivere il riepilogo solo quando l'esecuzione del test fallisce. Il valore predefinito è 'on' quando si esegue in GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + Consente di controllare la scrittura di un riepilogo del processo in Markdown nel file GITHUB_STEP_SUMMARY. I valori validi sono 'on' (accetta anche 'true', 'enable', '1'), 'off' (accetta anche 'false', 'disable', '0') oppure 'on-failure' per scrivere il riepilogo solo quando l'esecuzione del test fallisce. Il valore predefinito è 'on' quando si esegue in GitHub Actions. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - Selezionare il contenuto da includere nel riepilogo del processo di GitHub Actions. Specificare uno o più valori, anche ripetuti, separati da spazi o da virgole: 'test-results', 'slow-tests', 'coverage' o 'all'. Il valore predefinito è 'all'. Richiede '--report-gh'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + Selezionare il contenuto da includere nel riepilogo del processo di GitHub Actions. Specificare uno o più valori, anche ripetuti, separati da spazi o da virgole: 'test-results', 'slow-tests', 'coverage' o 'all'. Il valore predefinito è 'all'. Richiede '--report-gh'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - È necessario specificare '--{0}' per le opzioni secondarie del report di GitHub Actions. - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + È necessario specificare '--{0}' per le opzioni secondarie del report di GitHub Actions. + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ja.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ja.xlf index 407d969bcb..f5b022c830 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ja.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - 少なくとも 1 つの GitHub Actions ジョブの要約セクションが必要です。有効な値は 'test-results'、'slow-tests'、'coverage'、または 'all' です。 - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + 少なくとも 1 つの GitHub Actions ジョブの要約セクションが必要です。有効な値は 'test-results'、'slow-tests'、'coverage'、または 'all' です。 + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -139,8 +139,8 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - ジョブ概要で失敗した各テストを、失敗メッセージ、例外の種類、ソースの場所、スタック トレースを含む折りたたみ可能なセクションとして表示する機能を有効または無効にします。有効な値は、'on' ('true'、'enable'、'1' も指定可能)、または 'off' ('false'、'disable'、'0' も指定可能) です。GitHub Actions で実行する場合、既定値は 'on' です。 - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + ジョブ概要で失敗した各テストを、失敗メッセージ、例外の種類、ソースの場所、スタック トレースを含む折りたたみ可能なセクションとして表示する機能を有効または無効にします。有効な値は、'on' ('true'、'enable'、'1' も指定可能)、または 'off' ('false'、'disable'、'0' も指定可能) です。GitHub Actions で実行する場合、既定値は 'on' です。 + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - 指定されたパスで、制限付きの GitHub Actions テスト履歴スナップショットを読み取り、更新します。このワークフローは、テスト実行前に前回のスナップショットをダウンロードし、その後で更新済みのファイルをアップロードします。'--report-gh' が必要です。 - {Locked="'--report-gh'"} + 指定されたパスで、制限付きの GitHub Actions テスト履歴スナップショットを読み取り、更新します。このワークフローは、テスト実行前に前回のスナップショットをダウンロードし、その後で更新済みのファイルをアップロードします。'--report-gh' が必要です。 + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - フレーク テストのコンテキストに使用するために保持するテスト履歴の日数 (1 - 90)。既定値は 30 です。'--report-gh-history' が必要です。 - {Locked="'--report-gh-history'"} + フレーク テストのコンテキストに使用するために保持するテスト履歴の日数 (1 - 90)。既定値は 30 です。'--report-gh-history' が必要です。 + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - '--report-gh-history-window' オプションを使用するには、'--report-gh-history' を指定する必要があります。 - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + '--report-gh-history-window' オプションを使用するには、'--report-gh-history' を指定する必要があります。 + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - GitHub Actions ジョブの要約セクション '{0}' が無効です。有効な値は 'test-results'、'slow-tests'、'coverage'、または 'all' です。値は、繰り返し、スペース区切り、またはコンマ区切りにできます。 - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + GitHub Actions ジョブの要約セクション '{0}' が無効です。有効な値は 'test-results'、'slow-tests'、'coverage'、または 'all' です。値は、繰り返し、スペース区切り、またはコンマ区切りにできます。 + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - 値 '{0}' が無効です。有効な値は、'on' (または 'true'、'enable'、'1') または 'off' (または 'false'、'disable'、'0')、あるいは 'on-failure' です。 - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + 値 '{0}' が無効です。有効な値は、'on' (または 'true'、'enable'、'1') または 'off' (または 'false'、'disable'、'0')、あるいは 'on-failure' です。 + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -289,13 +289,13 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - GITHUB_STEP_SUMMARY ファイルへのマークダウン ジョブの要約の書き込みを制御します。有効な値は、'on' ('true'、'enable'、'1' も指定可能)、'off' ('false'、'disable'、'0' も指定可能)、またはテストの呼び出しが失敗した場合のみ書き込む 'on-failure' です。GitHub Actions で実行する場合、既定値は 'on' です。 - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + GITHUB_STEP_SUMMARY ファイルへのマークダウン ジョブの要約の書き込みを制御します。有効な値は、'on' ('true'、'enable'、'1' も指定可能)、'off' ('false'、'disable'、'0' も指定可能)、またはテストの呼び出しが失敗した場合のみ書き込む 'on-failure' です。GitHub Actions で実行する場合、既定値は 'on' です。 + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - GitHub Actions ジョブの要約に含めるコンテンツを選択します。'test-results'、'slow-tests'、'coverage'、または 'all' の値を、繰り返し、スペース区切り、またはコンマ区切りで 1 つ以上指定してください。既定値は 'all' です。'--report-gh' が必要です。 - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + GitHub Actions ジョブの要約に含めるコンテンツを選択します。'test-results'、'slow-tests'、'coverage'、または 'all' の値を、繰り返し、スペース区切り、またはコンマ区切りで 1 つ以上指定してください。既定値は 'all' です。'--report-gh' が必要です。 + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - GitHub Actions レポートのサブオプションでは、'--{0}' を指定する必要があります。 - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + GitHub Actions レポートのサブオプションでは、'--{0}' を指定する必要があります。 + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ko.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ko.xlf index a99aa360c7..e5d3a3b894 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ko.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - 하나 이상의 GitHub Actions 작업 요약 섹션이 필요합니다. 유효한 값은 'test-results', 'slow-tests', 'coverage' 또는 'all'입니다. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + 하나 이상의 GitHub Actions 작업 요약 섹션이 필요합니다. 유효한 값은 'test-results', 'slow-tests', 'coverage' 또는 'all'입니다. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -139,8 +139,8 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - 작업 요약에서 실패한 각 테스트를 실패 메시지, 예외 유형, 원본 위치 및 스택 추적이 포함된 접을 수 있는 섹션으로 확장할지 여부를 설정합니다. 유효한 값은 'on'('true', 'enable', '1'도 허용) 또는 'off'('false', 'disable', '0'도 허용)입니다. GitHub Actions에서 실행할 때 기본값은 'on'입니다. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + 작업 요약에서 실패한 각 테스트를 실패 메시지, 예외 유형, 원본 위치 및 스택 추적이 포함된 접을 수 있는 섹션으로 확장할지 여부를 설정합니다. 유효한 값은 'on'('true', 'enable', '1'도 허용) 또는 'off'('false', 'disable', '0'도 허용)입니다. GitHub Actions에서 실행할 때 기본값은 'on'입니다. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - 지정된 경로에서 바인딩된 GitHub Actions 테스트 기록 스냅샷을 읽고 업데이트합니다. 워크플로는 테스트 실행 전에 이전 스냅샷을 다운로드하고 나중에 업데이트된 파일을 업로드합니다. '--report-gh'가 필요합니다. - {Locked="'--report-gh'"} + 지정된 경로에서 바인딩된 GitHub Actions 테스트 기록 스냅샷을 읽고 업데이트합니다. 워크플로는 테스트 실행 전에 이전 스냅샷을 다운로드하고 나중에 업데이트된 파일을 업로드합니다. '--report-gh'가 필요합니다. + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - 불안정한 테스트 컨텍스트에 보존하고 사용할 테스트 기록의 일 수입니다(1-90). 기본값은 30입니다. '--report-gh-history'가 필요합니다. - {Locked="'--report-gh-history'"} + 불안정한 테스트 컨텍스트에 보존하고 사용할 테스트 기록의 일 수입니다(1-90). 기본값은 30입니다. '--report-gh-history'가 필요합니다. + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - '--report-gh-history-window' 옵션을 사용하려면 '--report-gh-history'를 지정해야 합니다. - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + '--report-gh-history-window' 옵션을 사용하려면 '--report-gh-history'를 지정해야 합니다. + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - 잘못된 GitHub Actions 작업 요약 섹션 '{0}'입니다. 유효한 값은 'test-results', 'slow-tests', 'coverage' 또는 'all'입니다. 값은 반복되거나 공백이나 쉼표로 구분할 수 있습니다. - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + 잘못된 GitHub Actions 작업 요약 섹션 '{0}'입니다. 유효한 값은 'test-results', 'slow-tests', 'coverage' 또는 'all'입니다. 값은 반복되거나 공백이나 쉼표로 구분할 수 있습니다. + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - 값 '{0}'이(가) 잘못되었습니다. 유효한 값은 'on'(또는 'true', 'enable', '1'), 'off'(또는 'false', 'disable', '0') 또는 'on-failure'입니다. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + 값 '{0}'이(가) 잘못되었습니다. 유효한 값은 'on'(또는 'true', 'enable', '1'), 'off'(또는 'false', 'disable', '0') 또는 'on-failure'입니다. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -289,13 +289,13 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - GITHUB_STEP_SUMMARY 파일에 markdown 작업 요약을 작성하는 것을 제어합니다. 유효한 값은 'on'('true', 'enable', '1'도 허용), 'off'('false', 'disable', '0'도 허용) 또는 테스트 호출이 실패할 때만 작성하는 'on-failure'입니다. GitHub Actions에서 실행할 때 기본값은 'on'입니다. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + GITHUB_STEP_SUMMARY 파일에 markdown 작업 요약을 작성하는 것을 제어합니다. 유효한 값은 'on'('true', 'enable', '1'도 허용), 'off'('false', 'disable', '0'도 허용) 또는 테스트 호출이 실패할 때만 작성하는 'on-failure'입니다. GitHub Actions에서 실행할 때 기본값은 'on'입니다. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - GitHub Actions 작업 요약에 포함된 콘텐츠를 선택합니다. 'test-results', 'slow-tests', 'coverage' 또는 'all' 값을 하나 이상 지정하세요. 값은 반복되거나 공백이나 쉼표로 구분할 수 있습니다. 기본값은 'all'입니다. '--report-gh'가 필요합니다. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + GitHub Actions 작업 요약에 포함된 콘텐츠를 선택합니다. 'test-results', 'slow-tests', 'coverage' 또는 'all' 값을 하나 이상 지정하세요. 값은 반복되거나 공백이나 쉼표로 구분할 수 있습니다. 기본값은 'all'입니다. '--report-gh'가 필요합니다. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - GitHub Actions 보고서 하위 옵션을 사용하려면 '--{0}'을(를) 지정해야 합니다. - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + GitHub Actions 보고서 하위 옵션을 사용하려면 '--{0}'을(를) 지정해야 합니다. + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.pl.xlf index 35cac4ba2b..b20582ab30 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.pl.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - Wymagana jest co najmniej jedna sekcja podsumowania zadania funkcji GitHub Actions. Prawidłowe wartości to „test-results”, „slow-tests”, „coverage” lub „all”. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Wymagana jest co najmniej jedna sekcja podsumowania zadania funkcji GitHub Actions. Prawidłowe wartości to „test-results”, „slow-tests”, „coverage” lub „all”. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -139,8 +139,8 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - Włącz lub wyłącz opcję rozwijania każdego nieudanego testu w podsumowaniu zadania do sekcji, którą można zwinąć, zawierającej komunikat o niepowodzeniu, typ wyjątku, lokalizację źródłową oraz ślad stosu. Dopuszczalne wartości to 'on' (akceptowane są również wartości 'true', 'enable', '1') lub 'off' (akceptowane są również wartości 'false', 'disable', '0'). Wartość domyślna to 'on' podczas uruchamiania w funkcji GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + Włącz lub wyłącz opcję rozwijania każdego nieudanego testu w podsumowaniu zadania do sekcji, którą można zwinąć, zawierającej komunikat o niepowodzeniu, typ wyjątku, lokalizację źródłową oraz ślad stosu. Dopuszczalne wartości to 'on' (akceptowane są również wartości 'true', 'enable', '1') lub 'off' (akceptowane są również wartości 'false', 'disable', '0'). Wartość domyślna to 'on' podczas uruchamiania w funkcji GitHub Actions. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Odczytaj i zaktualizuj powiązaną migawkę historii testów funkcji GitHub Actions w określonej ścieżce. Przepływ pracy odpowiada za pobranie poprzedniej migawki przed uruchomieniem testów i przekazanie zaktualizowanego pliku po jego zakończeniu. Wymaga elementu „--report-gh”. - {Locked="'--report-gh'"} + Odczytaj i zaktualizuj powiązaną migawkę historii testów funkcji GitHub Actions w określonej ścieżce. Przepływ pracy odpowiada za pobranie poprzedniej migawki przed uruchomieniem testów i przekazanie zaktualizowanego pliku po jego zakończeniu. Wymaga elementu „--report-gh”. + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Liczba dni historii testów do zachowania i użycia do kontekstu dla niestabilnych testów (1–90). Wartość domyślna to 30. Wymaga elementu „--report-gh-history”. - {Locked="'--report-gh-history'"} + Liczba dni historii testów do zachowania i użycia do kontekstu dla niestabilnych testów (1–90). Wartość domyślna to 30. Wymaga elementu „--report-gh-history”. + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - Nieprawidłowa sekcja podsumowania zadania funkcji GitHub Actions „{0}”. Prawidłowe wartości to „test-results”, „slow-tests”, „coverage” lub „all”. Wartości można powtarzać, rozdzielać spacjami lub przecinkami. - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Nieprawidłowa sekcja podsumowania zadania funkcji GitHub Actions „{0}”. Prawidłowe wartości to „test-results”, „slow-tests”, „coverage” lub „all”. Wartości można powtarzać, rozdzielać spacjami lub przecinkami. + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -290,12 +290,12 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - Wybierz zawartość zawartą w podsumowaniu zadania funkcji GitHub Actions. Określ jedną lub więcej wartości, powtórz je albo rozdziel spacjami lub przecinkami: „test-results”, „slow-tests”, „coverage” lub „all”. Wartość domyślna to „all”. Wymaga elementu „--report-gh”. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + Wybierz zawartość zawartą w podsumowaniu zadania funkcji GitHub Actions. Określ jedną lub więcej wartości, powtórz je albo rozdziel spacjami lub przecinkami: „test-results”, „slow-tests”, „coverage” lub „all”. Wartość domyślna to „all”. Wymaga elementu „--report-gh”. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - Opcje podrzędne raportu funkcji GitHub Actions wymagają określenia parametru „--{0}”. - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + Opcje podrzędne raportu funkcji GitHub Actions wymagają określenia parametru „--{0}”. + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.pt-BR.xlf index a42f3774a1..c73b8e284f 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.pt-BR.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.pt-BR.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - É necessária pelo menos uma seção de resumo de trabalho do GitHub Actions. Os valores válidos são 'test-results', 'slow-tests', 'coverage' ou 'all'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + É necessária pelo menos uma seção de resumo de trabalho do GitHub Actions. Os valores válidos são 'test-results', 'slow-tests', 'coverage' ou 'all'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -139,8 +139,8 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - Habilite ou desabilite a expansão de cada teste com falha no resumo do trabalho em uma seção recolhível com sua mensagem de falha, tipo de exceção, localização de origem e rastreamento de pilha. Os valores válidos são 'on' (também aceita 'true', 'enable', '1') ou 'off' (também aceita 'false', 'disable', '0'). O padrão é 'on' durante a execução no GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + Habilite ou desabilite a expansão de cada teste com falha no resumo do trabalho em uma seção recolhível com sua mensagem de falha, tipo de exceção, localização de origem e rastreamento de pilha. Os valores válidos são 'on' (também aceita 'true', 'enable', '1') ou 'off' (também aceita 'false', 'disable', '0'). O padrão é 'on' durante a execução no GitHub Actions. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Ler e atualizar um instantâneo limitado do histórico de testes do GitHub Actions no caminho especificado. O fluxo de trabalho é responsável por baixar o instantâneo anterior antes da execução do teste e enviar o arquivo atualizado depois. Requer '--report-gh'. - {Locked="'--report-gh'"} + Ler e atualizar um instantâneo limitado do histórico de testes do GitHub Actions no caminho especificado. O fluxo de trabalho é responsável por baixar o instantâneo anterior antes da execução do teste e enviar o arquivo atualizado depois. Requer '--report-gh'. + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Número de dias do histórico de testes a serem mantidos e usados no contexto de testes instáveis (1 a 90). O padrão é 30. Requer '--report-gh-history'. - {Locked="'--report-gh-history'"} + Número de dias do histórico de testes a serem mantidos e usados no contexto de testes instáveis (1 a 90). O padrão é 30. Requer '--report-gh-history'. + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - A opção '--report-gh-history-window' exige que '--report-gh-history' seja especificado. - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + A opção '--report-gh-history-window' exige que '--report-gh-history' seja especificado. + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - Seção de resumo de trabalho do GitHub Actions inválida: '{0}'. Os valores válidos são 'test-results', 'slow-tests', 'coverage' ou 'all'. Os valores podem ser repetidos, separados por espaços ou por vírgulas. - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Seção de resumo de trabalho do GitHub Actions inválida: '{0}'. Os valores válidos são 'test-results', 'slow-tests', 'coverage' ou 'all'. Os valores podem ser repetidos, separados por espaços ou por vírgulas. + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - Valor inválido: '{0}'. Os valores válidos são 'on' (ou 'true', 'enable', '1'), 'off' (ou 'false', 'disable', '0') ou 'on-failure'. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + Valor inválido: '{0}'. Os valores válidos são 'on' (ou 'true', 'enable', '1'), 'off' (ou 'false', 'disable', '0') ou 'on-failure'. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -289,13 +289,13 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - Controla a gravação de um resumo do trabalho em Markdown no arquivo GITHUB_STEP_SUMMARY. Os valores válidos são 'on' (também aceita 'true', 'enable', '1'), 'off' (também aceita 'false', 'disable', '0') ou 'on-failure' para gravar somente quando a invocação de teste falhar. O padrão é 'on' ao executar no GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + Controla a gravação de um resumo do trabalho em Markdown no arquivo GITHUB_STEP_SUMMARY. Os valores válidos são 'on' (também aceita 'true', 'enable', '1'), 'off' (também aceita 'false', 'disable', '0') ou 'on-failure' para gravar somente quando a invocação de teste falhar. O padrão é 'on' ao executar no GitHub Actions. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - Selecione o conteúdo incluído no resumo do trabalho do GitHub Actions. Especifique um ou mais valores, repetidos, separados por espaços ou por vírgulas: 'test-results', 'slow-tests', 'coverage' ou 'all'. O padrão é 'all'. Requer '--report-gh'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + Selecione o conteúdo incluído no resumo do trabalho do GitHub Actions. Especifique um ou mais valores, repetidos, separados por espaços ou por vírgulas: 'test-results', 'slow-tests', 'coverage' ou 'all'. O padrão é 'all'. Requer '--report-gh'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - As subopções de relatório do GitHub Actions exigem que '--{0}' seja especificado. - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + As subopções de relatório do GitHub Actions exigem que '--{0}' seja especificado. + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ru.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ru.xlf index 2e9d101411..0fa1899bf6 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.ru.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - Требуется по крайней мере один раздел сводки действий GitHub. Допустимые значения: 'test-results', 'slow-tests', 'coverage' или 'all'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Требуется по крайней мере один раздел сводки действий GitHub. Допустимые значения: 'test-results', 'slow-tests', 'coverage' или 'all'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -140,7 +140,7 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Читает и обновляет ограниченный снимок журнала тестов GitHub Actions по указанному пути. Рабочий процесс отвечает за скачивание предыдущего снимка перед запуском теста и за отправку обновленного файла после его завершения. Требуется "--report-gh". - {Locked="'--report-gh'"} + Читает и обновляет ограниченный снимок журнала тестов GitHub Actions по указанному пути. Рабочий процесс отвечает за скачивание предыдущего снимка перед запуском теста и за отправку обновленного файла после его завершения. Требуется "--report-gh". + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Число дней журнала тестов, которые нужно сохранять и использовать в качестве контекста для нестабильных тестов (1–90). По умолчанию 30. Требует "--report-gh-history". - {Locked="'--report-gh-history'"} + Число дней журнала тестов, которые нужно сохранять и использовать в качестве контекста для нестабильных тестов (1–90). По умолчанию 30. Требует "--report-gh-history". + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - Недопустимый раздел сводки задания GitHub Actions '{0}'. Допустимые значения: 'test-results', 'slow-tests', 'coverage' или 'all'. Значения могут повторяться, разделяться пробелами или запятыми. - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Недопустимый раздел сводки задания GitHub Actions '{0}'. Допустимые значения: 'test-results', 'slow-tests', 'coverage' или 'all'. Значения могут повторяться, разделяться пробелами или запятыми. + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - Недопустимое значение '{0}'. Допустимые значения: 'on' (или 'true', 'enable', '1'), 'off' (или 'false', 'disable', '0') или 'on-failure'. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + Недопустимое значение '{0}'. Допустимые значения: 'on' (или 'true', 'enable', '1'), 'off' (или 'false', 'disable', '0') или 'on-failure'. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -290,12 +290,12 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - Выберите содержимое, включенное в сводку задания действий GitHub. Укажите одно или несколько значений, повторяющихся, разделенных пробелами или запятыми: 'test-results', 'slow-tests', 'coverage' или 'all'. Значение по умолчанию: 'all'. Требуется '--report-gh'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + Выберите содержимое, включенное в сводку задания действий GitHub. Укажите одно или несколько значений, повторяющихся, разделенных пробелами или запятыми: 'test-results', 'slow-tests', 'coverage' или 'all'. Значение по умолчанию: 'all'. Требуется '--report-gh'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - Для подпараметров отчета GitHub Actions необходимо указать '--{0}'. - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + Для подпараметров отчета GitHub Actions необходимо указать '--{0}'. + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.tr.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.tr.xlf index 6af1e7cded..e2e63d42f0 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.tr.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - En az bir GitHub Actions iş özeti bölümü gereklidir. Geçerli değerler: 'test-results', 'slow-tests', 'coverage' veya 'all'. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + En az bir GitHub Actions iş özeti bölümü gereklidir. Geçerli değerler: 'test-results', 'slow-tests', 'coverage' veya 'all'. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -139,8 +139,8 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - İş özetindeki her başarısız testi hata iletisi, özel durum türü, kaynak konumu ve yığın izlemesiyle birlikte daraltılabilen bir bölüme genişletmeyi etkinleştirin veya devre dışı bırakın. Geçerli değerler: 'on' ('true', 'enable', '1' değerlerini de kabul eder) ve 'off' ('false', 'disable', '0' değerlerini de kabul eder). GitHub Actions üzerinde çalışırken varsayılan değer 'on' olur. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + İş özetindeki her başarısız testi hata iletisi, özel durum türü, kaynak konumu ve yığın izlemesiyle birlikte daraltılabilen bir bölüme genişletmeyi etkinleştirin veya devre dışı bırakın. Geçerli değerler: 'on' ('true', 'enable', '1' değerlerini de kabul eder) ve 'off' ('false', 'disable', '0' değerlerini de kabul eder). GitHub Actions üzerinde çalışırken varsayılan değer 'on' olur. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - Belirtilen yoldaki sınırlanmış GitHub Actions test geçmişi anlık görüntüsünü okuyun ve güncelleştirin. İş akışı, test çalıştırılmadan önce geçmiş anlık görüntüyü indirmekten ve ardından güncelleştirilmiş dosyayı karşıya yüklemekten sorumludur. '--report-gh' gerektirir. - {Locked="'--report-gh'"} + Belirtilen yoldaki sınırlanmış GitHub Actions test geçmişi anlık görüntüsünü okuyun ve güncelleştirin. İş akışı, test çalıştırılmadan önce geçmiş anlık görüntüyü indirmekten ve ardından güncelleştirilmiş dosyayı karşıya yüklemekten sorumludur. '--report-gh' gerektirir. + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - Kararsız test bağlamı için saklanacak ve kullanılacak test geçmişi gün sayısı (1-90). Varsayılan değer 30'dur. '--report-gh-history' gerektirir. - {Locked="'--report-gh-history'"} + Kararsız test bağlamı için saklanacak ve kullanılacak test geçmişi gün sayısı (1-90). Varsayılan değer 30'dur. '--report-gh-history' gerektirir. + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - '--report-gh-history-window' seçeneği için '--report-gh-history' belirtilmelidir. - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + '--report-gh-history-window' seçeneği için '--report-gh-history' belirtilmelidir. + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - Geçersiz GitHub Actions iş özeti bölümü “{0}”. Geçerli değerler: 'test-results', 'slow-tests', 'coverage' veya 'all'. Değerler yinelenebilir, boşlukla ayrılmış veya virgülle ayrılmış olabilir. - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + Geçersiz GitHub Actions iş özeti bölümü “{0}”. Geçerli değerler: 'test-results', 'slow-tests', 'coverage' veya 'all'. Değerler yinelenebilir, boşlukla ayrılmış veya virgülle ayrılmış olabilir. + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - Geçersiz değer '{0}'. Geçerli değerler: 'on' (veya 'true', 'enable', '1'), 'off' (veya 'false', 'disable', '0') ya da 'on-failure'. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + Geçersiz değer '{0}'. Geçerli değerler: 'on' (veya 'true', 'enable', '1'), 'off' (veya 'false', 'disable', '0') ya da 'on-failure'. + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -290,12 +290,12 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - GitHub Actions iş özetine eklenecek içeriği seçin. Bir veya daha fazla değer belirtin; yinelenebilir, boşlukla ayrılmış veya virgülle ayrılmış olabilir: 'test-results', 'slow-tests', 'coverage' veya 'all'. Varsayılan değer 'all' olur. '--report-gh' gerektirir. - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + GitHub Actions iş özetine eklenecek içeriği seçin. Bir veya daha fazla değer belirtin; yinelenebilir, boşlukla ayrılmış veya virgülle ayrılmış olabilir: 'test-results', 'slow-tests', 'coverage' veya 'all'. Varsayılan değer 'all' olur. '--report-gh' gerektirir. + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - GitHub Actions raporunun alt seçenekleri için '--{0}' belirtilmelidir. - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + GitHub Actions raporunun alt seçenekleri için '--{0}' belirtilmelidir. + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.zh-Hans.xlf index 32634ea37b..82843873fe 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.zh-Hans.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - 至少需要一个 GitHub Actions 作业摘要部分。有效值为 'test-results'、'slow-tests'、'coverage' 或 'all'。 - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + 至少需要一个 GitHub Actions 作业摘要部分。有效值为 'test-results'、'slow-tests'、'coverage' 或 'all'。 + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -139,8 +139,8 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - 启用或禁用会将作业摘要中每个失败的测试扩展为可折叠部分,并在其中包含失败消息、异常类型、源位置和堆栈跟踪。有效值为 'on' (还支持 'true'、'enable'、'1')或 'off' (还支持 'false'、'disable'、'0')。在 GitHub Actions 上运行时,默认值为 'on'。 - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + 启用或禁用会将作业摘要中每个失败的测试扩展为可折叠部分,并在其中包含失败消息、异常类型、源位置和堆栈跟踪。有效值为 'on' (还支持 'true'、'enable'、'1')或 'off' (还支持 'false'、'disable'、'0')。在 GitHub Actions 上运行时,默认值为 'on'。 + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - 读取并更新指定路径下的有界 GitHub Actions 测试历史记录快照。工作流负责在测试运行前下载先前的快照,并在之后上传更新后的文件。需要 "--report-gh"。 - {Locked="'--report-gh'"} + 读取并更新指定路径下的有界 GitHub Actions 测试历史记录快照。工作流负责在测试运行前下载先前的快照,并在之后上传更新后的文件。需要 "--report-gh"。 + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - 要保留并用于不稳定测试上下文的测试历史天数(1-90)。默认为 30。需要 "--report-gh-history"。 - {Locked="'--report-gh-history'"} + 要保留并用于不稳定测试上下文的测试历史天数(1-90)。默认为 30。需要 "--report-gh-history"。 + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - GitHub Actions 作业摘要部分“{0}”无效。有效值为 'test-results'、'slow-tests'、'coverage' 或 'all'。值可以重复、用空格分隔或用逗号分隔。 - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + GitHub Actions 作业摘要部分“{0}”无效。有效值为 'test-results'、'slow-tests'、'coverage' 或 'all'。值可以重复、用空格分隔或用逗号分隔。 + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - 值“{0}”无效。有效值为 'on' (或 'true'、'enable'、'1')、'off' (或 'false'、'disable'、'0') 或 'on-failure'。 - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + 值“{0}”无效。有效值为 'on' (或 'true'、'enable'、'1')、'off' (或 'false'、'disable'、'0') 或 'on-failure'。 + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -290,12 +290,12 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - 选择要包含在 GitHub Actions 作业摘要中的内容。指定一个或多个值,可重复、用空格分隔或用逗号分隔: 'test-results'、'slow-tests'、'coverage' 或 'all'。默认为 'all'。需要 '--report-gh'。 - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + 选择要包含在 GitHub Actions 作业摘要中的内容。指定一个或多个值,可重复、用空格分隔或用逗号分隔: 'test-results'、'slow-tests'、'coverage' 或 'all'。默认为 'all'。需要 '--report-gh'。 + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - GitHub Actions 报告子选项需要指定 "--{0}"。 - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + GitHub Actions 报告子选项需要指定 "--{0}"。 + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.zh-Hant.xlf index 07428d6286..3ad7ab0fb9 100644 --- a/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.GitHubActionsReport/Resources/xlf/GitHubActionsResources.zh-Hant.xlf @@ -24,8 +24,8 @@ At least one GitHub Actions job-summary section is required. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. - 至少需要一個 GitHub Actions 作業摘要區段。有效值為 'test-results'、'slow-tests'、'coverage' 或 'all'。 - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + 至少需要一個 GitHub Actions 作業摘要區段。有效值為 'test-results'、'slow-tests'、'coverage' 或 'all'。 + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Test run failed (exit code {0}: {1}) @@ -139,8 +139,8 @@ Enable or disable expanding each failed test in the job summary into a collapsible section with its failure message, exception type, source location and stack trace. Valid values are 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). Defaults to 'on' when running on GitHub Actions. - 啟用或停用將工作摘要中的每個失敗測試展開為可摺疊區段,並顯示其失敗訊息、例外狀況類型、來源位置和堆疊追蹤。有效值為 'on' (也接受 'true'、'enable'、'1') 或 'off' (也接受 'false'、'disable'、'0')。在 GitHub Actions 上執行時,預設為 'on'。 - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"} + 啟用或停用將工作摘要中的每個失敗測試展開為可摺疊區段,並顯示其失敗訊息、例外狀況類型、來源位置和堆疊追蹤。有效值為 'on' (也接受 'true'、'enable'、'1') 或 'off' (也接受 'false'、'disable'、'0')。在 GitHub Actions 上執行時,預設為 'on'。 + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="'disable'"}{Locked="0"} Showing the first {0} of {1} failed tests. See the workflow log or the test report for the remaining failures. @@ -179,8 +179,8 @@ Read and update a bounded GitHub Actions test history snapshot at the specified path. The workflow is responsible for downloading the prior snapshot before the test run and uploading the updated file afterward. Requires '--report-gh'. - 讀取並更新位於指定路徑的 GitHub Actions 測試歷程記錄快照。此工作流程負責在測試執行前下載先前的快照,並在執行後上傳更新後的檔案。需要 '--report-gh'。 - {Locked="'--report-gh'"} + 讀取並更新位於指定路徑的 GitHub Actions 測試歷程記錄快照。此工作流程負責在測試執行前下載先前的快照,並在執行後上傳更新後的檔案。需要 '--report-gh'。 + {Locked="--report-gh"} Historical context: passed all {0} prior runs within the {1}-day history window. @@ -189,13 +189,13 @@ Number of days of test history to retain and use for flaky-test context (1-90). Defaults to 30. Requires '--report-gh-history'. - 要保留並用於不穩定測試內容的測試歷程記錄天數 (1-90)。預設為 30。需要 '--report-gh-history'。 - {Locked="'--report-gh-history'"} + 要保留並用於不穩定測試內容的測試歷程記錄天數 (1-90)。預設為 30。需要 '--report-gh-history'。 + {Locked="--report-gh-history"} The '--report-gh-history-window' option requires '--report-gh-history' to be specified. - '--report-gh-history-window' 選項需要指定 '--report-gh-history'。 - {Locked="'--report-gh-history-window'"}{Locked="'--report-gh-history'"} + '--report-gh-history-window' 選項需要指定 '--report-gh-history'。 + {Locked="--report-gh-history-window"}{Locked="'--report-gh-history'"} Failed to write the GitHub Actions test history snapshot to '{0}': {1} @@ -224,13 +224,13 @@ Invalid GitHub Actions job-summary section '{0}'. Valid values are 'test-results', 'slow-tests', 'coverage', or 'all'. Values can be repeated, space-separated, or comma-separated. - GitHub Actions 作業摘要區段 '{0}' 無效。有效值為 'test-results'、'slow-tests'、'coverage' 或 'all'。值可以重複,並以空格或逗號分隔。 - {0} is the invalid section name. {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"} + GitHub Actions 作業摘要區段 '{0}' 無效。有效值為 'test-results'、'slow-tests'、'coverage' 或 'all'。值可以重複,並以空格或逗號分隔。 + {0} is the invalid section name. {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"} Invalid value '{0}'. Valid values are 'on' (or 'true', 'enable', '1'), 'off' (or 'false', 'disable', '0'), or 'on-failure'. - '{0}' 值無效。有效值為 'on' (或 'true'、'enable'、'1') 或 'off' (或 'false'、'disable'、'0') 或 'on-failure'。 - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{0} is the invalid value. + '{0}' 值無效。有效值為 'on' (或 'true'、'enable'、'1') 或 'off' (或 'false'、'disable'、'0') 或 'on-failure'。 + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="'0'"}{Locked="on-failure"}{0} is the invalid value. Failure details were omitted for {0} of {1} test project(s) because the error details already take up too much space. See the workflow log or the test report for their full diagnostics. @@ -289,13 +289,13 @@ Control writing a markdown job summary to the GITHUB_STEP_SUMMARY file. Valid values are 'on' (also accepts 'true', 'enable', '1'), 'off' (also accepts 'false', 'disable', '0'), or 'on-failure' to write only when the test invocation fails. Defaults to 'on' when running on GitHub Actions. - 控制將 Markdown 工作摘要寫入至 GITHUB_STEP_SUMMARY 檔案。有效值為 'on' (也接受 'true'、'enable'、'1')、'off' (也接受 'false'、'disable'、'0'),或 'on-failure',僅在測試叫用失敗時寫入。在 GitHub Actions 上執行時,預設為 'on'。 - {Locked="'on'"}{Locked="'off'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="'on-failure'"}{Locked="GITHUB_STEP_SUMMARY"} + 控制將 Markdown 工作摘要寫入至 GITHUB_STEP_SUMMARY 檔案。有效值為 'on' (也接受 'true'、'enable'、'1')、'off' (也接受 'false'、'disable'、'0'),或 'on-failure',僅在測試叫用失敗時寫入。在 GitHub Actions 上執行時,預設為 'on'。 + {Locked="'on'"}{Locked="off"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="on-failure"}{Locked="GITHUB_STEP_SUMMARY"} Select the content included in the GitHub Actions job summary. Specify one or more values, repeated, space-separated, or comma-separated: 'test-results', 'slow-tests', 'coverage', or 'all'. Defaults to 'all'. Requires '--report-gh'. - 選取要包含在 GitHub Actions 作業摘要中的內容。請指定一或多個值,可重複,並以空格或逗號分隔:'test-results'、'slow-tests'、'coverage' 或 'all'。預設為 'all'。需要 '--report-gh'。 - {Locked="'test-results'"}{Locked="'slow-tests'"}{Locked="'coverage'"}{Locked="'all'"}{Locked="'--report-gh'"} + 選取要包含在 GitHub Actions 作業摘要中的內容。請指定一或多個值,可重複,並以空格或逗號分隔:'test-results'、'slow-tests'、'coverage' 或 'all'。預設為 'all'。需要 '--report-gh'。 + {Locked="test-results"}{Locked="slow-tests"}{Locked="coverage"}{Locked="all"}{Locked="--report-gh"} Failed to write the GitHub Actions job summary to '{0}': {1} @@ -304,8 +304,8 @@ The GitHub Actions report sub-options require '--{0}' to be specified. - GitHub Actions 報告子選項需要指定 '--{0}'。 - Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="'--{0}'"} + GitHub Actions 報告子選項需要指定 '--{0}'。 + Validation error when a sub-option is used without the report option. {0} is the report option name. {Locked="--{0}"} condensed to one line because the summary already takes up too much space. See the workflow log or the test report for full results. diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/ExtensionResources.resx b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/ExtensionResources.resx index 58217cb583..b40683b8be 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/ExtensionResources.resx +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/ExtensionResources.resx @@ -110,7 +110,7 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.cs.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.cs.xlf index 57f21d9267..c9e47d7403 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.cs.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - Název vygenerované sestavy HTML. Může obsahovat relativní nebo absolutní cestu. Relativní cesty se překládají na adresář výsledků testů a vytvoří se chybějící adresáře. + Název vygenerované sestavy HTML. Může obsahovat relativní nebo absolutní cestu. Relativní cesty se překládají na adresář výsledků testů a vytvoří se chybějící adresáře. Podporuje následující zástupné symboly: {pname} (název testovací aplikace), {pid} (ID procesu), {asm} (název sestavení položky), {tfm} (moniker cílové architektury), {arch} (architektura procesu), {time} (časové razítko). Příklad: MyReport_{tfm}.html. - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.de.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.de.xlf index 038bb3a4ba..79b55bbce5 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.de.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - Der Name des generierten HTML-Berichts. Kann einen relativen oder absoluten Pfad enthalten. Relative Pfade werden anhand des Verzeichnisses mit den Testergebnissen aufgelöst, und fehlende Verzeichnisse werden erstellt. + Der Name des generierten HTML-Berichts. Kann einen relativen oder absoluten Pfad enthalten. Relative Pfade werden anhand des Verzeichnisses mit den Testergebnissen aufgelöst, und fehlende Verzeichnisse werden erstellt. Unterstützt die folgenden Platzhalter: {pname} (Name der Testanwendung), {pid} (Prozess-ID), {asm} (Name der Eintragsassembly), {tfm} (Zielframeworkmoniker), {arch} (Prozessorarchitektur), {time} (Zeitstempel). Beispiel: „MyReport_{tfm}.html“. - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.es.xlf index 05a5d2cdf0..83c41a4a63 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.es.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - Nombre del informe HTML generado. Puede incluir una ruta de acceso relativa o absoluta; las rutas de acceso relativas se resuelven respecto al directorio de resultados de pruebas y se crean los directorios que falten. + Nombre del informe HTML generado. Puede incluir una ruta de acceso relativa o absoluta; las rutas de acceso relativas se resuelven respecto al directorio de resultados de pruebas y se crean los directorios que falten. Admite los siguientes marcadores de posición: {pname} (nombre de la aplicación de prueba), {pid} (id. de proceso), {asm} (nombre del ensamblado de entrada), {tfm} (moniker de la plataforma de destino), {arch} (arquitectura del proceso), {time} (marca de tiempo). Ejemplo: "MyReport_{tfm}.html". - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.fr.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.fr.xlf index 1eb1e976eb..5208531253 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.fr.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - Le nom du rapport HTML généré. Peut inclure un chemin d’accès relatif ou absolu. Les chemins relatifs sont résolus sur le répertoire des résultats des tests et les répertoires manquants sont créés. + Le nom du rapport HTML généré. Peut inclure un chemin d’accès relatif ou absolu. Les chemins relatifs sont résolus sur le répertoire des résultats des tests et les répertoires manquants sont créés. Permet de prendre en charge les espaces réservés suivants: {pname} (nom de l’application de test), {pid} (ID de processus), {asm} (nom de l’assembly d’entrée), {tfm} (moniker de framework cible), {arch} (architecture du processus), {time} (horodateur). Exemple : 'MyReport_{tfm}.html'. - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.it.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.it.xlf index b380e5353a..14a5834998 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.it.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - Nome del report HTML generato. Può includere un percorso relativo o assoluto. I percorsi relativi vengono risolti rispetto alla directory dei risultati del test e le directory mancanti vengono create. + Nome del report HTML generato. Può includere un percorso relativo o assoluto. I percorsi relativi vengono risolti rispetto alla directory dei risultati del test e le directory mancanti vengono create. Supporta i seguenti segnaposto: {pname} (nome dell'applicazione di test), {pid} (ID processo), {asm} (nome dell'assembly di immissione), {tfm} (moniker framework di destinazione), {arch} (architettura processo), {time} (timestamp). Esempio: 'MyReport_{tfm}.html'. - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ja.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ja.xlf index 5f22724b33..68e87ff0d3 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ja.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - 生成された HTML レポートの名前。相対または絶対パスを含めることができます。相対パスはテスト結果ディレクトリを基準に解決され、存在しないディレクトリは作成されます。 + 生成された HTML レポートの名前。相対または絶対パスを含めることができます。相対パスはテスト結果ディレクトリを基準に解決され、存在しないディレクトリは作成されます。 次のプレースホルダーがサポートされています: {pname} (テスト アプリケーション名)、{pid} (プロセス ID)、{asm} (エントリ アセンブリ名)、{tfm} (ターゲット フレームワーク モニカー)、{arch} (プロセス アーキテクチャ)、{time} (タイムスタンプ)。 例: 'MyReport_{tfm}.html'。 - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ko.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ko.xlf index 8596ef0904..8bdd6791d3 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ko.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - 생성된 HTML 보고서의 이름입니다. 상대 경로 또는 절대 경로를 사용할 수 있습니다. 상대 경로는 테스트 결과 디렉터리를 기준으로 확인되며, 없는 디렉터리는 만들어집니다. + 생성된 HTML 보고서의 이름입니다. 상대 경로 또는 절대 경로를 사용할 수 있습니다. 상대 경로는 테스트 결과 디렉터리를 기준으로 확인되며, 없는 디렉터리는 만들어집니다. 자리 표시자 {pname}(테스트 애플리케이션 이름), {pid}(프로세스 ID), {asm}(항목 어셈블리 이름), {tfm}(대상 프레임워크 모니커), {arch}(프로세스 아키텍처), {time}(타임스탬프)을(를) 지원합니다. 예: 'MyReport_{tfm}.html'. - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.pl.xlf index 762e56dcd2..a0d7038bad 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.pl.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - Nazwa wygenerowanego raportu HTML. Może zawierać ścieżkę względną lub bezwzględną; ścieżki względne są rozpoznawane względem katalogu wyników testów, a brakujące katalogi są tworzone. + Nazwa wygenerowanego raportu HTML. Może zawierać ścieżkę względną lub bezwzględną; ścieżki względne są rozpoznawane względem katalogu wyników testów, a brakujące katalogi są tworzone. Obsługuje następujące symbole zastępcze: {pname} (nazwa aplikacji testowej), {pid} (identyfikator procesu), {asm} (nazwa zestawu danych wejściowych), {tfm} (moniker platformy docelowej), {arch} (architektura procesu), {time} (sygnatura czasowa). Przykład: „MyReport_{tfm}.html”. - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.pt-BR.xlf index 535dec9ba4..ccf0aeb1f4 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.pt-BR.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.pt-BR.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - O nome do relatório HTML gerado. Pode incluir um caminho relativo ou absoluto; os caminhos relativos são resolvidos em relação ao diretório de resultados de teste, e os diretórios ausentes são criados. + O nome do relatório HTML gerado. Pode incluir um caminho relativo ou absoluto; os caminhos relativos são resolvidos em relação ao diretório de resultados de teste, e os diretórios ausentes são criados. Dá suporte aos seguintes espaços reservados: {pname} (nome do aplicativo de teste), {pid} (ID do processo), {asm} (nome do assembly de entrada), {tfm} (moniker da estrutura de destino), {arch} (arquitetura do processo), {time} (carimbo de data e hora). Exemplo: 'MyReport_{tfm}.html'. - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ru.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ru.xlf index 5f2187f6a3..8e943b5609 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.ru.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - Имя сгенерированного отчета в формате HTML. Может включать относительный или абсолютный путь; относительные пути разрешаются относительно каталога результатов тестов, а отсутствующие каталоги создаются. + Имя сгенерированного отчета в формате HTML. Может включать относительный или абсолютный путь; относительные пути разрешаются относительно каталога результатов тестов, а отсутствующие каталоги создаются. Поддерживает следующие заполнители: {pname} (имя тестового приложения), {pid} (идентификатор процесса), {asm} (имя входной сборки), {tfm} (моникер целевой платформы), {arch} (архитектура процесса), {time} (метка времени). Пример: "MyReport_{tfm}.html". - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.tr.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.tr.xlf index 755800ed9a..2d8255ec37 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.tr.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - Oluşturulan HTML raporunun adı. Göreli veya mutlak yol içerebilir; göreli yollar test sonuçları dizinine göre çözülmüş ve eksik dizinler oluşturulur. + Oluşturulan HTML raporunun adı. Göreli veya mutlak yol içerebilir; göreli yollar test sonuçları dizinine göre çözülmüş ve eksik dizinler oluşturulur. Şu yer tutucuları destekler: {pname} (test uygulaması adı), {pid} (işlem kimliği), {asm} (girdi derleme adı), {tfm} (hedef çerçeve bilinen adı), {arch} (işlem mimarisi), {time} (zaman damgası). Örnek: 'MyReport_{tfm}.html'. - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.zh-Hans.xlf index 4acb1af1b9..2bb27a0e6f 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.zh-Hans.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - 生成的 HTML 报表的名称。可以包含相对路径或绝对路径;相对路径针对测试结果目录进行解析,并创建缺少的目录。 + 生成的 HTML 报表的名称。可以包含相对路径或绝对路径;相对路径针对测试结果目录进行解析,并创建缺少的目录。 支持以下占位符: {pname} (测试应用程序名称)、{pid} (进程 ID)、{asm} (入口程序集名称)、{tfm} (目标框架名字对象)、{arch} (进程体系结果)、{time} (时间戳)。 示例: "MyReport_{tfm}.html"。 - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.zh-Hant.xlf index ef079087b9..0ff406f97f 100644 --- a/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.HtmlReport/Resources/xlf/ExtensionResources.zh-Hant.xlf @@ -56,10 +56,10 @@ The name of the generated HTML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.html'. - 產生的 HTML 報告名稱。可以包含相對或絕對路徑; 系統會針對測試結果目錄解析相對路徑,並建立遺漏的目錄。 + 產生的 HTML 報告名稱。可以包含相對或絕對路徑; 系統會針對測試結果目錄解析相對路徑,並建立遺漏的目錄。 支援下列預留位置: {pname}(測試應用程式名稱)、{pid}(處理序識別碼)、{asm}(進入組件名稱)、{tfm}(目標 Framework Moniker)、{arch} (處理序結構)、{time}(時間戳記)。 範例: 'MyReport_{tfm}.html'。 - Do not localize option name {Locked="--report-html-filename"}, format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="'MyReport_{tfm}.html'"}. + Do not localize format name {Locked="HTML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".html"}, or example file name {Locked="MyReport_{tfm}.html"}. '--report-html-filename' relative paths must stay under the test results directory (e.g. --report-html-filename nested/myreport.html) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/ExtensionResources.resx b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/ExtensionResources.resx index 1fd099dec7..3cfb7c6470 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/ExtensionResources.resx +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/ExtensionResources.resx @@ -169,7 +169,7 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.cs.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.cs.xlf index ef8a6b82c2..878317b75e 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.cs.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - Název vygenerované sestavy JUnit XML. Může obsahovat relativní nebo absolutní cestu. Relativní cesty se překládají na adresář výsledků testů a vytvoří se chybějící adresáře. + Název vygenerované sestavy JUnit XML. Může obsahovat relativní nebo absolutní cestu. Relativní cesty se překládají na adresář výsledků testů a vytvoří se chybějící adresáře. Podporuje následující zástupné symboly: {pname} (název testovací aplikace), {pid} (ID procesu), {asm} (název sestavení položky), {tfm} (moniker cílové architektury), {arch} (architektura procesu), {time} (časové razítko). Příklad: MyReport_{tfm}.xml. - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.de.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.de.xlf index 0a640b42ab..b155b28abb 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.de.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - Der Name des generierten JUnit XML-Berichts. Kann einen relativen oder absoluten Pfad enthalten. Relative Pfade werden anhand des Verzeichnisses mit den Testergebnissen aufgelöst, und fehlende Verzeichnisse werden erstellt. + Der Name des generierten JUnit XML-Berichts. Kann einen relativen oder absoluten Pfad enthalten. Relative Pfade werden anhand des Verzeichnisses mit den Testergebnissen aufgelöst, und fehlende Verzeichnisse werden erstellt. Unterstützt die folgenden Platzhalter: {pname} (Name der Testanwendung), {pid} (Prozess-ID), {asm} (Name der Eintragsassembly), {tfm} (Zielframeworkmoniker), {arch} (Prozessorarchitektur), {time} (Zeitstempel). Beispiel: „MyReport_{tfm}.xml“. - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.es.xlf index 013cb4d18e..940f45189a 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.es.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - Nombre del informe XML de JUnit generado. Puede incluir una ruta de acceso relativa o absoluta; las rutas de acceso relativas se resuelven respecto al directorio de resultados de pruebas y se crean los directorios que falten. + Nombre del informe XML de JUnit generado. Puede incluir una ruta de acceso relativa o absoluta; las rutas de acceso relativas se resuelven respecto al directorio de resultados de pruebas y se crean los directorios que falten. Admite los siguientes marcadores de posición: {pname} (nombre de la aplicación de prueba), {pid} (id. de proceso), {asm} (nombre del ensamblado de entrada), {tfm} (moniker de la plataforma de destino), {arch} (arquitectura del proceso), {time} (marca de tiempo). Ejemplo: "MyReport_{tfm}.xml". - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.fr.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.fr.xlf index 1afcfebb2d..1339288b1e 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.fr.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - Le nom du rapport XML JUnit généré. Peut inclure un chemin d’accès relatif ou absolu. Les chemins relatifs sont résolus sur le répertoire des résultats des tests et les répertoires manquants sont créés. + Le nom du rapport XML JUnit généré. Peut inclure un chemin d’accès relatif ou absolu. Les chemins relatifs sont résolus sur le répertoire des résultats des tests et les répertoires manquants sont créés. Permet de prendre en charge les espaces réservés suivants: {pname} (nom de l’application de test), {pid} (ID de processus), {asm} (nom de l’assembly d’entrée), {tfm} (moniker de framework cible), {arch} (architecture du processus), {time} (horodateur). Exemple : 'MyReport_{tfm}.xml'. - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.it.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.it.xlf index a35ffa3976..ee5fe811dc 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.it.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - Nome del report XML JUnit generato. Può includere un percorso relativo o assoluto. I percorsi relativi vengono risolti rispetto alla directory dei risultati dei test e vengono create le directory mancanti. + Nome del report XML JUnit generato. Può includere un percorso relativo o assoluto. I percorsi relativi vengono risolti rispetto alla directory dei risultati dei test e vengono create le directory mancanti. Supporta i seguenti segnaposto: {pname} (nome dell'applicazione di test), {pid} (ID processo), {asm} (nome dell'assembly di immissione), {tfm} (moniker framework di destinazione), {arch} (architettura processo), {time} (timestamp). Esempio: 'MyReport_{tfm}.xml'. - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ja.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ja.xlf index 368dddfb94..2b4cacef89 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ja.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - 生成された JUnit XML レポートの名前。相対または絶対パスを含めることができます。相対パスはテスト結果ディレクトリを基準に解決され、存在しないディレクトリは作成されます。 + 生成された JUnit XML レポートの名前。相対または絶対パスを含めることができます。相対パスはテスト結果ディレクトリを基準に解決され、存在しないディレクトリは作成されます。 次のプレースホルダーがサポートされています: {pname} (テスト アプリケーション名)、{pid} (プロセス ID)、{asm} (エントリ アセンブリ名)、{tfm} (ターゲット フレームワーク モニカー)、{arch} (プロセス アーキテクチャ)、{time} (タイムスタンプ)。 例: 'MyReport_{tfm}.xml'。 - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ko.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ko.xlf index bc5d80a872..0e16720006 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ko.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - 생성된 JUnit XML 보고서의 이름입니다. 상대 경로 또는 절대 경로를 사용할 수 있습니다. 상대 경로는 테스트 결과 디렉터리를 기준으로 확인되며, 없는 디렉터리는 만들어집니다. + 생성된 JUnit XML 보고서의 이름입니다. 상대 경로 또는 절대 경로를 사용할 수 있습니다. 상대 경로는 테스트 결과 디렉터리를 기준으로 확인되며, 없는 디렉터리는 만들어집니다. 자리 표시자 {pname}(테스트 애플리케이션 이름), {pid}(프로세스 ID), {asm}(항목 어셈블리 이름), {tfm}(대상 프레임워크 모니커), {arch}(프로세스 아키텍처), {time}(타임스탬프)을(를) 지원합니다. 예: 'MyReport_{tfm}.xml'. - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.pl.xlf index 5fb2d9dd00..f05339ca28 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.pl.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - Nazwa wygenerowanego raportu XML JUnit. Może zawierać ścieżkę względną lub bezwzględną; ścieżki względne są rozpoznawane względem katalogu wyników testów, a brakujące katalogi są tworzone. + Nazwa wygenerowanego raportu XML JUnit. Może zawierać ścieżkę względną lub bezwzględną; ścieżki względne są rozpoznawane względem katalogu wyników testów, a brakujące katalogi są tworzone. Obsługuje następujące symbole zastępcze: {pname} (nazwa aplikacji testowej), {pid} (identyfikator procesu), {asm} (nazwa zestawu wejściowego), {tfm} (moniker platformy docelowej), {arch} ()architektura procesu, {time} (sygnatura czasowa). Przykład: „MyReport_{tfm}.xml”. - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.pt-BR.xlf index b372a420b6..545d596202 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.pt-BR.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.pt-BR.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - O nome do relatório XML JUnit gerado. Pode incluir um caminho relativo ou absoluto; os caminhos relativos são resolvidos em relação ao diretório de resultados de teste, e os diretórios ausentes são criados. + O nome do relatório XML JUnit gerado. Pode incluir um caminho relativo ou absoluto; os caminhos relativos são resolvidos em relação ao diretório de resultados de teste, e os diretórios ausentes são criados. Dá suporte aos seguintes espaços reservados: {pname} (nome do aplicativo de teste), {pid} (ID do processo), {asm} (nome do assembly de entrada), {tfm} (moniker da estrutura de destino), {arch} (arquitetura do processo), {time} (carimbo de data/hora). Exemplo: 'MyReport_{tfm}.xml'. - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ru.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ru.xlf index ba07a03507..dc6afe5a3b 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.ru.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - Имя сгенерированного XML-отчета JUnit. Может включать относительный или абсолютный путь; относительные пути разрешаются относительно каталога результатов тестов, а отсутствующие каталоги создаются. + Имя сгенерированного XML-отчета JUnit. Может включать относительный или абсолютный путь; относительные пути разрешаются относительно каталога результатов тестов, а отсутствующие каталоги создаются. Поддерживает следующие заполнители: {pname} (имя тестового приложения), {pid} (идентификатор процесса), {asm} (имя входной сборки), {tfm} (моникер целевой платформы), {arch} (архитектура процесса), {time} (метка времени). Пример: "MyReport_{tfm}.xml". - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.tr.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.tr.xlf index 6e51c0bd00..0fdf99fb86 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.tr.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - Oluşturulan JUnit XML raporunun adı. Göreli veya mutlak yol içerebilir; göreli yollar test sonuçları dizinine göre çözümlenir ve eksik dizinler oluşturulur. + Oluşturulan JUnit XML raporunun adı. Göreli veya mutlak yol içerebilir; göreli yollar test sonuçları dizinine göre çözümlenir ve eksik dizinler oluşturulur. Şu yer tutucuları destekler: {pname} (test uygulaması adı), {pid} (işlem kimliği), {asm} (girdi derleme adı), {tfm} (hedef çerçeve bilinen adı), {arch} (işlem mimarisi), {time} (zaman damgası). Örnek: 'MyReport_{tfm}.xml'. - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.zh-Hans.xlf index 6eb4402dac..77ff6d04e3 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.zh-Hans.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - 生成的 JUnit XML 报表的名称。可以包含相对路径或绝对路径;相对路径针对测试结果目录进行解析,并创建缺少的目录。 + 生成的 JUnit XML 报表的名称。可以包含相对路径或绝对路径;相对路径针对测试结果目录进行解析,并创建缺少的目录。 支持以下占位符: {pname} (测试应用程序名称)、{pid} (进程 ID)、{asm} (入口程序集名称)、{tfm} (目标框架名字对象)、{arch} (进程体系结果)、{time} (时间戳)。 示例: "MyReport_{tfm}.xml"。 - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.zh-Hant.xlf index 45c6d5a1f5..38d09265ad 100644 --- a/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.JUnitReport/Resources/xlf/ExtensionResources.zh-Hant.xlf @@ -61,10 +61,10 @@ The name of the generated JUnit XML report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.xml'. - 產生的 JUnit XML 報告名稱。可以包含相對或絕對路徑; 系統會針對測試結果目錄解析相對路徑,並建立遺漏的目錄。 + 產生的 JUnit XML 報告名稱。可以包含相對或絕對路徑; 系統會針對測試結果目錄解析相對路徑,並建立遺漏的目錄。 支援下列預留位置: {pname}(測試應用程式名稱)、{pid}(處理序識別碼)、{asm}(進入組件名稱)、{tfm}(目標 Framework Moniker)、{arch} (處理序結構)、{time}(時間戳記)。 範例: 'MyReport_{tfm}.xml'。 - Do not localize option name {Locked="--report-junit-filename"}, format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="'MyReport_{tfm}.xml'"}. + Do not localize format names {Locked="JUnit"}{Locked="XML"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".xml"}, or example file name {Locked="MyReport_{tfm}.xml"}. '--report-junit-filename' relative paths must stay under the test results directory (e.g. --report-junit-filename nested/myreport.xml) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/ExtensionResources.resx b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/ExtensionResources.resx index 6be1fd22be..594f73decb 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/ExtensionResources.resx +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/ExtensionResources.resx @@ -212,7 +212,7 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' requires '--report-trx' to be enabled diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.cs.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.cs.xlf index 27cd133802..7ea9ff10a5 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.cs.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - Název vygenerované sestavy TRX. Může obsahovat relativní nebo absolutní cestu. Relativní cesty se překládají na adresář výsledků testů a vytvoří se chybějící adresáře. + Název vygenerované sestavy TRX. Může obsahovat relativní nebo absolutní cestu. Relativní cesty se překládají na adresář výsledků testů a vytvoří se chybějící adresáře. Podporuje následující zástupné symboly: {pname} (název testovací aplikace), {pid} (ID procesu), {asm} (název sestavení položky), {tfm} (moniker cílové architektury), {arch} (architektura procesu), {time} (časové razítko). Příklad: MyReport_{tfm}.trx. - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.de.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.de.xlf index 354c7f2160..6776613c47 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.de.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - Der Name des generierten TRX-Berichts. Kann einen relativen oder absoluten Pfad enthalten. Relative Pfade werden anhand des Verzeichnisses mit den Testergebnissen aufgelöst, und fehlende Verzeichnisse werden erstellt. + Der Name des generierten TRX-Berichts. Kann einen relativen oder absoluten Pfad enthalten. Relative Pfade werden anhand des Verzeichnisses mit den Testergebnissen aufgelöst, und fehlende Verzeichnisse werden erstellt. Unterstützt die folgenden Platzhalter: {pname} (Name der Testanwendung), {pid} (Prozess-ID), {asm} (Name der Eintragsassembly), {tfm} (Zielframeworkmoniker), {arch} (Prozessorarchitektur), {time} (Zeitstempel). Beispiel: „MyReport_{tfm}.trx“. - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.es.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.es.xlf index a544dc434c..68605fb64e 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.es.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - Nombre del informe TRX generado. Puede incluir una ruta de acceso relativa o absoluta; las rutas de acceso relativas se resuelven respecto al directorio de resultados de pruebas y se crean los directorios que falten. + Nombre del informe TRX generado. Puede incluir una ruta de acceso relativa o absoluta; las rutas de acceso relativas se resuelven respecto al directorio de resultados de pruebas y se crean los directorios que falten. Admite los siguientes marcadores de posición: {pname} (nombre de la aplicación de prueba), {pid} (id. de proceso), {asm} (nombre del ensamblado de entrada), {tfm} (moniker de la plataforma de destino), {arch} (arquitectura del proceso), {time} (marca de tiempo). Ejemplo: "MyReport_{tfm}.trx". - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.fr.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.fr.xlf index d1ad119218..dfdb7ee4d6 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.fr.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - Le nom du rapport TRX généré. Peut inclure un chemin d’accès relatif ou absolu. Les chemins relatifs sont résolus sur le répertoire des résultats des tests et les répertoires manquants sont créés. + Le nom du rapport TRX généré. Peut inclure un chemin d’accès relatif ou absolu. Les chemins relatifs sont résolus sur le répertoire des résultats des tests et les répertoires manquants sont créés. Permet de prendre en charge les espaces réservés suivants: {pname} (nom de l’application de test), {pid} (ID de processus), {asm} (nom de l’assembly d’entrée), {tfm} (moniker de framework cible), {arch} (architecture du processus), {time} (horodateur). Exemple : 'MyReport_{tfm}.trx'. - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.it.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.it.xlf index 4323c71526..c16a9d25cd 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.it.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - Nome del report TRX generato. Può includere un percorso relativo o assoluto. I percorsi relativi vengono risolti rispetto alla directory dei risultati del test e le directory mancanti vengono create. + Nome del report TRX generato. Può includere un percorso relativo o assoluto. I percorsi relativi vengono risolti rispetto alla directory dei risultati del test e le directory mancanti vengono create. Supporta i seguenti segnaposto: {pname} (nome dell'applicazione di test), {pid} (ID processo), {asm} (nome dell'assembly di immissione), {tfm} (moniker framework di destinazione), {arch} (architettura processo), {time} (timestamp). Esempio: 'MyReport_{tfm}.trx'. - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ja.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ja.xlf index 2eebfc66b0..d7689e97cb 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ja.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - 生成された TRX レポートの名前。相対パスまたは絶対パスを含めることができます。相対パスはテスト結果ディレクトリに対して解決され、存在しないディレクトリは作成されます。 + 生成された TRX レポートの名前。相対パスまたは絶対パスを含めることができます。相対パスはテスト結果ディレクトリに対して解決され、存在しないディレクトリは作成されます。 次のプレースホルダーがサポートされています: {pname} (テスト アプリケーション名)、{pid} (プロセス ID)、{asm} (エントリ アセンブリ名)、{tfm} (ターゲット フレームワーク モニカー)、{arch} (プロセス アーキテクチャ)、{time} (タイムスタンプ)。 例: 'MyReport_{tfm}.trx'。 - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ko.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ko.xlf index d3d09645db..df2a35b992 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ko.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - 생성된 TRX 보고서의 이름입니다. 상대 경로 또는 절대 경로를 사용할 수 있습니다. 상대 경로는 테스트 결과 디렉터리를 기준으로 확인되며, 없는 디렉터리는 만들어집니다. + 생성된 TRX 보고서의 이름입니다. 상대 경로 또는 절대 경로를 사용할 수 있습니다. 상대 경로는 테스트 결과 디렉터리를 기준으로 확인되며, 없는 디렉터리는 만들어집니다. 자리 표시자 {pname}(테스트 애플리케이션 이름), {pid}(프로세스 ID), {asm}(항목 어셈블리 이름), {tfm}(대상 프레임워크 모니커), {arch}(프로세스 아키텍처), {time}(타임스탬프)을(를) 지원합니다. 예: 'MyReport_{tfm}.trx'. - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.pl.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.pl.xlf index 93b3f35db4..7b7e35bd12 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.pl.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - Nazwa wygenerowanego raportu TRX. Może zawierać ścieżkę względną lub bezwzględną; ścieżki względne są rozpoznawane względem katalogu wyników testów, a brakujące katalogi są tworzone. + Nazwa wygenerowanego raportu TRX. Może zawierać ścieżkę względną lub bezwzględną; ścieżki względne są rozpoznawane względem katalogu wyników testów, a brakujące katalogi są tworzone. Obsługuje następujące symbole zastępcze: {pname} (nazwa aplikacji testowej), {pid} (identyfikator procesu), {asm} (nazwa zestawu wejściowego), {tfm} (moniker platformy docelowej), {arch} ()architektura procesu, {time} (sygnatura czasowa). Przykład: „MyReport_{tfm}.trx”. - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.pt-BR.xlf index c68831b9d0..5854d1b81f 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.pt-BR.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.pt-BR.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - O nome do relatório TRX gerado. Pode incluir um caminho relativo ou absoluto; os caminhos relativos são resolvidos em relação ao diretório de resultados de teste, e os diretórios ausentes são criados. + O nome do relatório TRX gerado. Pode incluir um caminho relativo ou absoluto; os caminhos relativos são resolvidos em relação ao diretório de resultados de teste, e os diretórios ausentes são criados. Dá suporte aos seguintes espaços reservados: {pname} (nome do aplicativo de teste), {pid} (ID do processo), {asm} (nome do assembly de entrada), {tfm} (moniker da estrutura de destino), {arch} (arquitetura do processo), {time} (carimbo de data/hora). Exemplo: 'MyReport_{tfm}.trx'. - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ru.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ru.xlf index faa5992d47..1452ea8bb3 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.ru.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - Имя созданного отчета TRX. Может включать относительный или абсолютный путь; относительные пути разрешаются относительно каталога результатов тестов, а отсутствующие каталоги создаются. + Имя созданного отчета TRX. Может включать относительный или абсолютный путь; относительные пути разрешаются относительно каталога результатов тестов, а отсутствующие каталоги создаются. Поддерживает следующие заполнители: {pname} (имя тестового приложения), {pid} (идентификатор процесса), {asm} (имя входной сборки), {tfm} (моникер целевой платформы), {arch} (архитектура процесса), {time} (метка времени). Пример: "MyReport_{tfm}.trx". - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.tr.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.tr.xlf index e59a89dd4f..8bcddfe3e7 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.tr.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - Oluşturulan TRX raporunun adı. Göreli veya mutlak yol içerebilir; göreli yollar test sonuçları dizinine göre çözümlenir ve eksik dizinler oluşturulur. + Oluşturulan TRX raporunun adı. Göreli veya mutlak yol içerebilir; göreli yollar test sonuçları dizinine göre çözümlenir ve eksik dizinler oluşturulur. Şu yer tutucuları destekler: {pname} (test uygulaması adı), {pid} (işlem kimliği), {asm} (girdi derleme adı), {tfm} (hedef çerçeve bilinen adı), {arch} (işlem mimarisi), {time} (zaman damgası). Örnek: 'MyReport_{tfm}.trx'. - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.zh-Hans.xlf index 845fc97887..c22318a486 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.zh-Hans.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - 生成的 TRX 报表名称。可以包含相对路径或绝对路径;相对路径针对测试结果目录进行解析,并创建缺少的目录。 + 生成的 TRX 报表名称。可以包含相对路径或绝对路径;相对路径针对测试结果目录进行解析,并创建缺少的目录。 支持以下占位符: {pname} (测试应用程序名称)、{pid} (进程 ID)、{asm} (入口程序集名称)、{tfm} (目标框架名字对象)、{arch} (进程体系结果)、{time} (时间戳)。 示例: "MyReport_{tfm}.trx"。 - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.zh-Hant.xlf index bb6e3ae53c..8221336434 100644 --- a/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Extensions.TrxReport/Resources/xlf/ExtensionResources.zh-Hant.xlf @@ -126,10 +126,10 @@ The name of the generated TRX report. May include a relative or absolute path; relative paths are resolved against the test results directory and missing directories are created. Supports the following placeholders: {pname} (test application name), {pid} (process ID), {asm} (entry assembly name), {tfm} (target framework moniker), {arch} (process architecture), {time} (timestamp). Example: 'MyReport_{tfm}.trx'. - 產生的 TRX 報告名稱。可以包含相對或絕對路徑; 系統會針對測試結果目錄解析相對路徑,並建立遺漏的目錄。 + 產生的 TRX 報告名稱。可以包含相對或絕對路徑; 系統會針對測試結果目錄解析相對路徑,並建立遺漏的目錄。 支援下列預留位置: {pname}(測試應用程式名稱)、{pid}(處理序識別碼)、{asm}(進入組件名稱)、{tfm}(目標 Framework Moniker)、{arch} (處理序結構)、{time}(時間戳記)。 範例: 'MyReport_{tfm}.trx'。 - Do not localize option name {Locked="--report-trx-filename"}, format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="'MyReport_{tfm}.trx'"}. + Do not localize format name {Locked="TRX"}, placeholder tokens {Locked="{pname}"}{Locked="{pid}"}{Locked="{asm}"}{Locked="{tfm}"}{Locked="{arch}"}{Locked="{time}"}, file extension {Locked=".trx"}, or example file name {Locked="MyReport_{tfm}.trx"}. '--report-trx-filename' relative paths must stay under the test results directory (e.g. --report-trx-filename nested/myreport.trx) diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalResources.resx b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalResources.resx index 256442e46e..891a62e754 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalResources.resx +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalResources.resx @@ -216,7 +216,7 @@ Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -258,11 +258,11 @@ This option takes precedence over the deprecated --no-progress flag. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} Determines when to show captured standard output of a test. @@ -299,19 +299,19 @@ Passing the option without a value turns it on. Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results value 'all' or 'none' cannot be combined with any other value. - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Error output diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf index 38b552d864..8cc82c37ae 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf @@ -441,7 +441,7 @@ When both --ansi and --no-ansi are provided, --ansi wins. Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ When both --ansi and --no-ansi are provided, --ansi wins. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - Přednastavte bloky výsledků jednotlivých testů zobrazené v terminálu. + Přednastavte bloky výsledků jednotlivých testů zobrazené v terminálu. Platné hodnoty jsou Minimal, Normal a Detailed. Výchozí hodnota je Normal. K přesnému výběru výsledků použijte --show-test-results. - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output očekává jeden parametr s hodnotou Minimal, Normal nebo Detailed. - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + --output očekává jeden parametr s hodnotou Minimal, Normal nebo Detailed. + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,8 +546,8 @@ Platné hodnoty jsou All, Failed, None. Výchozí hodnota je All (nebo Failed, k --show-test-results value 'all' or 'none' cannot be combined with any other value. - Hodnotu all nebo none možnosti --show-test-results nelze kombinovat s žádnou jinou hodnotou. - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + Hodnotu all nebo none možnosti --show-test-results nelze kombinovat s žádnou jinou hodnotou. + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. @@ -556,17 +556,17 @@ Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results vyžaduje minimálně jednu z hodnot passed, failed, skipped, all nebo none. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results vyžaduje minimálně jednu z hodnot passed, failed, skipped, all nebo none. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results očekává jednu nebo více hodnot oddělených čárkami nebo mezerami z následujících možností: passed, failed, skipped, all nebo none. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results očekává jednu nebo více hodnot oddělených čárkami nebo mezerami z následujících možností: passed, failed, skipped, all nebo none. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.de.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.de.xlf index 23ccf648d7..e212995616 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.de.xlf @@ -441,7 +441,7 @@ When both --ansi and --no-ansi are provided, --ansi wins. Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ When both --ansi and --no-ansi are provided, --ansi wins. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - Legen Sie die pro Test angezeigten Ergebnisblöcke im Terminal fest. + Legen Sie die pro Test angezeigten Ergebnisblöcke im Terminal fest. Gültige Werte sind 'Minimal', 'Normal' und 'Detailed'. Der Standardwert ist 'Normal'. Verwenden Sie '--show-test-results' für eine genaue Auswahl des Ergebnisses. - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - „--output“ erwartet einen einzelnen Parameter mit dem Wert 'Minimal', 'Normal' oder 'Detailed'. - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + „--output“ erwartet einen einzelnen Parameter mit dem Wert 'Minimal', 'Normal' oder 'Detailed'. + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,27 +546,27 @@ Gültige Werte sind „All“, „Failed“ und „None“. Der Standardwert ist --show-test-results value 'all' or 'none' cannot be combined with any other value. - Die Werte 'all' oder 'none' für '--show-test-results' können nicht mit anderen Werten kombiniert werden. - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + Die Werte 'all' oder 'none' für '--show-test-results' können nicht mit anderen Werten kombiniert werden. + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - Wählen Sie aus, welche Testergebnisse im Terminal einen Ergebnisblock pro Test mit zugehörigen Details, Stacktrace und erfasster Ausgabe ausgeben. + Wählen Sie aus, welche Testergebnisse im Terminal einen Ergebnisblock pro Test mit zugehörigen Details, Stacktrace und erfasster Ausgabe ausgeben. Gültige Werte sind 'passed', 'failed' (deckt auch fehlerhafte, abgelaufene und abgebrochene Tests ab), 'skipped', 'all' und 'none'. Mehrere Werte können als durch Kommas oder Leerzeichen getrennte Liste oder durch mehrmaliges Angeben der Option kombiniert werden. Die Werte 'all' und 'none' können nicht mit anderen Werten kombiniert werden. Der Standardwert ist 'failed', wenn '--output' auf 'Minimal' festgelegt ist, 'failed' und 'skipped', wenn er 'Normal' ist oder weggelassen wird, und 'all', wenn er 'Detailed' ist. Ein explizites '--show-test-results' hat immer Vorrang vor '--output', unabhängig von der Reihenfolge der übergebenen Optionen. - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - „--show-test-results“ erfordert mindestens einen der folgenden Werte: 'passed', 'failed', 'skipped', 'all' oder 'none'. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + „--show-test-results“ erfordert mindestens einen der folgenden Werte: 'passed', 'failed', 'skipped', 'all' oder 'none'. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - „--show-test-results“ erwartet einen oder mehrere durch Kommas oder Leerzeichen getrennte Werte. Mögliche Werte sind 'passed', 'failed', 'skipped', 'all' und 'none'. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + „--show-test-results“ erwartet einen oder mehrere durch Kommas oder Leerzeichen getrennte Werte. Mögliche Werte sind 'passed', 'failed', 'skipped', 'all' und 'none'. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.es.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.es.xlf index 9e1b3460c9..713a8821a6 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.es.xlf @@ -437,11 +437,11 @@ Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - Controlar si se emiten caracteres de escape ANSI. + Controlar si se emiten caracteres de escape ANSI. Los valores válidos son 'auto' (valor predeterminado), 'on' (también acepta 'true', 'enable', '1') o 'off' (también acepta 'false', 'disable', '0'). 'on' fuerza los códigos de escape ANSI (incluido el movimiento del cursor) incluso cuando se redirige stdout; empareje con --progress off si solo quiere colores. Cuando se proporcionan --ansi y --no-ansi, --ansi gana. - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ Cuando se proporcionan --ansi y --no-ansi, --ansi gana. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - Preestablecer los bloques de resultados por prueba que se muestran en el terminal. + Preestablecer los bloques de resultados por prueba que se muestran en el terminal. Los valores válidos son 'Minimal', 'Normal', 'Detailed'. El valor predeterminado es 'Normal'. Use '--show-test-results' para la selección precisa de resultados. - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output espera un único parámetro con el valor 'Minimal', 'Normal' o 'Detailed'. - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + --output espera un único parámetro con el valor 'Minimal', 'Normal' o 'Detailed'. + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,27 +546,27 @@ Los valores válidos son "All", "Failed", "None". El valor predeterminado es "Al --show-test-results value 'all' or 'none' cannot be combined with any other value. - --show-test-results el valor 'all' o 'none' no se puede combinar con ningún otro valor. - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + --show-test-results el valor 'all' o 'none' no se puede combinar con ningún otro valor. + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - Selecciona qué resultados de prueba representan un bloque de resultados por prueba (con sus detalles informativos, seguimiento de la pila y salida capturada) en el terminal. + Selecciona qué resultados de prueba representan un bloque de resultados por prueba (con sus detalles informativos, seguimiento de la pila y salida capturada) en el terminal. Los valores válidos son 'passed', 'failed' (también cubre las pruebas con errores, con tiempo de espera agotado y cancelado), 'skipped', 'all' y 'none'. Combine varios valores como una lista separada por comas o espacios, o repita la opción; 'all' y 'none' no se pueden combinar con ningún otro valor. El valor predeterminado es 'failed' cuando '--output' es 'Minimal', 'failed' y 'skipped' cuando es 'Normal' u omitido, y 'all' cuando es 'Detailed'. Un '--show-test-results' explícito siempre tiene prioridad sobre '--output', independientemente del orden en que se pasen. - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results requiere al menos un valor de 'passed', 'failed', 'skipped', 'all' o 'none'. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results requiere al menos un valor de 'passed', 'failed', 'skipped', 'all' o 'none'. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results espera uno o más valores separados por comas o espacios de 'passed', 'failed', 'skipped', 'all' o 'none'. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results espera uno o más valores separados por comas o espacios de 'passed', 'failed', 'skipped', 'all' o 'none'. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.fr.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.fr.xlf index 5a1a71f48f..f577c626f5 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.fr.xlf @@ -437,11 +437,11 @@ Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - Déterminez si des caractères d’échappement ANSI sont émis. + Déterminez si des caractères d’échappement ANSI sont émis. Les valeurs valides sont 'auto' (par défaut), 'on' (accepte également 'true', 'enable', '1') ou 'off' (accepte également 'false', 'disable', '0'). 'on' force les codes d’échappement ANSI (notamment le déplacement du curseur) même lorsque stdout est redirigé, associez-le à --progress off si vous ne voulez que des couleurs. Lorsque --ansi et --no-ansi sont fournis, --ansi est prioritaire. - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ Lorsque --ansi et --no-ansi sont fournis, --ansi est prioritaire. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - Prédéfinissez les blocs de résultats par test affichés dans le terminal. + Prédéfinissez les blocs de résultats par test affichés dans le terminal. Les valeurs valides sont 'Minimal', 'Normal', 'Detailed'. La valeur par défaut est 'Normal'. Utilisez '--show-test-results' pour sélectionner précisément les résultats. - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output attend un seul paramètre avec la valeur 'Minimal', 'Normal' ou 'Detailed'. - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + --output attend un seul paramètre avec la valeur 'Minimal', 'Normal' ou 'Detailed'. + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,27 +546,27 @@ Les valeurs valides sont « All », « Failed » et « None ». La valeur --show-test-results value 'all' or 'none' cannot be combined with any other value. - Vous ne pouvez pas combiner la valeur 'all' ou 'none' de --show-test-results avec une autre valeur. - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + Vous ne pouvez pas combiner la valeur 'all' ou 'none' de --show-test-results avec une autre valeur. + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - Sélectionne les résultats de test à afficher sous forme de bloc de résultats par test, avec leurs détails, leur trace de pile et leur sortie capturée, dans le terminal. + Sélectionne les résultats de test à afficher sous forme de bloc de résultats par test, avec leurs détails, leur trace de pile et leur sortie capturée, dans le terminal. Les valeurs valides sont 'passed', 'failed' (couvre aussi les tests en erreur, expirés et annulés), 'skipped', 'all' et 'none'. Combinez plusieurs valeurs dans une liste séparée par des virgules ou des espaces, ou en répétant l’option, vous ne pouvez pas combiner 'all' et 'none' avec aucune autre valeur. La valeur par défaut est 'failed' lorsque '--output' est équivalent à 'Minimal', 'failed' et 'skipped' lorsqu’il est équivalent à 'Normal' ou s’il est omis, et 'all' lorsqu’il est équivalent à 'Detailed'. Un élément '--show-test-results' explicite prévaut toujours sur '--output', quel que soit l’ordre dans lequel ces options sont transmises. - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results nécessite au moins une valeur parmi 'passed', 'failed', 'skipped', 'all' ou 'none'. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results nécessite au moins une valeur parmi 'passed', 'failed', 'skipped', 'all' ou 'none'. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results attend une ou plusieurs valeurs séparées par des virgules ou des espaces parmi 'passed', 'failed', 'skipped', 'all' ou 'none'. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results attend une ou plusieurs valeurs séparées par des virgules ou des espaces parmi 'passed', 'failed', 'skipped', 'all' ou 'none'. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.it.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.it.xlf index 2bc6681bc6..77c6835efa 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.it.xlf @@ -437,11 +437,11 @@ Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - Controllare se vengono generati caratteri di escape ANSI. + Controllare se vengono generati caratteri di escape ANSI. I valori validi sono ''auto'' (impostazione predefinita), ''on'' (accetta anche ''true'', ''enable'', ''1'') o ''off'' (accetta anche ''false'', ''disable'', '0'). ''on'' forza i codici di escape ANSI (incluso lo spostamento del cursore) anche quando stdout viene reindirizzato; associarlo a --progress off se si desiderano solo colori. Quando vengono specificati sia --ansi sia --no-ansi, --ansi ha la priorità. - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ Quando vengono specificati sia --ansi sia --no-ansi, --ansi ha la priorità. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - Preimposta i blocchi dei risultati per test mostrati nel terminale. + Preimposta i blocchi dei risultati per test mostrati nel terminale. I valori validi sono 'Minimal', 'Normal' e 'Detailed'. L'impostazione predefinita è 'Normal'. Usa '--show-test-results' per selezionare con precisione i risultati. - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output prevede un singolo parametro con un valore 'Minimal', 'Normal' o 'Detailed'. - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + --output prevede un singolo parametro con un valore 'Minimal', 'Normal' o 'Detailed'. + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,27 +546,27 @@ I valori validi sono 'All', 'Failed', 'None'. L'impostazione predefinita è 'All --show-test-results value 'all' or 'none' cannot be combined with any other value. - Non è possibile combinare il valore '--show-test-results' 'all' o 'none' con altri valori. - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + Non è possibile combinare il valore '--show-test-results' 'all' o 'none' con altri valori. + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - Consente di selezionare quali risultati di test visualizzare in un blocco di risultati per test (con i dettagli informativi, l'analisi dello stack e l'output acquisito) nel terminale. + Consente di selezionare quali risultati di test visualizzare in un blocco di risultati per test (con i dettagli informativi, l'analisi dello stack e l'output acquisito) nel terminale. I valori validi sono 'passed', 'failed' (comprende anche i test con errori, in timeout e annullati), 'skipped', 'all' e 'none'. Combina più valori come elenco separato da virgole o spazi, oppure ripetendo l'opzione; non è possibile combinare 'all' e 'none' con altri valori. Il valore predefinito è 'failed' quando '--output' è 'Minimal', 'failed' e 'skipped' quando è 'Normal', oppure non è specificato, e 'all' quando è 'Detailed'. Un '--show-test-results' esplicito ha sempre la precedenza su '--output', indipendentemente dall'ordine in cui vengono passati. - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results richiede almeno un valore tra 'passed', 'failed', 'skipped', 'all' o 'none'. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results richiede almeno un valore tra 'passed', 'failed', 'skipped', 'all' o 'none'. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results si aspetta uno o più valori, separati da virgole o spazi, tra 'passed', 'failed', 'skipped', 'all' o 'none'. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results si aspetta uno o più valori, separati da virgole o spazi, tra 'passed', 'failed', 'skipped', 'all' o 'none'. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ja.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ja.xlf index fcb932bb08..db265fa569 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ja.xlf @@ -437,11 +437,11 @@ Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - ANSI エスケープ文字を出力するかどうかを制御します。 + ANSI エスケープ文字を出力するかどうかを制御します。 有効な値は、'auto' (既定値)、'on' ('true'、'enable'、'1' も指定可能)、または 'off' ('false'、'disable'、'0' も指定可能) です。 'on' を指定すると、stdout がリダイレクトされている場合でも、ANSI エスケープ コード (カーソルの移動を含む) が強制的に使用されます。色だけを使用する場合は、--progress off と組み合わせてください。 --ansi と --no-ansi の両方が指定されている場合は、--ansi が優先されます。 - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ When both --ansi and --no-ansi are provided, --ansi wins. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - ターミナルに表示されるテストごとの結果ブロックを事前設定します。 + ターミナルに表示されるテストごとの結果ブロックを事前設定します。 有効な値は 'Minimal'、'Normal'、'Detailed' です。既定値は 'Normal' です。正確な結果を選択するには '--show-test-results' を使用します。 - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output には、'Minimal'、'Normal'、または 'Detailed' のいずれか 1 つの値を持つ単一のパラメーターが必要です。 - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + --output には、'Minimal'、'Normal'、または 'Detailed' のいずれか 1 つの値を持つ単一のパラメーターが必要です。 + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,27 +546,27 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an --show-test-results value 'all' or 'none' cannot be combined with any other value. - --show-test-results の値 'all' または 'none' は、他の値と組み合わせることはできません。 - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + --show-test-results の値 'all' または 'none' は、他の値と組み合わせることはできません。 + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - ターミナルにテストごとの結果ブロック (詳細情報、スタック トレース、キャプチャされた出力を含む) をレンダリングするテスト結果の種類を選択します。 + ターミナルにテストごとの結果ブロック (詳細情報、スタック トレース、キャプチャされた出力を含む) をレンダリングするテスト結果の種類を選択します。 有効な値は 'passed'、'failed' (エラー、タイムアウト、およびキャンセルされたテストも含む)、'skipped'、'all'、'none' です。複数の値は、コンマ区切りまたはスペース区切りのリストとして指定するか、オプションを繰り返して指定します。'all' と 'none' は、他の値と組み合わせることはできません。 '--output' が 'Minimal' の場合の既定値は 'failed'、'Normal' の場合または省略時は 'failed' と 'skipped'、'Detailed' の場合は 'all' です。明示的な '--show-test-results' は、指定する順序にかかわらず、常に '--output' よりも優先されます。 - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results には、'passed'、'failed'、'skipped'、'all'、'none' のいずれかの値を少なくとも 1 つ指定する必要があります。 - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results には、'passed'、'failed'、'skipped'、'all'、'none' のいずれかの値を少なくとも 1 つ指定する必要があります。 + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results には、'passed'、'failed'、'skipped'、'all'、'none' のいずれかの値を 1 つ以上、コンマ区切りまたはスペース区切りで指定する必要があります。 - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results には、'passed'、'failed'、'skipped'、'all'、'none' のいずれかの値を 1 つ以上、コンマ区切りまたはスペース区切りで指定する必要があります。 + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ko.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ko.xlf index f27f8f53aa..f73e4d46cf 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ko.xlf @@ -437,11 +437,11 @@ Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - ANSI 이스케이프 문자를 출력할지 여부를 제어합니다. + ANSI 이스케이프 문자를 출력할지 여부를 제어합니다. 유효한 값은 'auto'(기본값), 'on' ('true', 'enable', '1'도 허용) 또는 'off'('false', 'disable', '0'도 허용)입니다. 'on'은 stdout이 리디렉션되어도 ANSI 이스케이프 코드(커서 이동 포함)를 강제로 적용합니다. 색상만 적용하려면 --progress off와 함께 사용하세요. --ansi와 --no-ansi가 모두 지정되면 --ansi가 우선합니다. - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ When both --ansi and --no-ansi are provided, --ansi wins. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - 터미널에 표시된 테스트별 결과 블록을 미리 설정합니다. + 터미널에 표시된 테스트별 결과 블록을 미리 설정합니다. 유효한 값은 'Minimal', 'Normal', 'Detailed'입니다. 기본값은 'Normal'입니다. 정확한 결과를 선택하기 위해 '--show-test-results'를 사용합니다. - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output에는 값이 'Minimal', 'Normal' 또는 'Detailed'인 단일 매개 변수가 필요합니다. - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + --output에는 값이 'Minimal', 'Normal' 또는 'Detailed'인 단일 매개 변수가 필요합니다. + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,27 +546,27 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an --show-test-results value 'all' or 'none' cannot be combined with any other value. - --show-test-results 값 'all' 또는 'none'은 다른 값과 결합할 수 없습니다. - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + --show-test-results 값 'all' 또는 'none'은 다른 값과 결합할 수 없습니다. + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - 터미널에서 테스트별 결과 블록(정보 세부 정보, 스택 추적 및 캡처된 출력 포함)을 렌더링하는 테스트 결과를 선택합니다. + 터미널에서 테스트별 결과 블록(정보 세부 정보, 스택 추적 및 캡처된 출력 포함)을 렌더링하는 테스트 결과를 선택합니다. 유효한 값은 'passed', 'failed'(오류 발생, 시간 초과 및 취소된 테스트 포함), 'skipped', 'all' 및 'none'입니다. 여러 값을 쉼표 또는 공백으로 구분된 목록으로 결합하거나 옵션을 반복하여 결합합니다. 'all' 및 'none'은 다른 값과 결합할 수 없습니다. 기본값은 '--output'이 'Minimal'일 때는 'failed'이고, 'Normal'이거나 생략된 경우에는 'failed'와 'skipped'이며, 'Detailed'일 때는 'all'입니다. 명시적 '--show-test-results'는 전달 순서에 관계없이 항상 '--output'보다 우선합니다. - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results에는 'passed', 'failed', 'skipped', 'all' 또는 'none' 중 하나 이상의 값이 필요합니다. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results에는 'passed', 'failed', 'skipped', 'all' 또는 'none' 중 하나 이상의 값이 필요합니다. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results에는 'passed', 'failed', 'skipped', 'all' 또는 'none' 중 하나 이상의 쉼표 또는 공백으로 구분된 값이 필요합니다. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results에는 'passed', 'failed', 'skipped', 'all' 또는 'none' 중 하나 이상의 쉼표 또는 공백으로 구분된 값이 필요합니다. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pl.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pl.xlf index bff34ce175..15e7812e88 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pl.xlf @@ -441,7 +441,7 @@ When both --ansi and --no-ansi are provided, --ansi wins. Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ When both --ansi and --no-ansi are provided, --ansi wins. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - Wstępnie ustawiono bloki wyników dla poszczególnych testów wyświetlane w terminalu. + Wstępnie ustawiono bloki wyników dla poszczególnych testów wyświetlane w terminalu. Prawidłowe wartości to 'Minimal', 'Normal', or 'Detailed'. Wartość domyślna to 'Normal'. Aby precyzyjnie wybrać wyniki, użyj opcji '--show-test-results'. - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output oczekuje jednego parametru o wartości 'Minimal', 'Normal', or 'Detailed'. - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + --output oczekuje jednego parametru o wartości 'Minimal', 'Normal', or 'Detailed'. + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,27 +546,27 @@ Prawidłowe wartości to „All”, „Failed”, „None”. Wartość domyśln --show-test-results value 'all' or 'none' cannot be combined with any other value. - Wartości --show-test-results: wartości 'all' lub 'none' nie można łączyć z żadną inną wartością. - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + Wartości --show-test-results: wartości 'all' lub 'none' nie można łączyć z żadną inną wartością. + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - Określa, które wyniki testów powodują wyświetlenie w terminalu bloku wyników dla danego testu (wraz z informacjami szczegółowymi, śladem stosu i przechwyconym wyjściem). + Określa, które wyniki testów powodują wyświetlenie w terminalu bloku wyników dla danego testu (wraz z informacjami szczegółowymi, śladem stosu i przechwyconym wyjściem). Dopuszczalne wartości to 'passed', 'failed' (obejmuje to również testy zakończone błędem, przekroczeniem limitu czasu i anulowane), 'skipped', 'all', and 'none'. Wiele wartości można połączyć, tworząc listę rozdzieloną przecinkami lub spacjami, albo poprzez powtórzenie opcji; wartości 'all' i 'none' nie można łączyć z żadną inną wartością. Domyślną wartością jest 'failed', gdy opcja '--output' ma wartość 'Minimal', 'failed' i 'skipped', gdy ma wartość 'Normal' lub została pominięta; oraz 'all', gdy ma wartość 'Detailed'. Jawny element '--show-test-results' zawsze ma pierwszeństwo przed opcją '--output', niezależnie od kolejności, w jakiej został przekazany. - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - Parametr --show-test-results wymaga podania co najmniej jednej wartości spośród: 'passed', 'failed', 'skipped', 'all', lub 'none'. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + Parametr --show-test-results wymaga podania co najmniej jednej wartości spośród: 'passed', 'failed', 'skipped', 'all', lub 'none'. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - Parametr --show-test-results oczekuje jednej lub więcej wartości oddzielonych przecinkami lub spacjami, spośród następujących: 'passed', 'failed', 'skipped', 'all', lub 'none'. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + Parametr --show-test-results oczekuje jednej lub więcej wartości oddzielonych przecinkami lub spacjami, spośród następujących: 'passed', 'failed', 'skipped', 'all', lub 'none'. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pt-BR.xlf index 2eb36aebfd..2f9af94128 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pt-BR.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pt-BR.xlf @@ -437,11 +437,11 @@ Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - Controle se os caracteres de escape ANSI são emitidos. + Controle se os caracteres de escape ANSI são emitidos. Os valores válidos são 'auto' (padrão), 'on' (também aceita 'true', 'enable', '1') ou 'off' (também aceita 'false', 'disable', '0'). 'on' força códigos de escape ANSI (incluindo movimento de cursor) mesmo quando stdout é redirecionado; emparelhe-o com --progress off se você quiser apenas cores. Quando --ansi e --no-ansi são fornecidos, --ansi ganha. - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ Quando --ansi e --no-ansi são fornecidos, --ansi ganha. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - Defina previamente os blocos de resultados por teste mostrados no terminal. + Defina previamente os blocos de resultados por teste mostrados no terminal. Os valores válidos são ''Minimal'', ''Normal'' e ''Detailed''. O padrão é ''Normal''. Use ''--show-test-results'' para selecionar o resultado com precisão. - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output espera um único parâmetro com o valor 'Minimal', 'Normal', ou 'Detailed'. - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + --output espera um único parâmetro com o valor 'Minimal', 'Normal', ou 'Detailed'. + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,27 +546,27 @@ Os valores válidos são 'All', 'Failed', 'None'. O padrão é 'All' (ou 'Failed --show-test-results value 'all' or 'none' cannot be combined with any other value. - O valor de ''--show-test-results'' ''all'' ou ''none'' não pode ser combinado com nenhum outro valor. - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + O valor de ''--show-test-results'' ''all'' ou ''none'' não pode ser combinado com nenhum outro valor. + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - Seleciona quais resultados de teste são exibidos em um bloco de resultado por teste (com seus detalhes informativos, rastreamento de pilha e saída capturada) no terminal. + Seleciona quais resultados de teste são exibidos em um bloco de resultado por teste (com seus detalhes informativos, rastreamento de pilha e saída capturada) no terminal. Os valores válidos são ''passed'', ''failed'' (também inclui testes com erro, com tempo limite e cancelados), ''skipped'', ''all'' e ''none''. Combine vários valores em uma lista separada por vírgulas ou espaços ou repetindo a opção; ''all'' e ''none'' não podem ser combinados com nenhum outro valor. O padrão é ''failed'' quando ''--output'' é ''Minimal'', ''failed'' e ''skipped'' quando é ''Normal'' ou omitido, e ''all'' quando é ''Detailed''. Um ''--show-test-results'' explícito sempre tem precedência sobre ''--output'', independentemente da ordem em que forem informados. - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results requer pelo menos um valor entre ''passed'', ''failed'', ''skipped'', ''all'' ou ''none''. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results requer pelo menos um valor entre ''passed'', ''failed'', ''skipped'', ''all'' ou ''none''. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results espera um ou mais valores separados por vírgula ou espaço entre ''passed'', ''failed'', ''skipped'', ''all'' ou ''none''. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results espera um ou mais valores separados por vírgula ou espaço entre ''passed'', ''failed'', ''skipped'', ''all'' ou ''none''. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf index 514fe221c8..4e6c0b1cf6 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf @@ -441,7 +441,7 @@ When both --ansi and --no-ansi are provided, --ansi wins. Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ When both --ansi and --no-ansi are provided, --ansi wins. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - Предварительно задает блоки результатов каждого теста, отображаемые в терминале. + Предварительно задает блоки результатов каждого теста, отображаемые в терминале. Допустимые значения:"Minimal", "Normal" или "Detailed". Значение по умолчанию: "Normal". Используйте "--show-test-results" для точного выбора результатов. - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output ожидает один параметр со значением "Minimal", "Normal" или "Detailed". - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + --output ожидает один параметр со значением "Minimal", "Normal" или "Detailed". + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,8 +546,8 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an --show-test-results value 'all' or 'none' cannot be combined with any other value. - Значение "--show-test-results" "all" или "none" нельзя использовать вместе с любым другим значением. - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + Значение "--show-test-results" "all" или "none" нельзя использовать вместе с любым другим значением. + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. @@ -556,17 +556,17 @@ Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results требует указать как минимум одно из следующих значений: "passed", "failed", "skipped", "all" или "none". - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results требует указать как минимум одно из следующих значений: "passed", "failed", "skipped", "all" или "none". + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results ожидает одно или несколько из следующих значений: "passed", "failed", "skipped", "all" или "none", разделенных запятыми или пробелами. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results ожидает одно или несколько из следующих значений: "passed", "failed", "skipped", "all" или "none", разделенных запятыми или пробелами. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.tr.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.tr.xlf index 7592004dc4..f4789d4d87 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.tr.xlf @@ -437,11 +437,11 @@ Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - ANSI kaçış karakterlerinin yayılıp yayılmadığını denetleyin. + ANSI kaçış karakterlerinin yayılıp yayılmadığını denetleyin. Geçerli değerler: 'auto' (varsayılan), 'on' ('true', 'enable', '1' değerlerini de kabul eder) ve 'off' ('false', 'disable', '0' değerlerini de kabul eder). 'on' değeri, stdout yeniden yönlendirildiğinde bile ANSI kaçış kodlarını (imleç hareketi dahil) zorlar. Yalnızca renk istiyorsanız --progress off ile birlikte kullanın. Hem --ansi hem de --no-ansi birlikte sağlandığında --ansi öncelikli olur. - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ Hem --ansi hem de --no-ansi birlikte sağlandığında --ansi öncelikli olur. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - Terminalde gösterilen test başına sonuç bloklarını önceden ayarlayın. + Terminalde gösterilen test başına sonuç bloklarını önceden ayarlayın. Geçerli değerler: 'Minimal', 'Normal', 'Detailed'. Varsayılan değer: 'Normal'. Kesin sonuç seçimi için '--show-test-results' kullanın. - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output 'Minimal', 'Normal' veya 'Detailed' değerine sahip tek bir parametre bekliyor. - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + --output 'Minimal', 'Normal' veya 'Detailed' değerine sahip tek bir parametre bekliyor. + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,27 +546,27 @@ Geçerli değerler: 'All', 'Failed', 'None'. Varsayılan değer 'All' (veya bir --show-test-results value 'all' or 'none' cannot be combined with any other value. - --show-test-results değeri 'all' veya 'none', başka hiçbir değerle birlikte kullanılamaz. - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + --show-test-results değeri 'all' veya 'none', başka hiçbir değerle birlikte kullanılamaz. + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - Terminalde hangi test sonuçlarının test başına sonuç bloğunu (bilgilendirici ayrıntıları, yığın izlemesi ve yakalanan çıktısıyla birlikte) oluşturduğunu seçer. + Terminalde hangi test sonuçlarının test başına sonuç bloğunu (bilgilendirici ayrıntıları, yığın izlemesi ve yakalanan çıktısıyla birlikte) oluşturduğunu seçer. Geçerli değerler 'passed', 'failed' (hatalı, zaman aşımına uğramış ve iptal edilmiş testleri de kapsar) 'skipped', 'all' ve 'none' değerleridir. Birden çok değeri virgülle veya boşlukla ayrılmış bir liste olarak ya da seçeneği yineleyerek birleştirin; 'all' ve 'none' başka hiçbir değerle birleştirilemez. '--output' 'Minimal' olduğunda varsayılan değer 'failed', 'Normal' olduğunda veya belirtilmediğinde 'failed' ve 'skipped', 'Detailed' olduğunda ise 'all' değeridir. Açıkça belirtilen '--show-test-results', hangi sırayla geçirildiğine bakılmaksızın her zaman '--output' değerinden önceliklidir. - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results, 'passed', 'failed', 'skipped', 'all' veya 'none' değerlerinden en az birini gerektiriyor. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results, 'passed', 'failed', 'skipped', 'all' veya 'none' değerlerinden en az birini gerektiriyor. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results, virgülle veya boşlukla ayrılmış olarak 'passed', 'failed', 'skipped', 'all' veya 'none' değerlerinden birini veya birden fazlasını bekliyor. - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results, virgülle veya boşlukla ayrılmış olarak 'passed', 'failed', 'skipped', 'all' veya 'none' değerlerinden birini veya birden fazlasını bekliyor. + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hans.xlf index c58bf1ba9f..60fc05baed 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hans.xlf @@ -437,11 +437,11 @@ Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - 控制是否发出 ANSI 转义字符。 + 控制是否发出 ANSI 转义字符。 有效值为 'auto' (默认值)、'on' (还接受 'true'、'enable'、'1')或 'off' (还接受 'false'、'disable'、'0')。 'on' 会强制使用 ANSI 转义代码(包括光标移动),即使 stdout 被重定向也是如此;如果只需要颜色,请将其与 --progress off 一起使用。 同时提供 --ansi 和 --no-ansi 时,--ansi 将生效。 - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ When both --ansi and --no-ansi are provided, --ansi wins. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - 预设终端中显示的每测试结果块。 + 预设终端中显示的每测试结果块。 有效值为 'Minimal'、'Normal'、'Detailed'。默认值为 'Normal'。使用 '--show-test-results' 进行精确的结果选择。 - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output 需要值为 'Minimal'、'Normal'或 'Detailed' 的单个参数。 - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + --output 需要值为 'Minimal'、'Normal'或 'Detailed' 的单个参数。 + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,27 +546,27 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an --show-test-results value 'all' or 'none' cannot be combined with any other value. - --show-test-results 值 'all' 或 'none' 不能与任何其他值组合。 - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + --show-test-results 值 'all' 或 'none' 不能与任何其他值组合。 + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - 选择哪些测试结果在终端中呈现每测试结果块(包含其信息性详细信息、堆栈跟踪和捕获的输出)。 + 选择哪些测试结果在终端中呈现每测试结果块(包含其信息性详细信息、堆栈跟踪和捕获的输出)。 有效值为 'passed'、'failed'(还包括错误、超时和已取消的测试)、'skipped'、'all' 和 'none'。将多个值组合为逗号或空格分隔列表,或重复该选项;'all' 和 'none' 不能与任何其他值组合。 当 '--output' 为 'Minimal' 时,默认值为 'failed',当它为 'Normal' 或省略时,默认值为 'failed' 和 'skipped',当它为 'Detailed' 时,则为 'all'。显式 '--show-test-results' 始终优先于 '--output',而无论它们的传入顺序如何。 - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results 至少需要一个来自 'passed'、'failed'、'skipped'、'all' 或 'none' 的值。 - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results 至少需要一个来自 'passed'、'failed'、'skipped'、'all' 或 'none' 的值。 + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results 需要一个或多个 'passed'、'failed'、'skipped'、'all' 或 'none' 值并使用逗号或空格分隔。 - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results 需要一个或多个 'passed'、'failed'、'skipped'、'all' 或 'none' 值并使用逗号或空格分隔。 + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hant.xlf index 086b34fbf6..7379e1ff5f 100644 --- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hant.xlf @@ -437,11 +437,11 @@ Valid values are 'auto' (default), 'on' (also accepts 'true', 'enable', '1') or 'off' (also accepts 'false', 'disable', '0'). 'on' forces ANSI escape codes (including cursor movement) even when stdout is redirected; pair it with --progress off if you only want colors. When both --ansi and --no-ansi are provided, --ansi wins. - 控制是否發出 ANSI 逸出字元。 + 控制是否發出 ANSI 逸出字元。 有效值為 'auto' (預設值)、'on' (也接受 'true'、'enable'、'1') 或 'off' (也接受 'false'、'disable'、'0')。 即使 stdout 已重新導向,'on' 會強制 ANSI 逸出程式碼 (包括游標移動); 如果您只想要色彩,將它與 --progress off 配對。 同時提供 --ansi 和 --no-ansi 時,--ansi 優先。 - {Locked="'auto'"}{Locked="'on'"}{Locked="'true'"}{Locked="'enable'"}{Locked="'1'"}{Locked="'off'"}{Locked="'false'"}{Locked="'disable'"}{Locked="'0'"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} + {Locked="auto"}{Locked="'on'"}{Locked="true"}{Locked="enable"}{Locked="1"}{Locked="off"}{Locked="false"}{Locked="disable"}{Locked="0"}{Locked="--progress off"}{Locked="--ansi"}{Locked="--no-ansi"} --ansi expects a single parameter with value 'auto', 'on' (or 'true', 'enable', '1') or 'off' (or 'false', 'disable', '0'). @@ -461,14 +461,14 @@ When both --ansi and --no-ansi are provided, --ansi wins. Preset the per-test result blocks shown in the terminal. Valid values are 'Minimal', 'Normal', 'Detailed'. Default is 'Normal'. Use '--show-test-results' for precise outcome selection. - 預設終端機中顯示的每個測試結果區塊。 + 預設終端機中顯示的每個測試結果區塊。 有效值為 'Minimal'、'Normal'、'Detailed'。預設為 'Normal'。使用 '--show-test-results' 以精確選取結果。 - {Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"} + {Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"} --output expects a single parameter with value 'Minimal', 'Normal', or 'Detailed'. - --output 需要值為 'Minimal'、'Normal' 或 'Detailed' 的單一參數。 - {Locked="--output"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"} + --output 需要值為 'Minimal'、'Normal' 或 'Detailed' 的單一參數。 + {Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"} running... {0} completed, {1} failed @@ -546,27 +546,27 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an --show-test-results value 'all' or 'none' cannot be combined with any other value. - --show-test-results 的值 'all' 或 'none' 不能與任何其他值組合。 - {Locked="--show-test-results"}{Locked="'all'"}{Locked="'none'"} + --show-test-results 的值 'all' 或 'none' 不能與任何其他值組合。 + {Locked="--show-test-results"}{Locked="all"}{Locked="none"} Selects which test outcomes render a per-test result block (with its informative details, stack trace, and captured output) in the terminal. Valid values are 'passed', 'failed' (also covers errored, timed out, and canceled tests), 'skipped', 'all', and 'none'. Combine multiple values as a comma- or space-separated list, or by repeating the option; 'all' and 'none' cannot be combined with any other value. Default is 'failed' when '--output' is 'Minimal', 'failed' and 'skipped' when it is 'Normal' or omitted, and 'all' when it is 'Detailed'. An explicit '--show-test-results' always takes precedence over '--output', regardless of the order they are passed in. - 選取哪些測試結果會在終端機中顯示每個測試的結果區塊,以及其說明詳細資料、堆疊追蹤和擷取的輸出。 + 選取哪些測試結果會在終端機中顯示每個測試的結果區塊,以及其說明詳細資料、堆疊追蹤和擷取的輸出。 有效值為 'passed'、'failed' (也包含發生錯誤、逾時和已取消的測試)、'skipped'、'all' 和 'none'。您可以將多個值組合成以逗號或空格分隔的清單,或重複使用此選項;'all' 和 'none' 不能與任何其他值組合。 當 '--output' 為 'Minimal' 時,預設值為 'failed';當為 'Normal' 或未指定時,預設值為 'failed' 和 'skipped';當為 'Detailed' 時,預設值為 'all'。無論傳遞順序為何,明確指定的 '--show-test-results' 一律優先於 '--output'。 - Do not localize the values {Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"}{Locked="'--output'"}{Locked="'Minimal'"}{Locked="'Normal'"}{Locked="'Detailed'"}{Locked="'--show-test-results'"}. + Do not localize the values {Locked="'passed'"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"}{Locked="--output"}{Locked="Minimal"}{Locked="Normal"}{Locked="Detailed"}{Locked="--show-test-results"}. --show-test-results requires at least one value from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results 至少需要一個值,值可為 'passed'、'failed'、'skipped'、'all' 或 'none'。 - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results 至少需要一個值,值可為 'passed'、'failed'、'skipped'、'all' 或 'none'。 + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} --show-test-results expects one or more comma- or space-separated values from 'passed', 'failed', 'skipped', 'all', or 'none'. - --show-test-results 接受一或多個以逗號或空格分隔的值,值可為 'passed'、'failed'、'skipped'、'all' 或 'none'。 - {Locked="--show-test-results"}{Locked="'passed'"}{Locked="'failed'"}{Locked="'skipped'"}{Locked="'all'"}{Locked="'none'"} + --show-test-results 接受一或多個以逗號或空格分隔的值,值可為 'passed'、'failed'、'skipped'、'all' 或 'none'。 + {Locked="--show-test-results"}{Locked="passed"}{Locked="failed"}{Locked="skipped"}{Locked="all"}{Locked="none"} Writes test results to terminal. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx index 15c96ead0a..0bb7a70ad1 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx +++ b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx @@ -485,19 +485,19 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -509,7 +509,7 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - {Locked="'--help'"} + {Locked="--help"} Option '--{0}' is provided by the '{1}' extension. Add a package reference to use it. @@ -781,13 +781,13 @@ Read more about Microsoft Testing Platform telemetry: https://aka.ms/testingplat The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Exit the test process if dependent process exits. PID must be provided. @@ -879,12 +879,12 @@ For more information about exit codes, see https://learn.microsoft.com/dotnet/co 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} The ILoggerFactory has not been built yet. @@ -1063,7 +1063,7 @@ Valid values are 'allow-skipped' (the default) which counts skipped tests as run Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - {Locked="'*.testingplatformextensions.json'"} + {Locked="*.testingplatformextensions.json"} Dynamically loaded test platform extensions ({0}): @@ -1139,11 +1139,11 @@ Valid values are 'allow-skipped' (the default) which counts skipped tests as run The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The extension id '{0}' is declared twice with different content: '{1}' in the extension manifest '{2}' and '{3}' in the extension manifest '{4}'. Ids must identify the same extension, otherwise one declaration would silently replace the other. @@ -1163,10 +1163,10 @@ Valid values are 'allow-skipped' (the default) which counts skipped tests as run The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf index 3a3abf649d..c003d37633 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Spuštěním --help zobrazíte možnosti zaregistrované touto testovací aplikací. Pokud tato možnost patří k rozšíření, ujistěte se, že se odkazuje na jeho balíček a že je rozšíření zaregistrované. - {Locked="'--help'"} + Spuštěním --help zobrazíte možnosti zaregistrované touto testovací aplikací. Pokud tato možnost patří k rozšíření, ujistěte se, že se odkazuje na jeho balíček a že je rozšíření zaregistrované. + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - Místo toho použijte '--crashdump' nebo '--hangdump', případně obojí. MTP odděluje diagnostiku chybových ukončení a zablokování, takže za kolektor blame nástroje VSTest neexistuje náhrada jedna ku jedné. - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + Místo toho použijte '--crashdump' nebo '--hangdump', případně obojí. MTP odděluje diagnostiku chybových ukončení a zablokování, takže za kolektor blame nástroje VSTest neexistuje náhrada jedna ku jedné. + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - Pokud chcete dosáhnout srovnatelné úrovně podrobností výstupu konzoly, použijte '--output {0}'. Výstup konzoly MTP je nakonfigurovaný jinak, takže nejde o přesnou náhradu. - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + Pokud chcete dosáhnout srovnatelné úrovně podrobností výstupu konzoly, použijte '--output {0}'. Výstup konzoly MTP je nakonfigurovaný jinak, takže nejde o přesnou náhradu. + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP používá možnosti specifické pro jednotlivé reportéry, například '--report-trx', '--report-html' a '--report-junit'. Informace o příslušné možnosti MTP najdete v dokumentaci k rozšíření reportéru. - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + MTP používá možnosti specifické pro jednotlivé reportéry, například '--report-trx', '--report-html' a '--report-junit'. Informace o příslušné možnosti MTP najdete v dokumentaci k rozšíření reportéru. + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - Pro pokrytí kódu v MTP použijte '--coverage'. Nejde o přímou náhradu kolektoru 'XPlat Code Coverage' z frameworku Coverlet. - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + Pro pokrytí kódu v MTP použijte '--coverage'. Nejde o přímou náhradu kolektoru 'XPlat Code Coverage' z frameworku Coverlet. + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - Háček rozšíření {0}.{1} ze sestavení {2}, který je deklarovaný v manifestu rozšíření {3}, je deklarovaný jako „async void“. Platforma volá háček synchronně, takže by se vrátila při prvním čekání: vše, co se zaregistruje po tomto bodu, by se zahodilo ve vlastním nastavení testovací aplikace a všechny chyby by se ztratily. Nastavte háček jako synchronní. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + Háček rozšíření {0}.{1} ze sestavení {2}, který je deklarovaný v manifestu rozšíření {3}, je deklarovaný jako „async void“. Platforma volá háček synchronně, takže by se vrátila při prvním čekání: vše, co se zaregistruje po tomto bodu, by se zahodilo ve vlastním nastavení testovací aplikace a všechny chyby by se ztratily. Nastavte háček jako synchronní. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - Háček rozšíření {0}.{1} ze sestavení {2}, který je deklarovaný v manifestu rozšíření {3}, vrací {4}, ale musí vracet „void“. Platforma volá háček synchronně, takže se nikdy nezpozoruje návratová hodnota. Konkrétně vrácená úloha by se nikdy neočekávaná a jeho registrace a selhání by se ztratily. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + Háček rozšíření {0}.{1} ze sestavení {2}, který je deklarovaný v manifestu rozšíření {3}, vrací {4}, ale musí vracet „void“. Platforma volá háček synchronně, takže se nikdy nezpozoruje návratová hodnota. Konkrétně vrácená úloha by se nikdy neočekávaná a jeho registrace a selhání by se ztratily. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - Typ {0} v sestavení '{1}, které je deklarováno v manifestu rozšíření {2}, nezpřístupňuje metodu „public static void“ s názvem {3}, která přijímá „ITestApplicationBuilder“ a „string[]“. - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + Typ {0} v sestavení '{1}, které je deklarováno v manifestu rozšíření {2}, nezpřístupňuje metodu „public static void“ s názvem {3}, která přijímá „ITestApplicationBuilder“ a „string[]“. + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - Manifest rozšíření {0} deklaruje načtení rozšíření, ale aktuální modul runtime nepodporuje dynamické načítání sestavení (například při publikování s nativním AOT). Nastavte vlastnost {1} každého rozšíření na „false“, odeberte manifest nebo odeberte {2} z příkazového řádku. - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + Manifest rozšíření {0} deklaruje načtení rozšíření, ale aktuální modul runtime nepodporuje dynamické načítání sestavení (například při publikování s nativním AOT). Nastavte vlastnost {1} každého rozšíření na „false“, odeberte manifest nebo odeberte {2} z příkazového řádku. + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Volitelně přijímá hodnotu „text“ (výchozí výstup čitelný pro člov Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Povolte načítání rozšíření testovací platformy deklarovaných manifesty „*.testingplatformextensions.json“ nalezenými vedle testovací aplikace. Ve výchozím nastavení je to zakázané. - {Locked="'*.testingplatformextensions.json'"} + Povolte načítání rozšíření testovací platformy deklarovaných manifesty „*.testingplatformextensions.json“ nalezenými vedle testovací aplikace. Ve výchozím nastavení je to zakázané. + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Volitelně přijímá hodnotu „text“ (výchozí výstup čitelný pro člov Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - Neohlašujte neúspěšnou ukončovací hodnotu zadaných ukončovacích kódů. + Neohlašujte neúspěšnou ukončovací hodnotu zadaných ukončovacích kódů. Například „--ignore-exit-code 8;9“ ignoruje ukončovací kódy 8 a 9 a v těchto případech vrátí hodnotu 0. Další informace o ukončovacích kódech najdete na https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1051,14 +1051,14 @@ Výchozí hodnota je TestResults v adresáři, který obsahuje testovací aplika 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ Přečtěte si další informace o telemetrii Microsoft Testing Platform: https: The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - Spouštěč testovacího hostitele {0} (UID: {1}) požádal o autorizaci identity zabezpečení {2} v připojení ke kontroleru testovacího hostitele, ale autorizovat je možné jen identitu jedné aplikace v sandboxu (ve Windows identifikátor zabezpečení ve tvaru 'S-1-15-2-...'). Uživatelům, skupinám ani univerzálnímu identifikátoru zabezpečení {3} se přístup nikdy neuděluje. - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + Spouštěč testovacího hostitele {0} (UID: {1}) požádal o autorizaci identity zabezpečení {2} v připojení ke kontroleru testovacího hostitele, ale autorizovat je možné jen identitu jedné aplikace v sandboxu (ve Windows identifikátor zabezpečení ve tvaru 'S-1-15-2-...'). Uživatelům, skupinám ani univerzálnímu identifikátoru zabezpečení {3} se přístup nikdy neuděluje. + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf index e49c788dab..bc0f7a7c24 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Führen Sie '--help' aus, um die von dieser Testanwendung registrierten Optionen anzuzeigen. Wenn die Option zu einer Erweiterung gehört, stellen Sie sicher, dass das zugehörige Paket als Verweis eingebunden ist und die Erweiterung registriert ist. - {Locked="'--help'"} + Führen Sie '--help' aus, um die von dieser Testanwendung registrierten Optionen anzuzeigen. Wenn die Option zu einer Erweiterung gehört, stellen Sie sicher, dass das zugehörige Paket als Verweis eingebunden ist und die Erweiterung registriert ist. + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - Verwenden Sie stattdessen „--crashdump“ und/oder „--hangdump“. MTP trennt Diagnosen für Abstürze und Hänger, daher gibt es keinen direkten Ersatz für den VSTest-Blame-Collector. - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + Verwenden Sie stattdessen „--crashdump“ und/oder „--hangdump“. MTP trennt Diagnosen für Abstürze und Hänger, daher gibt es keinen direkten Ersatz für den VSTest-Blame-Collector. + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - Verwenden Sie „--output {0}“, um eine vergleichbare Ausführlichkeit der Konsole zu erzielen. Die MTP-Konsolenausgabe ist anders konfiguriert, sodass dies kein exakter Ersatz ist. - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + Verwenden Sie „--output {0}“, um eine vergleichbare Ausführlichkeit der Konsole zu erzielen. Die MTP-Konsolenausgabe ist anders konfiguriert, sodass dies kein exakter Ersatz ist. + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP verwendet reporterspezifische Optionen wie „--report-trx“, „--report-html“ und „--report-junit“. Die MTP-Option finden Sie in der Dokumentation der Reportererweiterung. - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + MTP verwendet reporterspezifische Optionen wie „--report-trx“, „--report-html“ und „--report-junit“. Die MTP-Option finden Sie in der Dokumentation der Reportererweiterung. + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - Verwenden Sie für MTP-Code Coverage „--coverage“. Dies ist kein transparenter Ersatz für den XPlat Code Coverage-Collector von Coverlet. - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + Verwenden Sie für MTP-Code Coverage „--coverage“. Dies ist kein transparenter Ersatz für den XPlat Code Coverage-Collector von Coverlet. + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - Der Erweiterungshook „{0}.{1}“ aus der Assembly „{2}“, die im Erweiterungsmanifest „{3}“ deklariert ist, ist als „async void“ deklariert. Die Plattform ruft den Hook synchron auf, sodass er beim ersten Await-Vorgang zurückgegeben wird: Alles, was sie nach diesem Punkt registriert, würde das Setup der Testanwendung als Race ausführen, und jeder Fehler würde verloren gehen. Machen Sie den Hook synchron. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + Der Erweiterungshook „{0}.{1}“ aus der Assembly „{2}“, die im Erweiterungsmanifest „{3}“ deklariert ist, ist als „async void“ deklariert. Die Plattform ruft den Hook synchron auf, sodass er beim ersten Await-Vorgang zurückgegeben wird: Alles, was sie nach diesem Punkt registriert, würde das Setup der Testanwendung als Race ausführen, und jeder Fehler würde verloren gehen. Machen Sie den Hook synchron. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - Der Erweiterungshook „{0}.{1}“ aus der Assembly „{2}“, die im Erweiterungsmanifest „{3}“ deklariert ist, gibt „{4}“ zurück, muss aber „void“ zurückgeben. Die Plattform ruft den Hook synchron auf, sodass nie ein Rückgabewert beobachtet wird. insbesondere auf eine zurückgegebene Aufgabe wird nie gewartet, und ihre Registrierungen und Fehler gehen verloren. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + Der Erweiterungshook „{0}.{1}“ aus der Assembly „{2}“, die im Erweiterungsmanifest „{3}“ deklariert ist, gibt „{4}“ zurück, muss aber „void“ zurückgeben. Die Plattform ruft den Hook synchron auf, sodass nie ein Rückgabewert beobachtet wird. insbesondere auf eine zurückgegebene Aufgabe wird nie gewartet, und ihre Registrierungen und Fehler gehen verloren. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - Der Typ „{0}“ in der Assembly „{1}“, der im Erweiterungsmanifest „{2}“ deklariert ist, macht keine „public static void“-Methode namens „{3}“ verfügbar, die einen „ITestApplicationBuilder“ und einen „string[]“ verwendet. - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + Der Typ „{0}“ in der Assembly „{1}“, der im Erweiterungsmanifest „{2}“ deklariert ist, macht keine „public static void“-Methode namens „{3}“ verfügbar, die einen „ITestApplicationBuilder“ und einen „string[]“ verwendet. + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - Das Erweiterungsmanifest „{0}“ deklariert Erweiterungen zum Laden, aber die aktuelle Runtime unterstützt das dynamische Laden von Assemblys nicht (z. B. bei Veröffentlichung mit nativem AOT). Legen Sie die Eigenschaft „{1}“ jeder Erweiterung auf „false“ fest, entfernen Sie das Manifest, oder entfernen Sie „{2}“ aus der Befehlszeile. - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + Das Erweiterungsmanifest „{0}“ deklariert Erweiterungen zum Laden, aber die aktuelle Runtime unterstützt das dynamische Laden von Assemblys nicht (z. B. bei Veröffentlichung mit nativem AOT). Legen Sie die Eigenschaft „{1}“ jeder Erweiterung auf „false“ fest, entfernen Sie das Manifest, oder entfernen Sie „{2}“ aus der Befehlszeile. + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Akzeptiert optional „text“ (die standardmäsige lesbare Ausgabe) oder „jso Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Aktivieren Sie das Laden von Testplattformerweiterungen, die von den Manifesten „*.testingplatformextensions.json“ deklariert wurden, die neben der Testanwendung gefunden wurden. Standardmäßig deaktiviert. - {Locked="'*.testingplatformextensions.json'"} + Aktivieren Sie das Laden von Testplattformerweiterungen, die von den Manifesten „*.testingplatformextensions.json“ deklariert wurden, die neben der Testanwendung gefunden wurden. Standardmäßig deaktiviert. + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Akzeptiert optional „text“ (die standardmäsige lesbare Ausgabe) oder „jso Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - Keinen nicht erfolgreichen Beendigungswert für die angegebenen Exitcodes melden. + Keinen nicht erfolgreichen Beendigungswert für die angegebenen Exitcodes melden. Beispiel: „--ignore-exit-code 8;9“ ignoriert die Exitcodes 8 und 9 und gibt in diesen Fällen 0 zurück. Weitere Informationen zu Exitcodes finden Sie unter https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1051,14 +1051,14 @@ Der Standardwert ist "TestResults" im Verzeichnis, das die Testanwendung enthäl 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - Eine globale Testausführungszeitüberschreitung. + Eine globale Testausführungszeitüberschreitung. Verwendet ein Argument als Zeitwert mit einem expliziten Einheitensuffix. Akzeptierte Suffixe sind 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', z. B. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ Weitere Informationen zu Microsoft Testing Platform-Telemetriedaten: https://aka The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - Der Testhost-Launcher „{0}“ (UID: {1}) hat angefordert, die Sicherheitsidentität „{2}“ für die Testhostcontrollerverbindung zu autorisieren. Es kann jedoch nur die Identität einer einzelnen Sandbox-App autorisiert werden (unter Windows eine Sicherheits-ID im Format „S-1-15-2-...“). Benutzern, Gruppen und dem Sammelbezeichner „{3}“ wird niemals Zugriff gewährt. - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + Der Testhost-Launcher „{0}“ (UID: {1}) hat angefordert, die Sicherheitsidentität „{2}“ für die Testhostcontrollerverbindung zu autorisieren. Es kann jedoch nur die Identität einer einzelnen Sandbox-App autorisiert werden (unter Windows eine Sicherheits-ID im Format „S-1-15-2-...“). Benutzern, Gruppen und dem Sammelbezeichner „{3}“ wird niemals Zugriff gewährt. + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf index 77155f3f2b..f77fe36057 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Ejecute "--help" para ver las opciones registradas por esta aplicación de prueba. Si la opción pertenece a una extensión, asegúrese de que se hace referencia a su paquete y de que la extensión está registrada. - {Locked="'--help'"} + Ejecute "--help" para ver las opciones registradas por esta aplicación de prueba. Si la opción pertenece a una extensión, asegúrese de que se hace referencia a su paquete y de que la extensión está registrada. + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - Use '--crashdump' y/o '--hangdump' en su lugar. MTP separa los diagnósticos de bloqueos y cuelgues, por lo que no existe un reemplazo uno a uno para el recopilador de VSTest de errores. - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + Use '--crashdump' y/o '--hangdump' en su lugar. MTP separa los diagnósticos de bloqueos y cuelgues, por lo que no existe un reemplazo uno a uno para el recopilador de VSTest de errores. + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - Para un nivel de detalle de consola comparable, use '--output {0}'. La salida de consola de MTP se configura de forma diferente, por lo que no se trata de un reemplazo exacto. - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + Para un nivel de detalle de consola comparable, use '--output {0}'. La salida de consola de MTP se configura de forma diferente, por lo que no se trata de un reemplazo exacto. + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP usa opciones específicas del informador, como '--report-trx', '--report-html' y '--report-junit'. Consulte la documentación de la extensión del informador para conocer su opción de MTP. - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + MTP usa opciones específicas del informador, como '--report-trx', '--report-html' y '--report-junit'. Consulte la documentación de la extensión del informador para conocer su opción de MTP. + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - Para la cobertura de código en MTP, use '--coverage'. Este no es un reemplazo transparente del recopilador 'XPlat Code Coverage' de Coverlet. - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + Para la cobertura de código en MTP, use '--coverage'. Este no es un reemplazo transparente del recopilador 'XPlat Code Coverage' de Coverlet. + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - El enlace de extensión "{0}.{1}" del ensamblado "{2}" declarado en el manifiesto de extensión "{3}" se declara como "async void". La plataforma invoca el enlace de forma sincrónica, por lo que devolvería en su primera espera: cualquier cosa que registre después de ese punto ejecutaría la propia configuración de la aplicación de prueba y se perdería cualquier error. Haga que el enlace sea sincrónico. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + El enlace de extensión "{0}.{1}" del ensamblado "{2}" declarado en el manifiesto de extensión "{3}" se declara como "async void". La plataforma invoca el enlace de forma sincrónica, por lo que devolvería en su primera espera: cualquier cosa que registre después de ese punto ejecutaría la propia configuración de la aplicación de prueba y se perdería cualquier error. Haga que el enlace sea sincrónico. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - El enlace de extensión "{0}.{1}" del ensamblado "{2}" declarado en el manifiesto de extensión "{3}" devuelve "{4}", pero debe devolver "void". La plataforma invoca el gancho de forma síncrona, por lo que nunca se observa ningún valor devuelto; en particular, una tarea devuelta nunca se esperaría, y sus registros y errores se perderían. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + El enlace de extensión "{0}.{1}" del ensamblado "{2}" declarado en el manifiesto de extensión "{3}" devuelve "{4}", pero debe devolver "void". La plataforma invoca el gancho de forma síncrona, por lo que nunca se observa ningún valor devuelto; en particular, una tarea devuelta nunca se esperaría, y sus registros y errores se perderían. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - El tipo "{0}" del ensamblado "{1}" declarado en el manifiesto de extensión "{2}" no expone un método "public static void" denominado "{3}" que tome "ITestApplicationBuilder" y "string[]". - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + El tipo "{0}" del ensamblado "{1}" declarado en el manifiesto de extensión "{2}" no expone un método "public static void" denominado "{3}" que tome "ITestApplicationBuilder" y "string[]". + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - El manifiesto de extensión "{0}" declara las extensiones que se van a cargar, pero el tiempo de ejecución actual no admite la carga dinámica de ensamblados (por ejemplo, cuando se publica con AOT nativo). Establezca la propiedad "{1}" de cada extensión en "false", quite el manifiesto o quite "{2}" de la línea de comandos. - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + El manifiesto de extensión "{0}" declara las extensiones que se van a cargar, pero el tiempo de ejecución actual no admite la carga dinámica de ensamblados (por ejemplo, cuando se publica con AOT nativo). Establezca la propiedad "{1}" de cada extensión en "false", quite el manifiesto o quite "{2}" de la línea de comandos. + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Opcionalmente, acepta "text" (la salida legible por el usuario predeterminada) o Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Habilite la carga de extensiones de plataforma de prueba declaradas por los manifiestos "*.testingplatformextensions.json" que se encuentran junto a la aplicación de prueba. Esta opción está deshabilitada de forma predeterminada. - {Locked="'*.testingplatformextensions.json'"} + Habilite la carga de extensiones de plataforma de prueba declaradas por los manifiestos "*.testingplatformextensions.json" que se encuentran junto a la aplicación de prueba. Esta opción está deshabilitada de forma predeterminada. + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Opcionalmente, acepta "text" (la salida legible por el usuario predeterminada) o Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - No informe de un valor de salida no correcto para los códigos de salida especificados. + No informe de un valor de salida no correcto para los códigos de salida especificados. Por ejemplo, '--ignore-exit-code 8;9' omite los códigos de salida 8 y 9 y devuelve 0 en esos casos. Para obtener más información sobre los códigos de salida, consulte https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1051,14 +1051,14 @@ El valor predeterminado es TestResults en el directorio que contiene la aplicaci 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ Más información sobre la telemetría de la Plataforma de pruebas de Microsoft: The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - El iniciador de host de prueba "{0}" (UID: {1}) solicitó autorizar la identidad de seguridad "{2}" en la conexión del controlador host de prueba, pero solo se puede autorizar la identidad de una sola aplicación de espacio aislado (en Windows, un identificador de seguridad con el formato 'S-1-15-2-...'). Nunca se concede acceso a usuarios, grupos ni al identificador de seguridad "{3}" de uso general. - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + El iniciador de host de prueba "{0}" (UID: {1}) solicitó autorizar la identidad de seguridad "{2}" en la conexión del controlador host de prueba, pero solo se puede autorizar la identidad de una sola aplicación de espacio aislado (en Windows, un identificador de seguridad con el formato 'S-1-15-2-...'). Nunca se concede acceso a usuarios, grupos ni al identificador de seguridad "{3}" de uso general. + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf index 17ad92a12b..69af069f75 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Exécutez '--help' pour voir les options enregistrées par cette application de test. Si l’option appartient à une extension, vérifiez que son package est référencé et que l’extension est inscrite. - {Locked="'--help'"} + Exécutez '--help' pour voir les options enregistrées par cette application de test. Si l’option appartient à une extension, vérifiez que son package est référencé et que l’extension est inscrite. + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - Utilisez « --crashdump » et/ou « --hangdump » à la place. MTP sépare les diagnostics de plantage et de blocage, il n’existe donc pas de remplacement un à un du collecteur de défaillance VSTest. - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + Utilisez « --crashdump » et/ou « --hangdump » à la place. MTP sépare les diagnostics de plantage et de blocage, il n’existe donc pas de remplacement un à un du collecteur de défaillance VSTest. + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - Pour obtenir une verbosité de console comparable, utilisez « --output {0} ». La sortie de la console MTP est configurée différemment, donc il ne s’agit pas d’un remplacement exact. - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + Pour obtenir une verbosité de console comparable, utilisez « --output {0} ». La sortie de la console MTP est configurée différemment, donc il ne s’agit pas d’un remplacement exact. + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP utilise des options spécifiques au rapporteur, telles que « --report-trx », « --report-html » et « --report-junit ». Consultez la documentation de l’extension du rapporteur pour connaître son option MTP. - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + MTP utilise des options spécifiques au rapporteur, telles que « --report-trx », « --report-html » et « --report-junit ». Consultez la documentation de l’extension du rapporteur pour connaître son option MTP. + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - Pour la couverture du code MTP, utilisez « --coverage ». Il ne s’agit pas d’un remplacement transparent du collecteur « XPlat Code Coverage » de Coverlet. - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + Pour la couverture du code MTP, utilisez « --coverage ». Il ne s’agit pas d’un remplacement transparent du collecteur « XPlat Code Coverage » de Coverlet. + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - Le hook d’extension '{0}.{1}' de l’assembly '{2}', annoncé dans le manifeste d’extension '{3}', est déclaré en 'async void'. La plateforme appelle le hook de manière synchrone. Il reviendra donc à son premier await : tout ce qu’il enregistre après ce point entrera en concurrence avec la configuration de l’application de test, et toute erreur sera perdue. Rendez le hook synchrone. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + Le hook d’extension '{0}.{1}' de l’assembly '{2}', annoncé dans le manifeste d’extension '{3}', est déclaré en 'async void'. La plateforme appelle le hook de manière synchrone. Il reviendra donc à son premier await : tout ce qu’il enregistre après ce point entrera en concurrence avec la configuration de l’application de test, et toute erreur sera perdue. Rendez le hook synchrone. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - Le hook d’extension '{0}.{1}' de l’assembly '{2}', annoncé dans le manifeste d’extension '{3}', renvoie '{4}' alors qu’il retourne 'void'. La plateforme appelle le crochet de manière synchrone, donc aucune valeur de retour n’est jamais observée. En particulier, une tâche retournée ne sera jamais attendue et ses enregistrements ainsi que ses erreurs seront perdus. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + Le hook d’extension '{0}.{1}' de l’assembly '{2}', annoncé dans le manifeste d’extension '{3}', renvoie '{4}' alors qu’il retourne 'void'. La plateforme appelle le crochet de manière synchrone, donc aucune valeur de retour n’est jamais observée. En particulier, une tâche retournée ne sera jamais attendue et ses enregistrements ainsi que ses erreurs seront perdus. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - Le type '{0}' de l’assembly '{1}' déclaré dans le manifeste d’extension '{2}' n’expose pas de méthode 'public static void' nommée '{3}' prenant un 'ITestApplicationBuilder' et un 'string[]'. - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + Le type '{0}' de l’assembly '{1}' déclaré dans le manifeste d’extension '{2}' n’expose pas de méthode 'public static void' nommée '{3}' prenant un 'ITestApplicationBuilder' et un 'string[]'. + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - Le manifeste d’extension '{0}' déclare des extensions à charger, mais le runtime actuel ne prend pas en charge le chargement dynamique d’assemblys (par exemple lorsqu’il est publié avec AOT natif). Définissez la propriété '{1}' de chaque extension sur 'false', supprimez le manifeste ou éliminez '{2}' de la ligne de commande. - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + Le manifeste d’extension '{0}' déclare des extensions à charger, mais le runtime actuel ne prend pas en charge le chargement dynamique d’assemblys (par exemple lorsqu’il est publié avec AOT natif). Définissez la propriété '{1}' de chaque extension sur 'false', supprimez le manifeste ou éliminez '{2}' de la ligne de commande. + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Accepte éventuellement « text » (sortie lisible par l’humain par défaut) Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Activez le chargement des extensions de plateforme de test déclarées par des manifestes '*.testingplatformextensions.json' trouvés à côté de l’application de test. Cette option est désactivée par défaut. - {Locked="'*.testingplatformextensions.json'"} + Activez le chargement des extensions de plateforme de test déclarées par des manifestes '*.testingplatformextensions.json' trouvés à côté de l’application de test. Cette option est désactivée par défaut. + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Accepte éventuellement « text » (sortie lisible par l’humain par défaut) Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - Ne signalez pas de valeur de sortie non correcte pour les codes de sortie spécifiés. + Ne signalez pas de valeur de sortie non correcte pour les codes de sortie spécifiés. Par exemple, '--ignore-exit-code 8;9' ignore les codes de sortie 8 et 9 et renvoie 0 dans ces cas. Pour découvrir plus d’informations sur les codes de sortie, consultez https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1050,15 +1050,15 @@ La valeur par défaut est TestResults dans le répertoire qui contient l’appli 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - L’option « timeout » doit avoir un argument correspondant à une valeur de temps avec un suffixe d’unité explicite et une valeur numérique positive dans la plage prise en charge (jusqu’à environ 49,7 jours). Les suffixes acceptés sont 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)' et 'd'/'day(s)', par exemple '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + L’option « timeout » doit avoir un argument correspondant à une valeur de temps avec un suffixe d’unité explicite et une valeur numérique positive dans la plage prise en charge (jusqu’à environ 49,7 jours). Les suffixes acceptés sont 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)' et 'd'/'day(s)', par exemple '500ms', '5400s', '90m', '1.5h', '1d'. + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - Délai global d’exécution du test. + Délai global d’exécution du test. Prend un argument correspondant à une valeur de temps avec un suffixe d’unité explicite. Les suffixes acceptés sont 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)' et 'd'/'day(s)', par exemple '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ En savoir plus sur la télémétrie de la plateforme de tests Microsoft : https: The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - Le lanceur d’hôte de test « {0} » (UID : {1}) a demandé à autoriser l’identité de sécurité « {2} » sur la connexion du contrôleur d’hôte de test, mais seule l’identité d’une application isolée en bac à sable peut être autorisée (sous Windows, identificateur de sécurité au format « S-1-15-2-... »). Les utilisateurs, les groupes et l’identificateur de sécurité « {3} » fourre-tout ne bénéficient jamais d’un accès. - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + Le lanceur d’hôte de test « {0} » (UID : {1}) a demandé à autoriser l’identité de sécurité « {2} » sur la connexion du contrôleur d’hôte de test, mais seule l’identité d’une application isolée en bac à sable peut être autorisée (sous Windows, identificateur de sécurité au format « S-1-15-2-... »). Les utilisateurs, les groupes et l’identificateur de sécurité « {3} » fourre-tout ne bénéficient jamais d’un accès. + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf index 04740bd284..1fc1e345f2 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Eseguire '--help' per visualizzare le opzioni registrate da questa applicazione di test. Se l'opzione appartiene a un'estensione, assicurarsi che sia fatto riferimento al relativo pacchetto e che l'estensione sia registrata. - {Locked="'--help'"} + Eseguire '--help' per visualizzare le opzioni registrate da questa applicazione di test. Se l'opzione appartiene a un'estensione, assicurarsi che sia fatto riferimento al relativo pacchetto e che l'estensione sia registrata. + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - In alternativa, usare '--crashdump' e/o '--hangdump'. MTP separa le diagnostiche di crash e hang, quindi non esiste un sostituto uno-a-uno per l'agente di raccolta Blame di VSTest. - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + In alternativa, usare '--crashdump' e/o '--hangdump'. MTP separa le diagnostiche di crash e hang, quindi non esiste un sostituto uno-a-uno per l'agente di raccolta Blame di VSTest. + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - Per un livello di dettaglio paragonabile a quello della console, usa '--output {0}'. L'output della console MTP è configurato in modo diverso, quindi non si tratta di una sostituzione esatta. - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + Per un livello di dettaglio paragonabile a quello della console, usa '--output {0}'. L'output della console MTP è configurato in modo diverso, quindi non si tratta di una sostituzione esatta. + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP usa opzioni specifiche del reporter, come '--report-trx', '--report-html', and '--report-junit'. Consultare la documentazione dell'estensione del reporter per l'opzione MTP corrispondente. - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + MTP usa opzioni specifiche del reporter, come '--report-trx', '--report-html', and '--report-junit'. Consultare la documentazione dell'estensione del reporter per l'opzione MTP corrispondente. + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - Per la code coverage MTP, usare '--coverage'. Questa non è una sostituzione trasparente dell'agente di raccolta 'XPlat Code Coverage' di Coverlet. - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + Per la code coverage MTP, usare '--coverage'. Questa non è una sostituzione trasparente dell'agente di raccolta 'XPlat Code Coverage' di Coverlet. + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - L'hook dell'estensione '{0}.{1}' dall'assembly '{2}' dichiarato nel manifesto dell'estensione '{3}' è dichiarato come 'async void'. La piattaforma esegue l'hook in modalità sincrona, pertanto restituirebbe il valore al primo await: tutto ciò che viene registrato successivamente verrebbe a interferire con la configurazione dell'applicazione di test, e gli eventuali errori non verrebbero rilevati. Rendi l'hook sincrono. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + L'hook dell'estensione '{0}.{1}' dall'assembly '{2}' dichiarato nel manifesto dell'estensione '{3}' è dichiarato come 'async void'. La piattaforma esegue l'hook in modalità sincrona, pertanto restituirebbe il valore al primo await: tutto ciò che viene registrato successivamente verrebbe a interferire con la configurazione dell'applicazione di test, e gli eventuali errori non verrebbero rilevati. Rendi l'hook sincrono. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - L'hook dell'estensione '{0}.{1}' dall'assembly '{2}' dichiarato nel manifesto dell'estensione '{3}' restituisce '{4}' ma deve restituire 'void'. La piattaforma richiama l'hook in modo sincrono, per cui un valore restituito non viene mai rilevato; un'attività restituita, in particolare, non verrebbe mai messo in attesa e le relative registrazioni ed errori andrebbero persi. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + L'hook dell'estensione '{0}.{1}' dall'assembly '{2}' dichiarato nel manifesto dell'estensione '{3}' restituisce '{4}' ma deve restituire 'void'. La piattaforma richiama l'hook in modo sincrono, per cui un valore restituito non viene mai rilevato; un'attività restituita, in particolare, non verrebbe mai messo in attesa e le relative registrazioni ed errori andrebbero persi. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - Il tipo '{0}' nell'assembly '{1}' dichiarato nel manifesto dell'estensione '{2}' non espone un metodo 'public static void' denominato '{3}' che accetta un 'ITestApplicationBuilder' e un 'string[]'. - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + Il tipo '{0}' nell'assembly '{1}' dichiarato nel manifesto dell'estensione '{2}' non espone un metodo 'public static void' denominato '{3}' che accetta un 'ITestApplicationBuilder' e un 'string[]'. + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - Il manifesto dell'estensione '{0}' dichiara estensioni da caricare, ma il runtime corrente non supporta il caricamento dinamico degli assembly (ad esempio quando viene pubblicato con AOT nativo). Impostare la proprietà '{1}' di ogni estensione su 'false', rimuovere il manifesto oppure rimuovere '{2}' dalla riga di comando. - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + Il manifesto dell'estensione '{0}' dichiara estensioni da caricare, ma il runtime corrente non supporta il caricamento dinamico degli assembly (ad esempio quando viene pubblicato con AOT nativo). Impostare la proprietà '{1}' di ogni estensione su 'false', rimuovere il manifesto oppure rimuovere '{2}' dalla riga di comando. + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Facoltativamente accetta ''text'' (output leggibile predefinito) o ''json'' per Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Abilitare il caricamento delle estensioni della piattaforma di test dichiarate nei manifesti '*.testingplatformextensions.json' trovati accanto all'applicazione di test. Proprietà è disabilitata per impostazione predefinita. - {Locked="'*.testingplatformextensions.json'"} + Abilitare il caricamento delle estensioni della piattaforma di test dichiarate nei manifesti '*.testingplatformextensions.json' trovati accanto all'applicazione di test. Proprietà è disabilitata per impostazione predefinita. + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Facoltativamente accetta ''text'' (output leggibile predefinito) o ''json'' per Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - Non segnalare un valore di uscita non riuscito per i codici di uscita specificati. + Non segnalare un valore di uscita non riuscito per i codici di uscita specificati. Ad esempio, '--ignore-exit-code 8;9' ignora i codici di uscita 8 e 9 e restituisce 0 in tali casi. Per altre informazioni sui codici di uscita, vedere https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1050,15 +1050,15 @@ L’impostazione predefinita è TestResults nella directory che contiene l'appli 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - L'opzione 'timeout' richiede un argomento costituito da un valore temporale con un suffisso di unità esplicito e un valore numerico positivo compreso nell'intervallo supportato (fino a circa 49,7 giorni). I suffissi accettati sono 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)' e 'd'/'day(s)', ad esempio '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + L'opzione 'timeout' richiede un argomento costituito da un valore temporale con un suffisso di unità esplicito e un valore numerico positivo compreso nell'intervallo supportato (fino a circa 49,7 giorni). I suffissi accettati sono 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)' e 'd'/'day(s)', ad esempio '500ms', '5400s', '90m', '1.5h', '1d'. + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - Timeout globale per l'esecuzione dei test. + Timeout globale per l'esecuzione dei test. Accetta un argomento come valore di ora con un suffisso di unità esplicito. I suffissi accettati sono 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)' e 'd'/'day(s)', ad esempio '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ Altre informazioni sulla telemetria della piattaforma di test Microsoft: https:/ The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - Il launcher dell'host di test "{0}" (UID: {1}) ha richiesto l'autorizzazione dell'identità di sicurezza "{2}" sulla connessione al controller dell'host di test, ma è possibile autorizzare solo l'identità di una singola applicazione in modalità sandbox (in Windows, un identificatore di sicurezza nel formato 'S-1-15-2-...'). Agli utenti, ai gruppi e all'identificatore di sicurezza generico "{3}" non viene mai concesso l'accesso. - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + Il launcher dell'host di test "{0}" (UID: {1}) ha richiesto l'autorizzazione dell'identità di sicurezza "{2}" sulla connessione al controller dell'host di test, ma è possibile autorizzare solo l'identità di una singola applicazione in modalità sandbox (in Windows, un identificatore di sicurezza nel formato 'S-1-15-2-...'). Agli utenti, ai gruppi e all'identificatore di sicurezza generico "{3}" non viene mai concesso l'accesso. + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf index da221acc51..5e54eb454a 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - このテスト アプリケーションに登録されているオプションを確認するには、'--help' を実行します。オプションが拡張機能に属している場合は、そのパッケージが参照され、拡張機能が登録されていることを確認してください。 - {Locked="'--help'"} + このテスト アプリケーションに登録されているオプションを確認するには、'--help' を実行します。オプションが拡張機能に属している場合は、そのパッケージが参照され、拡張機能が登録されていることを確認してください。 + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - 代わりに、'--crashdump' または '--hangdump' を使用してください。MTP はクラッシュとハングの診断が分離されているため、VSTest の blame collector を 1 対 1 で置き換えるものはありません。 - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + 代わりに、'--crashdump' または '--hangdump' を使用してください。MTP はクラッシュとハングの診断が分離されているため、VSTest の blame collector を 1 対 1 で置き換えるものはありません。 + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - 同等のコンソールの詳細度を得るには、'--output {0}' を使用します。MTP コンソールの出力は異なる方法で構成されているため、これは完全な置き換えではありません。 - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + 同等のコンソールの詳細度を得るには、'--output {0}' を使用します。MTP コンソールの出力は異なる方法で構成されているため、これは完全な置き換えではありません。 + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP では、'--report-trx'、'--report-html'、'--report-junit' などのレポーター固有のオプションが使用されます。レポーター拡張機能の MTP オプションについては、拡張機能のドキュメントを参照してください。 - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + MTP では、'--report-trx'、'--report-html'、'--report-junit' などのレポーター固有のオプションが使用されます。レポーター拡張機能の MTP オプションについては、拡張機能のドキュメントを参照してください。 + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - MTP コード カバレッジには、'--coverage' を使用します。これは Coverlet の 'XPlat Code Coverage' コレクターを透過的に置き換えるものではありません。 - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + MTP コード カバレッジには、'--coverage' を使用します。これは Coverlet の 'XPlat Code Coverage' コレクターを透過的に置き換えるものではありません。 + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - 拡張マニフェスト '{3}' で宣言されている、アセンブリ '{2}' の '{0}.{1}' 拡張フックは 'async void' として宣言されています。プラットフォームはフックを同期的に呼び出すため、最初の待機時に戻ります。その時点以降に登録する内容は、テスト アプリケーションのセットアップと競合し、失敗は失われます。フックを同期にします。 - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + 拡張マニフェスト '{3}' で宣言されている、アセンブリ '{2}' の '{0}.{1}' 拡張フックは 'async void' として宣言されています。プラットフォームはフックを同期的に呼び出すため、最初の待機時に戻ります。その時点以降に登録する内容は、テスト アプリケーションのセットアップと競合し、失敗は失われます。フックを同期にします。 + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - 拡張マニフェスト '{3}' で宣言されている、アセンブリ '{2}' の '{0}.{1}' 拡張フックは '{4}' を返しますが、'void' を返す必要があります。プラットフォームはフックを同期的に呼び出すため、戻り値は使用されません。特に、返されたタスクは待機されず、その登録と失敗は失われます。 - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + 拡張マニフェスト '{3}' で宣言されている、アセンブリ '{2}' の '{0}.{1}' 拡張フックは '{4}' を返しますが、'void' を返す必要があります。プラットフォームはフックを同期的に呼び出すため、戻り値は使用されません。特に、返されたタスクは待機されず、その登録と失敗は失われます。 + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - 拡張機能マニフェスト '{2}' で宣言されているアセンブリ '{1}' の型 '{0}' は、'ITestApplicationBuilder' と 'string[]' を受け取る '{3}' という名前の 'public static void' メソッドを公開していません。 - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + 拡張機能マニフェスト '{2}' で宣言されているアセンブリ '{1}' の型 '{0}' は、'ITestApplicationBuilder' と 'string[]' を受け取る '{3}' という名前の 'public static void' メソッドを公開していません。 + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - 拡張マニフェスト '{0}' は読み込む拡張機能を宣言していますが、現在のランタイムはアセンブリの動的読み込みをサポートしていません(例: ネイティブ AOT で公開した場合)。各拡張機能の '{1}' プロパティを 'false' に設定するか、マニフェストを削除するか、コマンド ラインから '{2}' を削除してください。 - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + 拡張マニフェスト '{0}' は読み込む拡張機能を宣言していますが、現在のランタイムはアセンブリの動的読み込みをサポートしていません(例: ネイティブ AOT で公開した場合)。各拡張機能の '{1}' プロパティを 'false' に設定するか、マニフェストを削除するか、コマンド ラインから '{2}' を削除してください。 + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - テスト アプリケーションの横にある '*.testingplatformextensions.json' マニフェストで宣言されたテスト プラットフォーム拡張機能の読み込みを有効にします。既定では無効になっています。 - {Locked="'*.testingplatformextensions.json'"} + テスト アプリケーションの横にある '*.testingplatformextensions.json' マニフェストで宣言されたテスト プラットフォーム拡張機能の読み込みを有効にします。既定では無効になっています。 + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - 指定された終了コードについて、非成功の終了値を報告しないでください。 + 指定された終了コードについて、非成功の終了値を報告しないでください。 たとえば、'--ignore-exit-code 8;9' では終了コード 8 および 9 を無視して 0 を返します。 終了コードの詳細については、https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes を参照してください。 - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1050,15 +1050,15 @@ The default is TestResults in the directory that contains the test application.< 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - 'timeout' オプションには、引数として明示的な単位サフィックスと、サポートされている範囲内 (最大約 49.7 日) の正の数値を持つ時間値を 1 つ指定する必要があります。使用可能なサフィックスは、'ms'/'mil(s)'/'millisecond(s)'、's'/'sec(s)'/'second(s)'、'm'/'min(s)'/'minute(s)'、'h'/'hour(s)'、'd'/'day(s)' です (例: '500ms'、'5400s'、'90m'、'1.5h'、'1d')。 - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + 'timeout' オプションには、引数として明示的な単位サフィックスと、サポートされている範囲内 (最大約 49.7 日) の正の数値を持つ時間値を 1 つ指定する必要があります。使用可能なサフィックスは、'ms'/'mil(s)'/'millisecond(s)'、's'/'sec(s)'/'second(s)'、'm'/'min(s)'/'minute(s)'、'h'/'hour(s)'、'd'/'day(s)' です (例: '500ms'、'5400s'、'90m'、'1.5h'、'1d')。 + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - グローバル テスト実行のタイムアウト。 + グローバル テスト実行のタイムアウト。 明示的な単位サフィックスを持つ時間値を 1 つ、引数として指定します。使用可能なサフィックスは、'ms'/'mil(s)'/'millisecond(s)'、's'/'sec(s)'/'second(s)'、'm'/'min(s)'/'minute(s)'、'h'/'hour(s)'、'd'/'day(s)' です (例: '500ms'、'5400s'、'90m'、'1.5h'、'1d')。 - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ Microsoft Testing Platform テレメトリの詳細: https://aka.ms/testingplatf The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - テスト ホスト ランチャー '{0}' (UID: {1}) は、テスト ホスト コントローラー接続でセキュリティ ID '{2}' の認可を要求しましたが、認可できるのは 1 つのサンドボックス化されたアプリケーションの ID (Windows では 'S-1-15-2-...' 形式のセキュリティ ID) のみです。ユーザー、グループ、包括的な '{3}' セキュリティ ID には、アクセスが付与されません。 - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + テスト ホスト ランチャー '{0}' (UID: {1}) は、テスト ホスト コントローラー接続でセキュリティ ID '{2}' の認可を要求しましたが、認可できるのは 1 つのサンドボックス化されたアプリケーションの ID (Windows では 'S-1-15-2-...' 形式のセキュリティ ID) のみです。ユーザー、グループ、包括的な '{3}' セキュリティ ID には、アクセスが付与されません。 + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf index f02b6d576c..98b8612645 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - '--help'를 실행하여 이 테스트 애플리케이션에서 등록된 옵션을 확인합니다. 옵션이 확장에 속하는 경우 패키지가 참조되고 확장이 등록되어 있는지 확인합니다. - {Locked="'--help'"} + '--help'를 실행하여 이 테스트 애플리케이션에서 등록된 옵션을 확인합니다. 옵션이 확장에 속하는 경우 패키지가 참조되고 확장이 등록되어 있는지 확인합니다. + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - 대신 '--crashdump' 및/또는 '--hangdump'를 사용하세요. MTP는 충돌 및 중단 진단을 분리하여 제공하므로, VSTest의 블레임 수집기를 일대일로 대체할 수는 없습니다. - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + 대신 '--crashdump' 및/또는 '--hangdump'를 사용하세요. MTP는 충돌 및 중단 진단을 분리하여 제공하므로, VSTest의 블레임 수집기를 일대일로 대체할 수는 없습니다. + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - 콘솔의 세부 정보 표시를 비교하려면 '--output {0}'를 사용합니다. 콘솔 출력MTP 다르게 구성되었으므로 정확한 대체가 아닙니다. - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + 콘솔의 세부 정보 표시를 비교하려면 '--output {0}'를 사용합니다. 콘솔 출력MTP 다르게 구성되었으므로 정확한 대체가 아닙니다. + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP는 '--report-trx', '--report-html', '--report-junit'과 같은 리포터별 옵션을 사용합니다. 해당 MTP 옵션은 리포터 확장의 문서를 참조하세요. - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + MTP는 '--report-trx', '--report-html', '--report-junit'과 같은 리포터별 옵션을 사용합니다. 해당 MTP 옵션은 리포터 확장의 문서를 참조하세요. + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - MTP 코드 검사에는 '--coverage'를 사용하세요. 이 옵션은 Coverlet의 'XPlat Code Coverage' 수집기를 그대로 대체하지는 않습니다. - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + MTP 코드 검사에는 '--coverage'를 사용하세요. 이 옵션은 Coverlet의 'XPlat Code Coverage' 수집기를 그대로 대체하지는 않습니다. + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - 확장 매니페스트 '{3}'에 선언된 어셈블리 '{2}'의 '{0}.{1}' 확장 후크가 'async void'로 선언되어 있습니다. 플랫폼은 후크를 동기적으로 호출하므로 첫 번째 await에서 반환됩니다. 그 이후에 등록하는 항목은 테스트 애플리케이션 자체 설정과 경쟁하게 되며, 실패가 발생해도 기록되지 않습니다. 후크를 동기식으로 만드세요. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + 확장 매니페스트 '{3}'에 선언된 어셈블리 '{2}'의 '{0}.{1}' 확장 후크가 'async void'로 선언되어 있습니다. 플랫폼은 후크를 동기적으로 호출하므로 첫 번째 await에서 반환됩니다. 그 이후에 등록하는 항목은 테스트 애플리케이션 자체 설정과 경쟁하게 되며, 실패가 발생해도 기록되지 않습니다. 후크를 동기식으로 만드세요. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - 확장 매니페스트 '{3}'에 선언된 어셈블리 '{2}'의 '{0}.{1}' 확장 후크가 '{4}'을(를) 반환하지만, 반환 형식은 'void'여야 합니다. 플랫폼은 후크를 동기적으로 호출하므로 반환 값은 사용되지 않습니다. 특히 반환된 작업은 await되지 않으며, 그 안에서 등록한 내용과 실패는 모두 사라집니다. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + 확장 매니페스트 '{3}'에 선언된 어셈블리 '{2}'의 '{0}.{1}' 확장 후크가 '{4}'을(를) 반환하지만, 반환 형식은 'void'여야 합니다. 플랫폼은 후크를 동기적으로 호출하므로 반환 값은 사용되지 않습니다. 특히 반환된 작업은 await되지 않으며, 그 안에서 등록한 내용과 실패는 모두 사라집니다. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - 확장 매니페스트 '{2}'에 선언된 어셈블리 '{1}'의 형식 '{0}'에는 'ITestApplicationBuilder'와 'string[]'를 받는 '{3}'라는 'public static void' 메서드가 없습니다. - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + 확장 매니페스트 '{2}'에 선언된 어셈블리 '{1}'의 형식 '{0}'에는 'ITestApplicationBuilder'와 'string[]'를 받는 '{3}'라는 'public static void' 메서드가 없습니다. + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - 확장 매니페스트 '{0}'은(는) 로드할 확장을 선언하지만, 현재 런타임은 어셈블리를 동적으로 로드하는 기능을 지원하지 않습니다(예: 네이티브 AOT로 게시한 경우). 각 확장의 '{1}' 속성을 'false'로 설정하거나, 매니페스트를 제거하거나, 명령줄에서 '{2}'을(를) 제거하세요. - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + 확장 매니페스트 '{0}'은(는) 로드할 확장을 선언하지만, 현재 런타임은 어셈블리를 동적으로 로드하는 기능을 지원하지 않습니다(예: 네이티브 AOT로 게시한 경우). 각 확장의 '{1}' 속성을 'false'로 설정하거나, 매니페스트를 제거하거나, 명령줄에서 '{2}'을(를) 제거하세요. + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - 테스트 응용 프로그램 옆에서 찾은 '*.testingplatformextensions.json' 매니페스트에 선언된 테스트 플랫폼 확장 로드를 사용하도록 설정합니다. 기본적으로 사용하지 않도록 설정됩니다. - {Locked="'*.testingplatformextensions.json'"} + 테스트 응용 프로그램 옆에서 찾은 '*.testingplatformextensions.json' 매니페스트에 선언된 테스트 플랫폼 확장 로드를 사용하도록 설정합니다. 기본적으로 사용하지 않도록 설정됩니다. + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - 지정된 종료 코드에 대해 실패 종료 값을 보고하지 마세요. + 지정된 종료 코드에 대해 실패 종료 값을 보고하지 마세요. 예를 들어 '--ignore-exit-code 8;9'는 종료 코드 8과 9를 무시하고, 해당 경우에는 0을 반환합니다. 종료 코드에 대한 자세한 내용은 https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes를 참조하세요. - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1050,15 +1050,15 @@ The default is TestResults in the directory that contains the test application.< 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - 'timeout' 옵션은 명시적 단위 접미사가 포함된 시간 값이어야 하며, 지원되는 범위(최대 약 49.7일) 내의 양수 값을 하나의 인수로 입력해야 합니다. 허용되는 접미사는 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', 'd'/'day(s)'입니다. (예: '500ms', '5400s', '90m', '1.5h', '1d') - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + 'timeout' 옵션은 명시적 단위 접미사가 포함된 시간 값이어야 하며, 지원되는 범위(최대 약 49.7일) 내의 양수 값을 하나의 인수로 입력해야 합니다. 허용되는 접미사는 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', 'd'/'day(s)'입니다. (예: '500ms', '5400s', '90m', '1.5h', '1d') + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - 전역 테스트 실행 시간 제한입니다. + 전역 테스트 실행 시간 제한입니다. 명시적 단위 접미사가 포함된 시간 값을 하나의 인수로 입력해야 합니다. 허용되는 접미사는 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', 'd'/'day(s)'입니다. (예: '500ms', '5400s', '90m', '1.5h', '1d') - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ Microsoft 테스트 플랫폼 원격 분석에 대해 자세히 알아보기: ht The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - 테스트 호스트 시작 관리자 '{0}'(UID: {1})에서 테스트 호스트 컨트롤러 연결 시 보안 ID '{2}'에 권한을 부여해 달라고 요청했습니다. 하지만 단일 샌드박스가 적용된 애플리케이션의 ID만에만 권한을 부여할 수 있습니다(Windows에서는 'S-1-15-2-...' 형식의 보안 식별자). 사용자, 그룹 그리고 모두 캐치 '{3}' 보안 ID에는 절대 액세스 권한이 부여되지 않습니다. - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + 테스트 호스트 시작 관리자 '{0}'(UID: {1})에서 테스트 호스트 컨트롤러 연결 시 보안 ID '{2}'에 권한을 부여해 달라고 요청했습니다. 하지만 단일 샌드박스가 적용된 애플리케이션의 ID만에만 권한을 부여할 수 있습니다(Windows에서는 'S-1-15-2-...' 형식의 보안 식별자). 사용자, 그룹 그리고 모두 캐치 '{3}' 보안 ID에는 절대 액세스 권한이 부여되지 않습니다. + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf index eac5560ece..26e9fdcc42 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Uruchom „--help”, aby zobaczyć opcje zarejestrowane przez tę aplikację testową. Jeśli opcja należy do rozszerzenia, upewnij się, że jego pakiet jest uwzględniony jako odwołanie i że rozszerzenie jest zarejestrowane. - {Locked="'--help'"} + Uruchom „--help”, aby zobaczyć opcje zarejestrowane przez tę aplikację testową. Jeśli opcja należy do rozszerzenia, upewnij się, że jego pakiet jest uwzględniony jako odwołanie i że rozszerzenie jest zarejestrowane. + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - Zamiast tego użyj '--crashdump' i/lub '--hangdump'. MTP rozdziela diagnostykę awarii i zawieszeń, więc nie ma tu zamiennika jeden do jednego dla kolektora blame w VSTest. - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + Zamiast tego użyj '--crashdump' i/lub '--hangdump'. MTP rozdziela diagnostykę awarii i zawieszeń, więc nie ma tu zamiennika jeden do jednego dla kolektora blame w VSTest. + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - Aby uzyskać porównywalną szczegółowość danych wyjściowych konsoli, użyj '--output {0}'. Dane wyjściowe konsoli MTP są skonfigurowane inaczej, więc nie jest to dokładny zamiennik. - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + Aby uzyskać porównywalną szczegółowość danych wyjściowych konsoli, użyj '--output {0}'. Dane wyjściowe konsoli MTP są skonfigurowane inaczej, więc nie jest to dokładny zamiennik. + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP używa opcji specyficznych dla raportera, takich jak '--report-trx', '--report-html', i '--report-junit'. Informacje o opcjach MTP znajdziesz w dokumentacji rozszerzenia raportera. - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + MTP używa opcji specyficznych dla raportera, takich jak '--report-trx', '--report-html', i '--report-junit'. Informacje o opcjach MTP znajdziesz w dokumentacji rozszerzenia raportera. + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - Aby uzyskać pokrycie kodu w MTP, użyj '--coverage'. Nie jest to bezpośredni zamiennik kolektora 'XPlat Code Coverage' w Coverlet. - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + Aby uzyskać pokrycie kodu w MTP, użyj '--coverage'. Nie jest to bezpośredni zamiennik kolektora 'XPlat Code Coverage' w Coverlet. + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - Element zaczepienia rozszerzenia „{0}.{1}” z zestawu „{2}” zadeklarowany w manifeście rozszerzenia „{3}” jest zadeklarowany jako 'async void'. Platforma wywołuje punkt zaczepienia synchronicznie, więc wróci po pierwszym oczekiwaniu: wszystko, co zarejestruje po tym punkcie, spowoduje wyścig z konfiguracją aplikacji testowej, a wszelkie awarie zostaną utracone. Ustaw element wpięcia jako synchroniczny. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + Element zaczepienia rozszerzenia „{0}.{1}” z zestawu „{2}” zadeklarowany w manifeście rozszerzenia „{3}” jest zadeklarowany jako 'async void'. Platforma wywołuje punkt zaczepienia synchronicznie, więc wróci po pierwszym oczekiwaniu: wszystko, co zarejestruje po tym punkcie, spowoduje wyścig z konfiguracją aplikacji testowej, a wszelkie awarie zostaną utracone. Ustaw element wpięcia jako synchroniczny. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - Element zaczepienia rozszerzenia "{0}.{1}” z zestawu „{2}” zadeklarowany w manifeście rozszerzenia „{3}” zwraca wartość „{4}”, ale musi zwracać wartość 'void'. Platforma wywołuje element zaczepienia synchronicznie, więc zwracana wartość nigdy nie jest obserwowana; zwrócone zadanie w szczególności nigdy nie będzie oczekiwane, a jego rejestracje i błędy zostaną utracone. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + Element zaczepienia rozszerzenia "{0}.{1}” z zestawu „{2}” zadeklarowany w manifeście rozszerzenia „{3}” zwraca wartość „{4}”, ale musi zwracać wartość 'void'. Platforma wywołuje element zaczepienia synchronicznie, więc zwracana wartość nigdy nie jest obserwowana; zwrócone zadanie w szczególności nigdy nie będzie oczekiwane, a jego rejestracje i błędy zostaną utracone. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - Typ „{0}” w zestawie „{1}” zadeklarowany w manifeście rozszerzenia „{2}” nie ujawnia metody 'public static void' o nazwie „{3}” przyjmującej element 'ITestApplicationBuilder' i 'string[]'. - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + Typ „{0}” w zestawie „{1}” zadeklarowany w manifeście rozszerzenia „{2}” nie ujawnia metody 'public static void' o nazwie „{3}” przyjmującej element 'ITestApplicationBuilder' i 'string[]'. + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - Manifest rozszerzenia „{0}” deklaruje rozszerzenia do załadowania, ale bieżące środowisko uruchomieniowe nie obsługuje dynamicznego ładowania zestawów (na przykład w przypadku publikowania z natywnym kodem AOT). Ustaw właściwość „{1}” każdego rozszerzenia na wartość 'false', usuń manifest lub usuń element „{2}” z wiersza polecenia. - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + Manifest rozszerzenia „{0}” deklaruje rozszerzenia do załadowania, ale bieżące środowisko uruchomieniowe nie obsługuje dynamicznego ładowania zestawów (na przykład w przypadku publikowania z natywnym kodem AOT). Ustaw właściwość „{1}” każdego rozszerzenia na wartość 'false', usuń manifest lub usuń element „{2}” z wiersza polecenia. + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Opcjonalnie akceptuje „text” (domyślne dane wyjściowe czytelne dla człowi Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Włącz ładowanie rozszerzeń platformy testowej zadeklarowanych przez manifesty '*.testingplatformextensions.json' znajdujące się obok aplikacji testowej. Domyślnie wyłączone. - {Locked="'*.testingplatformextensions.json'"} + Włącz ładowanie rozszerzeń platformy testowej zadeklarowanych przez manifesty '*.testingplatformextensions.json' znajdujące się obok aplikacji testowej. Domyślnie wyłączone. + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Opcjonalnie akceptuje „text” (domyślne dane wyjściowe czytelne dla człowi Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - Nie zgłaszaj wartości niepomyślnego zakończenia dla określonych kodów zakończenia. + Nie zgłaszaj wartości niepomyślnego zakończenia dla określonych kodów zakończenia. Na przykład '--ignore-exit-code 8;9' ignoruje kody zakończenia 8 i 9 i zwraca wartość 0 w tych przypadkach. Aby uzyskać więcej informacji na temat kodów zakończenia, zobacz stronę https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1051,14 +1051,14 @@ Wartość domyślna to TestResults w katalogu zawierającym aplikację testową. 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ Więcej informacji o telemetrii platformy testowej firmy Microsoft: https://aka. The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - Moduł uruchamiający hosta testowego „{0}”" (UID: {1}) poprosił o autoryzację tożsamości zabezpieczeń „{2}” w testowym połączeniu kontrolera hosta, ale tylko tożsamość pojedynczej aplikacji w trybie środowiska testowego (w systemie Windows identyfikator zabezpieczeń w postaci „S-1-15-2-...”) może być autoryzowana. Użytkownikom, grupom i identyfikatorowi zabezpieczeń catch-all „{3}” nigdy nie udzielono dostępu. - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + Moduł uruchamiający hosta testowego „{0}”" (UID: {1}) poprosił o autoryzację tożsamości zabezpieczeń „{2}” w testowym połączeniu kontrolera hosta, ale tylko tożsamość pojedynczej aplikacji w trybie środowiska testowego (w systemie Windows identyfikator zabezpieczeń w postaci „S-1-15-2-...”) może być autoryzowana. Użytkownikom, grupom i identyfikatorowi zabezpieczeń catch-all „{3}” nigdy nie udzielono dostępu. + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf index d983183af1..ede1ed6483 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Execute ''--help'' para ver as opções registradas por este aplicativo de teste. Se a opção pertencer a uma extensão, certifique-se de que o pacote é referenciado e se a extensão está registrada. - {Locked="'--help'"} + Execute ''--help'' para ver as opções registradas por este aplicativo de teste. Se a opção pertencer a uma extensão, certifique-se de que o pacote é referenciado e se a extensão está registrada. + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - Use '--crashdump' e/ou '--hangdump' em vez disso. O MTP separa os diagnósticos de falha e de travamento, então não existe um substituto direto para o coletor de blame do VSTest. - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + Use '--crashdump' e/ou '--hangdump' em vez disso. O MTP separa os diagnósticos de falha e de travamento, então não existe um substituto direto para o coletor de blame do VSTest. + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - Para obter detalhes comparáveis do console, use '--output {0}'. MTP saída do console está configurada de forma diferente, portanto, essa não é uma substituição exata. - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + Para obter detalhes comparáveis do console, use '--output {0}'. MTP saída do console está configurada de forma diferente, portanto, essa não é uma substituição exata. + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - O MTP usa opções específicas do relator, como '--report-trx', '--report-html' e '--report-junit'. Consulte a documentação da extensão do relator para obter sua opção de MTP. - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + O MTP usa opções específicas do relator, como '--report-trx', '--report-html' e '--report-junit'. Consulte a documentação da extensão do relator para obter sua opção de MTP. + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - Para cobertura de código no MTP, use '--coverage'. Isso não é um substituto direto para o coletor 'XPlat Code Coverage' do Coverlet. - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + Para cobertura de código no MTP, use '--coverage'. Isso não é um substituto direto para o coletor 'XPlat Code Coverage' do Coverlet. + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - O gancho de extensão ''{0}.{1}'' do assembly ''{2}'', declarado no manifesto de extensão ''{3}'', está marcado como ''async void''. A plataforma invoca o gancho de forma síncrona, portanto, ele retornaria no primeiro await: tudo o que ele registrar depois desse ponto concorreria com a configuração do próprio aplicativo de teste, e qualquer falha seria perdida. Torne o gancho síncrono. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + O gancho de extensão ''{0}.{1}'' do assembly ''{2}'', declarado no manifesto de extensão ''{3}'', está marcado como ''async void''. A plataforma invoca o gancho de forma síncrona, portanto, ele retornaria no primeiro await: tudo o que ele registrar depois desse ponto concorreria com a configuração do próprio aplicativo de teste, e qualquer falha seria perdida. Torne o gancho síncrono. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - O gancho de extensão ''{0}.{1}'' do assembly ''{2}'', declarado no manifesto de extensão ''{3}'', retorna ''{4}'', mas deve retornar ''void''. A plataforma invoca o gancho de forma síncrona, portanto, um valor de retorno nunca é observado; em particular, uma tarefa retornada nunca seria aguardada, e suas inscrições e falhas seriam perdidas. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + O gancho de extensão ''{0}.{1}'' do assembly ''{2}'', declarado no manifesto de extensão ''{3}'', retorna ''{4}'', mas deve retornar ''void''. A plataforma invoca o gancho de forma síncrona, portanto, um valor de retorno nunca é observado; em particular, uma tarefa retornada nunca seria aguardada, e suas inscrições e falhas seriam perdidas. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - O tipo ''{0}'' no assembly ''{1}'', declarado no manifesto de extensão ''{2}'', não expõe um método ''public static void'' chamado ''{3}'', que receba um ''ITestApplicationBuilder'' e um ''string[]''. - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + O tipo ''{0}'' no assembly ''{1}'', declarado no manifesto de extensão ''{2}'', não expõe um método ''public static void'' chamado ''{3}'', que receba um ''ITestApplicationBuilder'' e um ''string[]''. + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - O manifesto de extensão ''{0}'' declara as extensões para carregar, mas o runtime atual não dá suporte ao carregamento dinâmico de assemblies (por exemplo, quando publicado com AOT nativo). Defina a propriedade ''{1}'' de cada extensão como ''false'', remova o manifesto ou remova ''{2}'' da linha de comando. - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + O manifesto de extensão ''{0}'' declara as extensões para carregar, mas o runtime atual não dá suporte ao carregamento dinâmico de assemblies (por exemplo, quando publicado com AOT nativo). Defina a propriedade ''{1}'' de cada extensão como ''false'', remova o manifesto ou remova ''{2}'' da linha de comando. + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Opcionalmente, aceita 'text' (a saída legível por humanos padrão) ou 'json' p Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Ative o carregamento de extensões da plataforma de teste declaradas por manifestos ''*.testingplatformextensions.json'' encontrados ao lado do aplicativo de teste. Desabilitado por padrão. - {Locked="'*.testingplatformextensions.json'"} + Ative o carregamento de extensões da plataforma de teste declaradas por manifestos ''*.testingplatformextensions.json'' encontrados ao lado do aplicativo de teste. Desabilitado por padrão. + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Opcionalmente, aceita 'text' (a saída legível por humanos padrão) ou 'json' p Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - Não relate um valor de saída não bem-sucedido para os códigos de saída especificados. + Não relate um valor de saída não bem-sucedido para os códigos de saída especificados. Por exemplo, ''--ignore-exit-code 8;9'' ignora os códigos de saída 8 e 9 e retorna 0 nesses casos. Para obter mais informações sobre os códigos de saída, veja https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1050,15 +1050,15 @@ O padrão é TestResults no diretório que contém o aplicativo de teste. 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - A opção 'timeout' deve ter um argumento como valor temporal, com um sufixo de unidade explícito, e um valor numérico positivo dentro do intervalo compatível (até ~49,7 dias). Os sufixos aceitos são 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)' e 'd'/'day(s)'. Por exemplo: '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + A opção 'timeout' deve ter um argumento como valor temporal, com um sufixo de unidade explícito, e um valor numérico positivo dentro do intervalo compatível (até ~49,7 dias). Os sufixos aceitos são 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)' e 'd'/'day(s)'. Por exemplo: '500ms', '5400s', '90m', '1.5h', '1d'. + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - Um tempo limite global de execução de teste. + Um tempo limite global de execução de teste. Recebe um argumento como valor temporal, com um sufixo de unidade explícito. Os sufixos aceitos são 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)' e 'd'/'day(s)'. Por exemplo: '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ Leia mais sobre a telemetria da Plataforma de Testes da Microsoft: https://aka.m The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - O inicializador de host de teste "{0}" (UID: {1}) solicitou autorizar a identidade de segurança "{2}" na conexão do controlador de host de teste, mas apenas a identidade de um único aplicativo em área restrita (no Windows, um identificador de segurança do formato 'S-1-15-2-...') pode ser autorizado. Usuários, grupos e o identificador de segurança catch-all "{3}" nunca recebem acesso. - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + O inicializador de host de teste "{0}" (UID: {1}) solicitou autorizar a identidade de segurança "{2}" na conexão do controlador de host de teste, mas apenas a identidade de um único aplicativo em área restrita (no Windows, um identificador de segurança do formato 'S-1-15-2-...') pode ser autorizado. Usuários, grupos e o identificador de segurança catch-all "{3}" nunca recebem acesso. + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf index ffd7fc5c69..9e629e79d2 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Запустите "--help", чтобы просмотреть параметры, зарегистрированные этим тестовым приложением. Если параметр относится к расширению, проверьте, указан ли его пакет и зарегистрировано ли расширение. - {Locked="'--help'"} + Запустите "--help", чтобы просмотреть параметры, зарегистрированные этим тестовым приложением. Если параметр относится к расширению, проверьте, указан ли его пакет и зарегистрировано ли расширение. + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - Взамен используйте '--crashdump' и (или) '--hangdump'. MTP разделяет диагностику сбоев и зависаний, поэтому для сборщика blame в VSTest нет прямой замены. - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + Взамен используйте '--crashdump' и (или) '--hangdump'. MTP разделяет диагностику сбоев и зависаний, поэтому для сборщика blame в VSTest нет прямой замены. + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - Для сопоставимого уровня детализации вывода в консоли используйте '--output {0}'. Вывод MTP в консоль настраивается по-другому, поэтому это не точная замена. - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + Для сопоставимого уровня детализации вывода в консоли используйте '--output {0}'. Вывод MTP в консоль настраивается по-другому, поэтому это не точная замена. + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP использует параметры для конкретного модуля формирования отчетов, такие как '--report-trx', '--report-html' и '--report-junit'. Сведения о параметре MTP см. в документации по расширению модуля формирования отчетов. - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + MTP использует параметры для конкретного модуля формирования отчетов, такие как '--report-trx', '--report-html' и '--report-junit'. Сведения о параметре MTP см. в документации по расширению модуля формирования отчетов. + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - Для объема протестированного кода в MTP используйте '--coverage'. Это не прозрачная замена сборщика 'XPlat Code Coverage' в Coverlet. - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + Для объема протестированного кода в MTP используйте '--coverage'. Это не прозрачная замена сборщика 'XPlat Code Coverage' в Coverlet. + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - Обработчик расширения "{0}.{1}" из сборки "{2}", объявленный в манифесте расширения "{3}", объявлен как "async void". Платформа вызывает обработчик синхронно, поэтому он вернет управление на первом операторе "await": все, что он регистрирует после этой точки, будет конкурировать с собственной настройкой тестового приложения, а любой сбой будет потерян. Сделайте обработчик синхронным. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + Обработчик расширения "{0}.{1}" из сборки "{2}", объявленный в манифесте расширения "{3}", объявлен как "async void". Платформа вызывает обработчик синхронно, поэтому он вернет управление на первом операторе "await": все, что он регистрирует после этой точки, будет конкурировать с собственной настройкой тестового приложения, а любой сбой будет потерян. Сделайте обработчик синхронным. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - Обработчик расширения "{0}.{1}" из сборки "{2}", объявленный в манифесте расширения "{3}", возвращает "{4}", но должен возвращать "void". Платформа вызывает обработчик синхронно, поэтому возвращаемое значение никогда не наблюдается; в частности, возвращаемая задача никогда не будет ожидаться, а ее регистрации и сбои будут потеряны. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + Обработчик расширения "{0}.{1}" из сборки "{2}", объявленный в манифесте расширения "{3}", возвращает "{4}", но должен возвращать "void". Платформа вызывает обработчик синхронно, поэтому возвращаемое значение никогда не наблюдается; в частности, возвращаемая задача никогда не будет ожидаться, а ее регистрации и сбои будут потеряны. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - Тип "{0}" в сборке "{1}", объявленный в манифесте расширения "{2}", не предоставляет метод "public static void" с именем "{3}", принимающий "ITestApplicationBuilder" и "string[]". - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + Тип "{0}" в сборке "{1}", объявленный в манифесте расширения "{2}", не предоставляет метод "public static void" с именем "{3}", принимающий "ITestApplicationBuilder" и "string[]". + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - Манифест расширения "{0}" объявляет расширения для загрузки, но текущая среда выполнения не поддерживает динамическую загрузку сборок (например, при публикации с использованием собственного AOT). Установите свойство "{1}" каждого расширения в значение "false", удалите манифест или уберите "{2}" из командной строки. - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + Манифест расширения "{0}" объявляет расширения для загрузки, но текущая среда выполнения не поддерживает динамическую загрузку сборок (например, при публикации с использованием собственного AOT). Установите свойство "{1}" каждого расширения в значение "false", удалите манифест или уберите "{2}" из командной строки. + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Включить загрузку расширений тестовой платформы, объявленных в манифестах "*.testingplatformextensions.json", найденных рядом с тестовым приложением. По умолчанию отключено. - {Locked="'*.testingplatformextensions.json'"} + Включить загрузку расширений тестовой платформы, объявленных в манифестах "*.testingplatformextensions.json", найденных рядом с тестовым приложением. По умолчанию отключено. + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - Не сообщать о неуспешном значении завершения для указанных кодов завершения. + Не сообщать о неуспешном значении завершения для указанных кодов завершения. Например, "'--ignore-exit-code 8;9" игнорирует коды завершения 8 и 9 и в этих случаях возвращает 0. Дополнительные сведения о кодах завершения см. на странице https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1051,14 +1051,14 @@ The default is TestResults in the directory that contains the test application.< 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ Read more about Microsoft Testing Platform telemetry: https://aka.ms/testingplat The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - Средство запуска тестового узла "{0}" (UID: {1}) запросило авторизацию удостоверения безопасности "{2}" для подключения к контроллеру тестового узла, но можно авторизовать только удостоверение одного приложения в песочнице (в Windows — идентификатор безопасности вида 'S-1-15-2-...'). Пользователям, группам и универсальному идентификатору безопасности "{3}" доступ никогда не предоставляется. - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + Средство запуска тестового узла "{0}" (UID: {1}) запросило авторизацию удостоверения безопасности "{2}" для подключения к контроллеру тестового узла, но можно авторизовать только удостоверение одного приложения в песочнице (в Windows — идентификатор безопасности вида 'S-1-15-2-...'). Пользователям, группам и универсальному идентификатору безопасности "{3}" доступ никогда не предоставляется. + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf index d9647486d3..ade2720486 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - Bu test uygulaması tarafından kaydedilen seçenekleri görmek için '--help' komutunu çalıştırın. Seçenek bir uzantıya aitse, paketine başvurulduğundan ve uzantının kaydedildiğinden emin olun. - {Locked="'--help'"} + Bu test uygulaması tarafından kaydedilen seçenekleri görmek için '--help' komutunu çalıştırın. Seçenek bir uzantıya aitse, paketine başvurulduğundan ve uzantının kaydedildiğinden emin olun. + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - Bunun yerine '--crashdump' ve/veya '--hangdump' seçeneklerini kullanın. MTP, kilitlenme ve takılma tanılamasını ayırır, bu nedenle VSTest blame toplayıcısının bire bir karşılığı yoktur. - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + Bunun yerine '--crashdump' ve/veya '--hangdump' seçeneklerini kullanın. MTP, kilitlenme ve takılma tanılamasını ayırır, bu nedenle VSTest blame toplayıcısının bire bir karşılığı yoktur. + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - Karşılaştırılabilir konsol ayrıntı düzeyi için '--output {0}' seçeneğini kullanın. MTP konsol çıkışı farklı yapılandırıldığından bu tam bir değiştirme değildir. - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + Karşılaştırılabilir konsol ayrıntı düzeyi için '--output {0}' seçeneğini kullanın. MTP konsol çıkışı farklı yapılandırıldığından bu tam bir değiştirme değildir. + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP, '--report-trx', '--report-html' ve '--report-junit' gibi raporlayıcıya özgü seçenekleri kullanır. MTP seçeneği için raporlayıcı uzantısının belgelerine bakın. - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + MTP, '--report-trx', '--report-html' ve '--report-junit' gibi raporlayıcıya özgü seçenekleri kullanır. MTP seçeneği için raporlayıcı uzantısının belgelerine bakın. + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - MTP kod kapsamı için '--coverage' seçeneğini kullanın. Bu, Coverlet'in 'XPlat Code Coverage' toplayıcısı için saydam bir değiştirme değildir. - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + MTP kod kapsamı için '--coverage' seçeneğini kullanın. Bu, Coverlet'in 'XPlat Code Coverage' toplayıcısı için saydam bir değiştirme değildir. + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - “{3}” uzantı bildiriminde bildirilen “{2}” derlemesindeki “{0}.{1}” uzantı kancası “async void” olarak bildirilmiş. Platform kancayı senkron olarak çağırır, bu nedenle ilk await ifadesinde geri döner; bu noktadan sonra kaydettiği her şey test uygulamasının kendi kurulumuyla yarışır ve herhangi bir hata kaybolur. Kancayı senkron yapın. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + “{3}” uzantı bildiriminde bildirilen “{2}” derlemesindeki “{0}.{1}” uzantı kancası “async void” olarak bildirilmiş. Platform kancayı senkron olarak çağırır, bu nedenle ilk await ifadesinde geri döner; bu noktadan sonra kaydettiği her şey test uygulamasının kendi kurulumuyla yarışır ve herhangi bir hata kaybolur. Kancayı senkron yapın. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - “{3}” uzantı bildiriminde bildirilen “{2}” derlemesindeki “{0}.{1}” uzantı kancası “{4}” döndürüyor, ancak “void” döndürmelidir. Platform kancayı eşzamanlı olarak çağırır, bu nedenle hiçbir geri gönderme değeri gözlemlenmez; özellikle döndürülen bir görev hiçbir zaman await edilmez ve kayıtları ile hataları kaybolur. - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + “{3}” uzantı bildiriminde bildirilen “{2}” derlemesindeki “{0}.{1}” uzantı kancası “{4}” döndürüyor, ancak “void” döndürmelidir. Platform kancayı eşzamanlı olarak çağırır, bu nedenle hiçbir geri gönderme değeri gözlemlenmez; özellikle döndürülen bir görev hiçbir zaman await edilmez ve kayıtları ile hataları kaybolur. + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - “{2}” uzantı bildiriminde bildirilen “{1}” derlemesindeki “{0}” türü, ITestApplicationBuilder ve string[] alan “{3}” adlı public static void yöntemini kullanıma sunmuyor. - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + “{2}” uzantı bildiriminde bildirilen “{1}” derlemesindeki “{0}” türü, ITestApplicationBuilder ve string[] alan “{3}” adlı public static void yöntemini kullanıma sunmuyor. + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - Uzantı bildirimi '{0}', yüklemek için uzantılar bildiriyor, ancak geçerli clr çalışma zamanı derlemeleri dinamik olarak yüklemeyi desteklemiyor (örneğin, native AOT ile yayımlandığında). Her uzantının '{1}' özelliğini 'false' olarak ayarlayın, bildirimi kaldırın veya komut satırından '{2}' seçeneğini kaldırın. - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + Uzantı bildirimi '{0}', yüklemek için uzantılar bildiriyor, ancak geçerli clr çalışma zamanı derlemeleri dinamik olarak yüklemeyi desteklemiyor (örneğin, native AOT ile yayımlandığında). Her uzantının '{1}' özelliğini 'false' olarak ayarlayın, bildirimi kaldırın veya komut satırından '{2}' seçeneğini kaldırın. + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - Test uygulamasının yanında bulunan '*.testingplatformextensions.json' bildirimleri tarafından bildirilen test platformu uzantılarının yüklenmesini etkinleştirin. Varsayılan olarak devre dışıdır. - {Locked="'*.testingplatformextensions.json'"} + Test uygulamasının yanında bulunan '*.testingplatformextensions.json' bildirimleri tarafından bildirilen test platformu uzantılarının yüklenmesini etkinleştirin. Varsayılan olarak devre dışıdır. + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - Belirtilen çıkış kodları için başarı dışı bir çıkış değeri bildirmeyin. + Belirtilen çıkış kodları için başarı dışı bir çıkış değeri bildirmeyin. Örneğin, '--ignore-exit-code 8;9' 8 ve 9 çıkış kodlarını yoksayar ve bu durumlarda 0 döndürür. Çıkış kodları hakkında daha fazla bilgi için https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes adresine bakın. - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1050,15 +1050,15 @@ Varsayılan değer, test uygulamasını içeren dizindeki TestResults'dır. 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - 'timeout' seçeneğinin, açık birim soneki ve desteklenen aralıkta (en fazla yaklaşık 49,7 gün) olan pozitif bir sayısal değer içeren bir zaman değeri olarak tek bir bağımsız değişkeni olmalıdır. Kabul edilen sonekler: 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', ör. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + 'timeout' seçeneğinin, açık birim soneki ve desteklenen aralıkta (en fazla yaklaşık 49,7 gün) olan pozitif bir sayısal değer içeren bir zaman değeri olarak tek bir bağımsız değişkeni olmalıdır. Kabul edilen sonekler: 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', ör. '500ms', '5400s', '90m', '1.5h', '1d'. + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - Genel bir test yürütme zaman aşımı. + Genel bir test yürütme zaman aşımı. Açık bir birim soneki bulunan bir zaman değeri olarak bir bağımsız değişken alır. Kabul edilen sonekler: 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', ör. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ Microsoft Test Platformu telemetrisi hakkında daha fazla bilgi edinin: https:// The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - Test konağı başlatıcısı '{0}' (UID: {1}) '{2}' güvenlik kimliğinin test konağı denetleyici bağlantısında yetkilendirilmesini istedi, ancak yalnızca korumalı tek bir uygulama (Windows'da, 'S-1-15-2-...' biçiminde bir güvenlik tanımlayıcısı) yetkilendirilebilir. Kullanıcılara, gruplara ve kapsayıcı '{3}' güvenlik tanımlayıcısına hiçbir zaman erişim izni verilmez. - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + Test konağı başlatıcısı '{0}' (UID: {1}) '{2}' güvenlik kimliğinin test konağı denetleyici bağlantısında yetkilendirilmesini istedi, ancak yalnızca korumalı tek bir uygulama (Windows'da, 'S-1-15-2-...' biçiminde bir güvenlik tanımlayıcısı) yetkilendirilebilir. Kullanıcılara, gruplara ve kapsayıcı '{3}' güvenlik tanımlayıcısına hiçbir zaman erişim izni verilmez. + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf index fc4354f361..d9fb339d9e 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - 运行 '--help' 以查看此测试应用程序注册的选项。如果该选项属于扩展,请确保引用其包并注册扩展。 - {Locked="'--help'"} + 运行 '--help' 以查看此测试应用程序注册的选项。如果该选项属于扩展,请确保引用其包并注册扩展。 + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - 请改用 '--crashdump' 和/或 '--hangdump'。MTP 分离了崩溃和挂起诊断,因此 VSTest 故障收集器不存在一对一替代项。 - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + 请改用 '--crashdump' 和/或 '--hangdump'。MTP 分离了崩溃和挂起诊断,因此 VSTest 故障收集器不存在一对一替代项。 + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - 要实现同等的控制台详细程度,请使用 '--output {0}'。MTP 控制台输出的配置方式不同,因此这不是完全替换。 - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + 要实现同等的控制台详细程度,请使用 '--output {0}'。MTP 控制台输出的配置方式不同,因此这不是完全替换。 + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP 使用特定于报告器的选项,例如 '--report-trx'、'--report-html' 和 '--report-junit'。有关其 MTP 选项,请查阅报告器扩展的文档。 - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + MTP 使用特定于报告器的选项,例如 '--report-trx'、'--report-html' 和 '--report-junit'。有关其 MTP 选项,请查阅报告器扩展的文档。 + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - 对于 MTP 代码覆盖率,请使用 '--coverage'。这不是 Coverlet 的 'XPlat Code Coverage' 收集器的透明替代。 - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + 对于 MTP 代码覆盖率,请使用 '--coverage'。这不是 Coverlet 的 'XPlat Code Coverage' 收集器的透明替代。 + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - 来自扩展清单“{3}”中声明的程序集“{2}”的“{0}.{1}”扩展挂钩声明为 'async void'。平台会同步调用挂钩,因此它将在遇到第一个等待时返回: 它在此时间点之后注册的任何内容都将与测试应用程序自己的设置发生争用,并且任何失败都将丢失。将挂钩设置为同步。 - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + 来自扩展清单“{3}”中声明的程序集“{2}”的“{0}.{1}”扩展挂钩声明为 'async void'。平台会同步调用挂钩,因此它将在遇到第一个等待时返回: 它在此时间点之后注册的任何内容都将与测试应用程序自己的设置发生争用,并且任何失败都将丢失。将挂钩设置为同步。 + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - 扩展清单“{3}”中声明的程序集“{2}”中的“{0}.{1}”扩展挂钩返回“{4}”,但必须返回 'void'。平台会同步调用挂钩,因此永远不会观察到返回值;特别是,永远不会等待返回的任务,并且其注册和失败将会丢失。 - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + 扩展清单“{3}”中声明的程序集“{2}”中的“{0}.{1}”扩展挂钩返回“{4}”,但必须返回 'void'。平台会同步调用挂钩,因此永远不会观察到返回值;特别是,永远不会等待返回的任务,并且其注册和失败将会丢失。 + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - 扩展清单“{2}”中声明的程序集“{1}”中的类型“{0}”不公开采用 'ITestApplicationBuilder' 和 'string[]' 且名为“{3}”的 'public static void' 方法。 - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + 扩展清单“{2}”中声明的程序集“{1}”中的类型“{0}”不公开采用 'ITestApplicationBuilder' 和 'string[]' 且名为“{3}”的 'public static void' 方法。 + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - 扩展清单“{0}”声明了要加载的扩展,但当前运行时不支持动态加载程序集(例如,使用本机 AOT 发布时)。将每个扩展的“{1}”属性设置为 'false'、移除清单,或从命令行中移除“{2}”。 - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + 扩展清单“{0}”声明了要加载的扩展,但当前运行时不支持动态加载程序集(例如,使用本机 AOT 发布时)。将每个扩展的“{1}”属性设置为 'false'、移除清单,或从命令行中移除“{2}”。 + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - 启用加载由测试应用程序旁边的 '*.testingplatformextensions.json' 清单声明的测试平台扩展。默认情况下禁用。 - {Locked="'*.testingplatformextensions.json'"} + 启用加载由测试应用程序旁边的 '*.testingplatformextensions.json' 清单声明的测试平台扩展。默认情况下禁用。 + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - 不报告指定退出代码的非成功退出值。 + 不报告指定退出代码的非成功退出值。 例如,'--ignore-exit-code 8;9' 将在这些情况下忽略退出代码 8 和 9 并返回 0。 有关退出代码的详细信息,请参阅 https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes。 - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1051,14 +1051,14 @@ The default is TestResults in the directory that contains the test application.< 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ Microsoft 测试平台会收集使用数据,帮助我们改善体验。该数 The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - 测试主机启动器 "{0}"(UID: {1})请求在测试主机控制器连接上授权安全标识符 "{2}",但只能授权单个沙盒应用的标识符(在 Windows 上,格式为 "S-1-15-2-..." 的安全标识符)。从不向用户、组以及通用 "{3}" 安全标识符授予访问权限。 - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + 测试主机启动器 "{0}"(UID: {1})请求在测试主机控制器连接上授权安全标识符 "{2}",但只能授权单个沙盒应用的标识符(在 Windows 上,格式为 "S-1-15-2-..." 的安全标识符)。从不向用户、组以及通用 "{3}" 安全标识符授予访问权限。 + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf index 80e1faa4d6..83ff89a2d4 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf @@ -284,13 +284,13 @@ Run '--help' to see the options registered by this test application. If the option belongs to an extension, ensure its package is referenced and the extension is registered. - 執行 '--help' 以查看此測試應用程式註冊的選項。如果該選項屬於延伸模組,請確認已參考其套件,且已註冊該延伸模組。 - {Locked="'--help'"} + 執行 '--help' 以查看此測試應用程式註冊的選項。如果該選項屬於延伸模組,請確認已參考其套件,且已註冊該延伸模組。 + {Locked="--help"} Use '--crashdump' and/or '--hangdump' instead. MTP separates crash and hang diagnostics, so there is no one-to-one replacement for the VSTest blame collector. - 請改用 '--crashdump' 和/或 '--hangdump'。MTP 將當機與停止回應診斷分開,因此沒有能一對一取代 VSTest blame 收集器的功能。 - {Locked="'--crashdump'"}{Locked="'--hangdump'"}{Locked="MTP"}{Locked="VSTest"} + 請改用 '--crashdump' 和/或 '--hangdump'。MTP 將當機與停止回應診斷分開,因此沒有能一對一取代 VSTest blame 收集器的功能。 + {Locked="--crashdump"}{Locked="--hangdump"}{Locked="MTP"}{Locked="VSTest"} MTP uses collector-specific options. Consult the extension's documentation for its MTP option. @@ -299,13 +299,13 @@ For comparable console verbosity, use '--output {0}'. MTP console output is configured differently, so this is not an exact replacement. - 如需相近的主控台詳細程度,請使用 '--output {0}'。MTP 主控台輸出的設定不同,因此這不是完全的取代項目。 - {0} is the MTP output verbosity. {Locked="MTP"}{Locked="'--output {0}'"} + 如需相近的主控台詳細程度,請使用 '--output {0}'。MTP 主控台輸出的設定不同,因此這不是完全的取代項目。 + {0} is the MTP output verbosity. {Locked="MTP"}{Locked="--output {0}"} MTP uses reporter-specific options such as '--report-trx', '--report-html', and '--report-junit'. Consult the reporter extension's documentation for its MTP option. - MTP 使用報表器特定選項,例如 '--report-trx'、'--report-html' 和 '--report-junit'。請參閱報表器延伸模組的文件,了解其 MTP 選項。 - {Locked="MTP"}{Locked="'--report-trx'"}{Locked="'--report-html'"}{Locked="'--report-junit'"} + MTP 使用報表器特定選項,例如 '--report-trx'、'--report-html' 和 '--report-junit'。請參閱報表器延伸模組的文件,了解其 MTP 選項。 + {Locked="MTP"}{Locked="--report-trx"}{Locked="--report-html"}{Locked="--report-junit"} Option '--{0}' uses VSTest syntax, which is not supported by Microsoft.Testing.Platform. @@ -319,8 +319,8 @@ For MTP code coverage, use '--coverage'. This is not a transparent replacement for Coverlet's 'XPlat Code Coverage' collector. - 如需 MTP 程式碼涵蓋範圍,請使用 '--coverage'。這不是 Coverlet 的 'XPlat Code Coverage' 收集器的直接替代品。 - {Locked="MTP"}{Locked="'--coverage'"}{Locked="Coverlet"}{Locked="'XPlat Code Coverage'"} + 如需 MTP 程式碼涵蓋範圍,請使用 '--coverage'。這不是 Coverlet 的 'XPlat Code Coverage' 收集器的直接替代品。 + {Locked="MTP"}{Locked="--coverage"}{Locked="Coverlet"}{Locked="XPlat Code Coverage"} Command line: {0} @@ -434,18 +434,18 @@ The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous. - 延伸模組資訊清單 '{3}' 中所宣告、來自組件 '{2}' 的 '{0}.{1}' 延伸模組掛鉤宣告為 'async void'。平台會同步叫用此掛鉤,因此它會在第一次 await 時返回: 之後註冊的任何內容都會和測試應用程式本身的設定發生競爭,而任何失敗都會遺失。請將此掛鉤改為同步。 - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"} + 延伸模組資訊清單 '{3}' 中所宣告、來自組件 '{2}' 的 '{0}.{1}' 延伸模組掛鉤宣告為 'async void'。平台會同步叫用此掛鉤,因此它會在第一次 await 時返回: 之後註冊的任何內容都會和測試應用程式本身的設定發生競爭,而任何失敗都會遺失。請將此掛鉤改為同步。 + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="async void"} The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost. - 延伸模組資訊清單 '{3}' 中所宣告、來自組件 '{2}' 的 '{0}.{1}' 延伸模組掛鉤傳回 '{4}',但需傳回 'void'。平台會同步叫用此掛鉤,因此永遠不會觀察到傳回值;尤其是,傳回的工作不會被等待,其註冊和失敗都會遺失。 - {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"} + 延伸模組資訊清單 '{3}' 中所宣告、來自組件 '{2}' 的 '{0}.{1}' 延伸模組掛鉤傳回 '{4}',但需傳回 'void'。平台會同步叫用此掛鉤,因此永遠不會觀察到傳回值;尤其是,傳回的工作不會被等待,其註冊和失敗都會遺失。 + {0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="void"} The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'. - 在延伸模組資訊清單 '{2}' 中宣告的組件 '{1}' 內的類型 '{0}' 未公開名為 '{3}' 的 'public static void' 方法,而該方法必須接受 'ITestApplicationBuilder' 和 'string[]'。 - {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"} + 在延伸模組資訊清單 '{2}' 中宣告的組件 '{1}' 內的類型 '{0}' 未公開名為 '{3}' 的 'public static void' 方法,而該方法必須接受 'ITestApplicationBuilder' 和 'string[]'。 + {0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="public static void"}{Locked="ITestApplicationBuilder"}{Locked="string[]"} The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery. @@ -534,8 +534,8 @@ The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line. - 延伸模組資訊清單 '{0}' 宣告了要載入的延伸模組,但目前的執行階段不支援動態載入組件 (例如以原生 AOT 發佈時)。請將每個延伸模組的 '{1}' 屬性設為 'false',移除資訊清單,或從命令列中移除 '{2}'。 - {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"} + 延伸模組資訊清單 '{0}' 宣告了要載入的延伸模組,但目前的執行階段不支援動態載入組件 (例如以原生 AOT 發佈時)。請將每個延伸模組的 '{1}' 屬性設為 'false',移除資訊清單,或從命令列中移除 '{2}'。 + {0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="false"} Provider '{0}' (UID: {1}) failed with error: {2} @@ -913,8 +913,8 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default. - 啟用載入測試應用程式旁 '*.testingplatformextensions.json' 資訊清單所宣告的測試平台延伸模組。預設為停用。 - {Locked="'*.testingplatformextensions.json'"} + 啟用載入測試應用程式旁 '*.testingplatformextensions.json' 資訊清單所宣告的測試平台延伸模組。預設為停用。 + {Locked="*.testingplatformextensions.json"} Invalid PID '{0}' @@ -952,10 +952,10 @@ Optionally accepts 'text' (the default human-readable output) or 'json' to print Do not report a non-successful exit value for the specified exit codes. For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases. For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes. - 請勿針對指定的結束碼報告非成功的結束值。 + 請勿針對指定的結束碼報告非成功的結束值。 例如,'--ignore-exit-code 8;9' 會忽略結束碼 8 和 9,並在這些情況下傳回 0。 如需結束碼的詳細資訊,請參閱 https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes。 - {Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} + {Locked="--ignore-exit-code 8;9"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"} Display .NET test application information. @@ -1050,15 +1050,15 @@ The default is TestResults in the directory that contains the test application.< 'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - 'timeout' 選項應該有一個引數做為具有明確單位後置詞的時間值,以及在支援的範圍內的正數值 (最多 ~49.7 天)。接受的後置詞為 'ms'/'mil(s)'/'millisecond(s)'、's'/'sec(s)'/'second(s)'、'm'/'min(s)'/'minute(s)'、'h'/'hour(s)' 和 'd'/'day(s)',例如 '500ms'、'5400s'、'90m'、'1.5h'、'1d'。 - {Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + 'timeout' 選項應該有一個引數做為具有明確單位後置詞的時間值,以及在支援的範圍內的正數值 (最多 ~49.7 天)。接受的後置詞為 'ms'/'mil(s)'/'millisecond(s)'、's'/'sec(s)'/'second(s)'、'm'/'min(s)'/'minute(s)'、'h'/'hour(s)' 和 'd'/'day(s)',例如 '500ms'、'5400s'、'90m'、'1.5h'、'1d'。 + {Locked="timeout"}{Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} A global test execution timeout. Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'. - 全域測試執行逾時。 + 全域測試執行逾時。 採用一個引數做為具有明確單位後置詞的時間值。接受的後置詞為 'ms'/'mil(s)'/'millisecond(s)'、's'/'sec(s)'/'second(s)'、'm'/'min(s)'/'minute(s)'、'h'/'hour(s)' 和 'd'/'day(s)',例如 '500ms'、'5400s'、'90m'、'1.5h'、'1d'。 - {Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"} + {Locked="'ms'"}{Locked="mil(s)"}{Locked="millisecond(s)"}{Locked="'s'"}{Locked="sec(s)"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="min(s)"}{Locked="minute(s)"}{Locked="'h'"}{Locked="hour(s)"}{Locked="'d'"}{Locked="day(s)"}{Locked="500ms"}{Locked="5400s"}{Locked="90m"}{Locked="1.5h"}{Locked="1d"} Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}. @@ -1294,8 +1294,8 @@ Microsoft 測試平台會收集使用量資料,以協助我們改善您的體 The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access. - 測試主機啟動器 '{0}' (UID: {1}) 要求在測試主機控制器連線上授權安全性識別 '{2}',但只能授權單一受沙箱保護的應用程式身分識別 (在 Windows 上,格式為 'S-1-15-2-...' 的安全性識別碼)。使用者、群組,以及萬用 '{3}' 安全性識別碼,絕不會獲得存取權。 - {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"} + 測試主機啟動器 '{0}' (UID: {1}) 要求在測試主機控制器連線上授權安全性識別 '{2}',但只能授權單一受沙箱保護的應用程式身分識別 (在 Windows 上,格式為 'S-1-15-2-...' 的安全性識別碼)。使用者、群組,以及萬用 '{3}' 安全性識別碼,絕不會獲得存取權。 + {0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="S-1-15-2-..."} Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms. From c14c7bfef86f8176b85b6dc3bdac54d369ac4a77 Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Wed, 9 Sep 2026 20:05:58 +0200 Subject: [PATCH 24/33] Fix flaky TestHostControllerCancellationServer disposal (RST instead of graceful disconnect) by @Evangelink in #11113 (backport to rel/4.4) (#11150) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Amaury Levé Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../IPC/NamedPipeServer.cs | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeServer.cs b/src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeServer.cs index b4cc35e132..c5bd622be0 100644 --- a/src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeServer.cs +++ b/src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeServer.cs @@ -469,10 +469,18 @@ public void Dispose() if (wasConnected) { +#if !NET + // On .NET Framework (netstandard2.0 build), PipeStream.ReadAsync(byte[], int, int, CancellationToken) + // does not reliably interrupt the underlying blocking read when only the cancellation token is + // canceled. Force-closing the stream here unblocks that pending read. On modern .NET the read uses + // the Memory-based overload, which honors cancellation without requiring the stream to be + // disposed mid-operation; eagerly disposing it there would race with the in-flight cancellation and + // can surface to the connected client as an abrupt reset instead of a graceful disconnect. if (_cancellationToken.IsCancellationRequested) { _namedPipeServerStream.Dispose(); } +#endif // To close gracefully we need to ensure that the client closed the stream in the InternalLoopAsync method (there is comment `// The client has disconnected`). if (loopTask is not null && !loopTask.Wait(TimeoutHelper.DefaultHangTimeSpanTimeout)) @@ -508,11 +516,11 @@ public async ValueTask DisposeAsync() if (wasConnected) { - if (_cancellationToken.IsCancellationRequested) - { - _namedPipeServerStream.Dispose(); - } - + // Unlike the netstandard2.0 build used by Dispose(), this method is only compiled for modern .NET, + // where PipeStream.ReadAsync(Memory, CancellationToken) honors cancellation without needing the + // stream to be force-disposed mid-operation. Eagerly disposing it here would race with the in-flight + // cancellation of the pending read and can surface to the connected client as an abrupt reset instead + // of a graceful disconnect. if (loopTask is not null) { try From 741a4e8b7bfecac06bd8af8b0ea1b178e5b4eb36 Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Wed, 9 Sep 2026 20:07:34 +0200 Subject: [PATCH 25/33] Localized file check-in by OneLocBuild Task: Build definition ID 1218: Build ID 3070966 by @dotnet-oneloc-localization[bot] in #11149 (backport to rel/4.4) (#11151) Co-authored-by: dotnet-oneloc-localization[bot] <310689744+dotnet-oneloc-localization[bot]@users.noreply.github.com> --- .../xlf/CodeFixResources.de.xlf | 5 +++++ .../xlf/CodeFixResources.fr.xlf | 5 +++++ .../xlf/CodeFixResources.ko.xlf | 5 +++++ .../xlf/CodeFixResources.pt-BR.xlf | 5 +++++ .../xlf/CodeFixResources.zh-Hant.xlf | 5 +++++ .../MSTest.Analyzers/xlf/Resources.cs.xlf | 15 +++++++++++++++ .../MSTest.Analyzers/xlf/Resources.de.xlf | 15 +++++++++++++++ .../MSTest.Analyzers/xlf/Resources.it.xlf | 15 +++++++++++++++ .../MSTest.Analyzers/xlf/Resources.ja.xlf | 15 +++++++++++++++ .../MSTest.Analyzers/xlf/Resources.ko.xlf | 15 +++++++++++++++ .../MSTest.Analyzers/xlf/Resources.pt-BR.xlf | 15 +++++++++++++++ .../MSTest.Analyzers/xlf/Resources.zh-Hans.xlf | 15 +++++++++++++++ 12 files changed, 130 insertions(+) diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.de.xlf b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.de.xlf index 3669509b17..791d6919fd 100644 --- a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.de.xlf +++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.de.xlf @@ -87,6 +87,11 @@ Signatur korrigieren + + Make '[OSCondition]' consistent with platform compatibility attributes + '[OSCondition]' mit Plattformkompatibilitätsattributen konsistent machen + {Locked="[OSCondition]"} + Pass 'TestContext.CancellationToken' argument to method call Argument „TestContext.CancellationToken“ an den Methodenaufruf übergeben diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.fr.xlf b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.fr.xlf index b472bf14e3..32e0eeca04 100644 --- a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.fr.xlf +++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.fr.xlf @@ -87,6 +87,11 @@ Corriger la signature numérique + + Make '[OSCondition]' consistent with platform compatibility attributes + Assurez la cohérence de « '[OSCondition]' » avec les attributs de compatibilité de la plateforme + {Locked="[OSCondition]"} + Pass 'TestContext.CancellationToken' argument to method call Transmettre l'argument « TestContext.CancellationToken » à l'appel de méthode diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.ko.xlf b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.ko.xlf index d2ba8fbbb1..20336f4e7c 100644 --- a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.ko.xlf +++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.ko.xlf @@ -87,6 +87,11 @@ 서명 수정 + + Make '[OSCondition]' consistent with platform compatibility attributes + '[OSCondition]'을 플랫폼 호환성 특성과 일치하도록 설정 + {Locked="[OSCondition]"} + Pass 'TestContext.CancellationToken' argument to method call 메서드 호출에 'TestContext.CancellationToken' 인수 전달 diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.pt-BR.xlf b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.pt-BR.xlf index 1f271eab29..65c4b2ca53 100644 --- a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.pt-BR.xlf +++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.pt-BR.xlf @@ -87,6 +87,11 @@ Corrigir assinatura + + Make '[OSCondition]' consistent with platform compatibility attributes + Tornar ''[OSCondition]'' consistente com os atributos de compatibilidade da plataforma + {Locked="[OSCondition]"} + Pass 'TestContext.CancellationToken' argument to method call Passar o argumento 'TestContext.CancellationToken' para a chamada de método diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.zh-Hant.xlf b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.zh-Hant.xlf index 97b6320b42..401d6212b4 100644 --- a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.zh-Hant.xlf +++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.zh-Hant.xlf @@ -87,6 +87,11 @@ 修正簽章 + + Make '[OSCondition]' consistent with platform compatibility attributes + 讓 '[OSCondition]' 與平台相容性屬性一致 + {Locked="[OSCondition]"} + Pass 'TestContext.CancellationToken' argument to method call 將 'TestContext.CancellationToken' 引數傳遞給方法呼叫 diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf index 1274e14808..e8cc2b2e73 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf @@ -760,6 +760,21 @@ Typ deklarující tyto metody by měl také respektovat následující pravidla: Neignorovat návratovou hodnotu řetězcových metod + + 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. + Atributy 'SupportedOSPlatformAttribute' a 'UnsupportedOSPlatformAttribute' poskytují analýze kompatibility platformy informace, ale neřídí spouštění testů MSTest. Testovací metody a testovací třídy, které používají tyto atributy, by měly také deklarovat ekvivalentní atribut '[OSCondition]', aby se nepodporované testy za běhu přeskočily. + {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} + + + Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute + Atributy kompatibility platformy v testu {0} nejsou reprezentovány ekvivalentním atributem '[OSCondition]' + {0} is the test method or test class name. {Locked="[OSCondition]"} + + + Platform compatibility attributes should be consistent with '[OSCondition]' + Atributy kompatibility platformy by měly být konzistentní s atributem '[OSCondition]' + {Locked="[OSCondition]"} + 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail' explicitně vyjadřuje záměrné selhání a umožňuje ve zprávě o selhání zdokumentovat, proč test nemůže pokračovat. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf index da8bcb921c..2bfbbdd9c6 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf @@ -760,6 +760,21 @@ Der Typ, der diese Methoden deklariert, sollte auch die folgenden Regeln beachte Rückgabewert von Zeichenfolgenmethoden nicht ignorieren + + 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. + 'SupportedOSPlatformAttribute' und 'UnsupportedOSPlatformAttribute' informieren über die Plattformkompatibilitätsanalyse, steuern aber nicht die MSTest-Ausführung. Testmethoden und Testklassen, die diese Attribute verwenden, sollten auch eine entsprechende '[OSCondition]' deklarieren, damit nicht unterstützte Tests zur Laufzeit übersprungen werden. + {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} + + + Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute + Plattformkompatibilitätsattribute im Test „{0}“ werden nicht durch ein entsprechendes '[OSCondition]'-Attribut dargestellt + {0} is the test method or test class name. {Locked="[OSCondition]"} + + + Platform compatibility attributes should be consistent with '[OSCondition]' + Plattformkompatibilitätsattribute sollten mit '[OSCondition]' konsistent sein + {Locked="[OSCondition]"} + 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail' macht einen absichtlichen Fehler explizit und ermöglicht es, anhand der Fehlermeldung zu dokumentieren, warum der Test nicht fortgesetzt werden kann. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf index fe94b5cfe5..17c4395bb3 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf @@ -760,6 +760,21 @@ Anche il tipo che dichiara questi metodi deve rispettare le regole seguenti: Non ignorare il valore restituito dei metodi stringa + + 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. + 'SupportedOSPlatformAttribute' e 'UnsupportedOSPlatformAttribute' informano l'analisi della compatibilità della piattaforma ma non controllano l'esecuzione di MSTest. I metodi di test e le classi di test che usano questi attributi devono dichiarare anche un '[OSCondition]' equivalente, in modo che i test non supportati vengano ignorati in fase di esecuzione. + {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} + + + Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute + Gli attributi di compatibilità della piattaforma nei test '{0}' non sono rappresentati da un attributo '[OSCondition]' equivalente + {0} is the test method or test class name. {Locked="[OSCondition]"} + + + Platform compatibility attributes should be consistent with '[OSCondition]' + Gli attributi di compatibilità della piattaforma devono essere coerenti con '[OSCondition]' + {Locked="[OSCondition]"} + 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail' rende esplicito un errore intenzionale e consente al messaggio di errore di documentare il motivo per cui il test non può continuare. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf index 8ac1ecd3d5..27c1417411 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf @@ -760,6 +760,21 @@ The type declaring these methods should also respect the following rules: 文字列メソッドの戻り値を無視しない + + 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. + 'SupportedOSPlatformAttribute' と 'UnsupportedOSPlatformAttribute' は、プラットフォーム互換性の分析に使用されますが、MSTest の実行を制御するものではありません。これらの属性を使用するテスト メソッドとテスト クラスでは、サポートされていないテストが実行時にスキップされるように、同等の '[OSCondition]' も宣言する必要があります。 + {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} + + + Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute + テスト '{0}' のプラットフォーム互換性属性が、同等の '[OSCondition]' 属性で表されていません + {0} is the test method or test class name. {Locked="[OSCondition]"} + + + Platform compatibility attributes should be consistent with '[OSCondition]' + プラットフォーム互換性属性は '[OSCondition]' と一致している必要があります + {Locked="[OSCondition]"} + 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail' は意図的な失敗を明示し、エラー メッセージでテストを続行できない理由を文書化できるようにします。 diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf index 823819777b..e9bb228945 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf @@ -760,6 +760,21 @@ The type declaring these methods should also respect the following rules: 문자열 메서드의 반환 값을 무시하지 마세요. + + 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. + 'SupportedOSPlatformAttribute' 및 'UnsupportedOSPlatformAttribute' 플랫폼 호환성 분석을 알리지만 MSTest 실행을 제어하지는 않습니다. 이러한 특성을 사용하는 테스트 메서드 및 테스트 클래스는 지원되지 않는 테스트가 런타임에 건너뛰도록 동등 '[OSCondition]' 선언해야 합니다. + {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} + + + Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute + 테스트 '{0}'의 플랫폼 호환성 특성은 동등한 '[OSCondition]' 특성으로 표시되지 않습니다. + {0} is the test method or test class name. {Locked="[OSCondition]"} + + + Platform compatibility attributes should be consistent with '[OSCondition]' + 플랫폼 호환성 특성은 '[OSCondition]'과 일치해야 함 + {Locked="[OSCondition]"} + 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail'은 의도적인 실패를 명시적으로 나타내고 실패 메시지가 테스트를 계속할 수 없는 이유를 문서화할 수 있도록 합니다. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf index 00b74e5715..c25fe0ab1e 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf @@ -760,6 +760,21 @@ O tipo que declara esses métodos também deve respeitar as seguintes regras: Não ignore o valor retornado dos métodos de cadeia de caracteres + + 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. + ''SupportedOSPlatformAttribute'' e ''UnsupportedOSPlatformAttribute'' informam a análise de compatibilidade da plataforma, mas não controlam a execução do MSTest. Os métodos de teste e classes de teste que usam esses atributos também devem declarar um ''[OSCondition]'' equivalente para que os testes sem suporte sejam ignorados em tempo de execução. + {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} + + + Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute + Os atributos de compatibilidade de plataforma no teste ''{0}'' não são representados por um atributo ''[OSCondition]'' equivalente + {0} is the test method or test class name. {Locked="[OSCondition]"} + + + Platform compatibility attributes should be consistent with '[OSCondition]' + Os atributos de compatibilidade da plataforma devem ser consistentes com ''[OSCondition]'' + {Locked="[OSCondition]"} + 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail' torna explícita uma falha intencional e permite que a mensagem de falha documente por que o teste não pode continuar. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf index f1ebcebbc2..212f55bb4f 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf @@ -760,6 +760,21 @@ The type declaring these methods should also respect the following rules: 不要忽略字符串方法的返回值 + + 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. + 'SupportedOSPlatformAttribute' 和 'UnsupportedOSPlatformAttribute' 告知平台兼容性分析,但不控制 MSTest 执行。使用这些属性的测试方法和测试类还应声明等效的 '[OSCondition]',以便在运行时跳过不受支持的测试。 + {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} + + + Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute + 测试“{0}”上的平台兼容性属性不是由等效的 '[OSCondition]' 属性表示的 + {0} is the test method or test class name. {Locked="[OSCondition]"} + + + Platform compatibility attributes should be consistent with '[OSCondition]' + 平台兼容性属性应与 '[OSCondition]' 一致 + {Locked="[OSCondition]"} + 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail' 可显式化处理有意失败,并允许失败消息记录测试无法继续的原因。 From d7ae3a4423cf8a90a902f155acc45e78c51ac0c7 Mon Sep 17 00:00:00 2001 From: nohwnd-bot Date: Thu, 10 Sep 2026 10:19:17 +0200 Subject: [PATCH 26/33] Localized file check-in by OneLocBuild Task: Build definition ID 1218: Build ID 3071632 by @dotnet-oneloc-localization[bot] in #11158 (backport to rel/4.4) (#11168) Co-authored-by: Evangelink <11340282+Evangelink@users.noreply.github.com> --- .../xlf/CodeFixResources.de.xlf | 5 ----- .../xlf/CodeFixResources.fr.xlf | 5 ----- .../xlf/CodeFixResources.ko.xlf | 5 ----- .../xlf/CodeFixResources.pt-BR.xlf | 5 ----- .../xlf/CodeFixResources.zh-Hant.xlf | 5 ----- .../MSTest.Analyzers/xlf/Resources.cs.xlf | 15 --------------- .../MSTest.Analyzers/xlf/Resources.de.xlf | 15 --------------- .../MSTest.Analyzers/xlf/Resources.it.xlf | 15 --------------- .../MSTest.Analyzers/xlf/Resources.ja.xlf | 15 --------------- .../MSTest.Analyzers/xlf/Resources.ko.xlf | 15 --------------- .../MSTest.Analyzers/xlf/Resources.pt-BR.xlf | 15 --------------- .../MSTest.Analyzers/xlf/Resources.zh-Hans.xlf | 15 --------------- 12 files changed, 130 deletions(-) diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.de.xlf b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.de.xlf index 791d6919fd..3669509b17 100644 --- a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.de.xlf +++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.de.xlf @@ -87,11 +87,6 @@ Signatur korrigieren - - Make '[OSCondition]' consistent with platform compatibility attributes - '[OSCondition]' mit Plattformkompatibilitätsattributen konsistent machen - {Locked="[OSCondition]"} - Pass 'TestContext.CancellationToken' argument to method call Argument „TestContext.CancellationToken“ an den Methodenaufruf übergeben diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.fr.xlf b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.fr.xlf index 32e0eeca04..b472bf14e3 100644 --- a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.fr.xlf +++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.fr.xlf @@ -87,11 +87,6 @@ Corriger la signature numérique - - Make '[OSCondition]' consistent with platform compatibility attributes - Assurez la cohérence de « '[OSCondition]' » avec les attributs de compatibilité de la plateforme - {Locked="[OSCondition]"} - Pass 'TestContext.CancellationToken' argument to method call Transmettre l'argument « TestContext.CancellationToken » à l'appel de méthode diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.ko.xlf b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.ko.xlf index 20336f4e7c..d2ba8fbbb1 100644 --- a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.ko.xlf +++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.ko.xlf @@ -87,11 +87,6 @@ 서명 수정 - - Make '[OSCondition]' consistent with platform compatibility attributes - '[OSCondition]'을 플랫폼 호환성 특성과 일치하도록 설정 - {Locked="[OSCondition]"} - Pass 'TestContext.CancellationToken' argument to method call 메서드 호출에 'TestContext.CancellationToken' 인수 전달 diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.pt-BR.xlf b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.pt-BR.xlf index 65c4b2ca53..1f271eab29 100644 --- a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.pt-BR.xlf +++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.pt-BR.xlf @@ -87,11 +87,6 @@ Corrigir assinatura - - Make '[OSCondition]' consistent with platform compatibility attributes - Tornar ''[OSCondition]'' consistente com os atributos de compatibilidade da plataforma - {Locked="[OSCondition]"} - Pass 'TestContext.CancellationToken' argument to method call Passar o argumento 'TestContext.CancellationToken' para a chamada de método diff --git a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.zh-Hant.xlf b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.zh-Hant.xlf index 401d6212b4..97b6320b42 100644 --- a/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.zh-Hant.xlf +++ b/src/Analyzers/MSTest.Analyzers.CodeFixes/xlf/CodeFixResources.zh-Hant.xlf @@ -87,11 +87,6 @@ 修正簽章 - - Make '[OSCondition]' consistent with platform compatibility attributes - 讓 '[OSCondition]' 與平台相容性屬性一致 - {Locked="[OSCondition]"} - Pass 'TestContext.CancellationToken' argument to method call 將 'TestContext.CancellationToken' 引數傳遞給方法呼叫 diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf index e8cc2b2e73..1274e14808 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf @@ -760,21 +760,6 @@ Typ deklarující tyto metody by měl také respektovat následující pravidla: Neignorovat návratovou hodnotu řetězcových metod - - 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. - Atributy 'SupportedOSPlatformAttribute' a 'UnsupportedOSPlatformAttribute' poskytují analýze kompatibility platformy informace, ale neřídí spouštění testů MSTest. Testovací metody a testovací třídy, které používají tyto atributy, by měly také deklarovat ekvivalentní atribut '[OSCondition]', aby se nepodporované testy za běhu přeskočily. - {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} - - - Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute - Atributy kompatibility platformy v testu {0} nejsou reprezentovány ekvivalentním atributem '[OSCondition]' - {0} is the test method or test class name. {Locked="[OSCondition]"} - - - Platform compatibility attributes should be consistent with '[OSCondition]' - Atributy kompatibility platformy by měly být konzistentní s atributem '[OSCondition]' - {Locked="[OSCondition]"} - 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail' explicitně vyjadřuje záměrné selhání a umožňuje ve zprávě o selhání zdokumentovat, proč test nemůže pokračovat. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf index 2bfbbdd9c6..da8bcb921c 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf @@ -760,21 +760,6 @@ Der Typ, der diese Methoden deklariert, sollte auch die folgenden Regeln beachte Rückgabewert von Zeichenfolgenmethoden nicht ignorieren - - 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. - 'SupportedOSPlatformAttribute' und 'UnsupportedOSPlatformAttribute' informieren über die Plattformkompatibilitätsanalyse, steuern aber nicht die MSTest-Ausführung. Testmethoden und Testklassen, die diese Attribute verwenden, sollten auch eine entsprechende '[OSCondition]' deklarieren, damit nicht unterstützte Tests zur Laufzeit übersprungen werden. - {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} - - - Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute - Plattformkompatibilitätsattribute im Test „{0}“ werden nicht durch ein entsprechendes '[OSCondition]'-Attribut dargestellt - {0} is the test method or test class name. {Locked="[OSCondition]"} - - - Platform compatibility attributes should be consistent with '[OSCondition]' - Plattformkompatibilitätsattribute sollten mit '[OSCondition]' konsistent sein - {Locked="[OSCondition]"} - 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail' macht einen absichtlichen Fehler explizit und ermöglicht es, anhand der Fehlermeldung zu dokumentieren, warum der Test nicht fortgesetzt werden kann. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf index 17c4395bb3..fe94b5cfe5 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf @@ -760,21 +760,6 @@ Anche il tipo che dichiara questi metodi deve rispettare le regole seguenti: Non ignorare il valore restituito dei metodi stringa - - 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. - 'SupportedOSPlatformAttribute' e 'UnsupportedOSPlatformAttribute' informano l'analisi della compatibilità della piattaforma ma non controllano l'esecuzione di MSTest. I metodi di test e le classi di test che usano questi attributi devono dichiarare anche un '[OSCondition]' equivalente, in modo che i test non supportati vengano ignorati in fase di esecuzione. - {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} - - - Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute - Gli attributi di compatibilità della piattaforma nei test '{0}' non sono rappresentati da un attributo '[OSCondition]' equivalente - {0} is the test method or test class name. {Locked="[OSCondition]"} - - - Platform compatibility attributes should be consistent with '[OSCondition]' - Gli attributi di compatibilità della piattaforma devono essere coerenti con '[OSCondition]' - {Locked="[OSCondition]"} - 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail' rende esplicito un errore intenzionale e consente al messaggio di errore di documentare il motivo per cui il test non può continuare. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf index 27c1417411..8ac1ecd3d5 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf @@ -760,21 +760,6 @@ The type declaring these methods should also respect the following rules: 文字列メソッドの戻り値を無視しない - - 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. - 'SupportedOSPlatformAttribute' と 'UnsupportedOSPlatformAttribute' は、プラットフォーム互換性の分析に使用されますが、MSTest の実行を制御するものではありません。これらの属性を使用するテスト メソッドとテスト クラスでは、サポートされていないテストが実行時にスキップされるように、同等の '[OSCondition]' も宣言する必要があります。 - {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} - - - Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute - テスト '{0}' のプラットフォーム互換性属性が、同等の '[OSCondition]' 属性で表されていません - {0} is the test method or test class name. {Locked="[OSCondition]"} - - - Platform compatibility attributes should be consistent with '[OSCondition]' - プラットフォーム互換性属性は '[OSCondition]' と一致している必要があります - {Locked="[OSCondition]"} - 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail' は意図的な失敗を明示し、エラー メッセージでテストを続行できない理由を文書化できるようにします。 diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf index e9bb228945..823819777b 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf @@ -760,21 +760,6 @@ The type declaring these methods should also respect the following rules: 문자열 메서드의 반환 값을 무시하지 마세요. - - 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. - 'SupportedOSPlatformAttribute' 및 'UnsupportedOSPlatformAttribute' 플랫폼 호환성 분석을 알리지만 MSTest 실행을 제어하지는 않습니다. 이러한 특성을 사용하는 테스트 메서드 및 테스트 클래스는 지원되지 않는 테스트가 런타임에 건너뛰도록 동등 '[OSCondition]' 선언해야 합니다. - {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} - - - Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute - 테스트 '{0}'의 플랫폼 호환성 특성은 동등한 '[OSCondition]' 특성으로 표시되지 않습니다. - {0} is the test method or test class name. {Locked="[OSCondition]"} - - - Platform compatibility attributes should be consistent with '[OSCondition]' - 플랫폼 호환성 특성은 '[OSCondition]'과 일치해야 함 - {Locked="[OSCondition]"} - 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail'은 의도적인 실패를 명시적으로 나타내고 실패 메시지가 테스트를 계속할 수 없는 이유를 문서화할 수 있도록 합니다. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf index c25fe0ab1e..00b74e5715 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf @@ -760,21 +760,6 @@ O tipo que declara esses métodos também deve respeitar as seguintes regras: Não ignore o valor retornado dos métodos de cadeia de caracteres - - 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. - ''SupportedOSPlatformAttribute'' e ''UnsupportedOSPlatformAttribute'' informam a análise de compatibilidade da plataforma, mas não controlam a execução do MSTest. Os métodos de teste e classes de teste que usam esses atributos também devem declarar um ''[OSCondition]'' equivalente para que os testes sem suporte sejam ignorados em tempo de execução. - {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} - - - Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute - Os atributos de compatibilidade de plataforma no teste ''{0}'' não são representados por um atributo ''[OSCondition]'' equivalente - {0} is the test method or test class name. {Locked="[OSCondition]"} - - - Platform compatibility attributes should be consistent with '[OSCondition]' - Os atributos de compatibilidade da plataforma devem ser consistentes com ''[OSCondition]'' - {Locked="[OSCondition]"} - 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail' torna explícita uma falha intencional e permite que a mensagem de falha documente por que o teste não pode continuar. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf index 212f55bb4f..f1ebcebbc2 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf @@ -760,21 +760,6 @@ The type declaring these methods should also respect the following rules: 不要忽略字符串方法的返回值 - - 'SupportedOSPlatformAttribute' and 'UnsupportedOSPlatformAttribute' inform platform compatibility analysis but do not control MSTest execution. Test methods and test classes that use these attributes should also declare an equivalent '[OSCondition]' so unsupported tests are skipped at run time. - 'SupportedOSPlatformAttribute' 和 'UnsupportedOSPlatformAttribute' 告知平台兼容性分析,但不控制 MSTest 执行。使用这些属性的测试方法和测试类还应声明等效的 '[OSCondition]',以便在运行时跳过不受支持的测试。 - {Locked="SupportedOSPlatformAttribute"}{Locked="UnsupportedOSPlatformAttribute"}{Locked="MSTest"}{Locked="[OSCondition]"} - - - Platform compatibility attributes on test '{0}' are not represented by an equivalent '[OSCondition]' attribute - 测试“{0}”上的平台兼容性属性不是由等效的 '[OSCondition]' 属性表示的 - {0} is the test method or test class name. {Locked="[OSCondition]"} - - - Platform compatibility attributes should be consistent with '[OSCondition]' - 平台兼容性属性应与 '[OSCondition]' 一致 - {Locked="[OSCondition]"} - 'Assert.Fail' makes an intentional failure explicit and allows the failure message to document why the test cannot continue. 'Assert.Fail' 可显式化处理有意失败,并允许失败消息记录测试无法继续的原因。 From 1c22f3bfd0cfe21ce07b5440a9179e10b6f0a895 Mon Sep 17 00:00:00 2001 From: Copilot Date: Wed, 9 Sep 2026 20:25:48 +0200 Subject: [PATCH 27/33] Handle test host controller pipe timeouts Related to #4774 Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- ...ostControllersTestHost.ProcessLifecycle.cs | 100 +++++++++++++++++- .../TestApplicationBuilderTests.cs | 49 +++++++++ 2 files changed, 145 insertions(+), 4 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs index 0dff4bca6a..4f4272099a 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs @@ -45,6 +45,7 @@ internal sealed partial class TestHostControllersTestHost using IDisposable forceExitRegistration = applicationCancellationTokenSource.RegisterForceExitAction(testHostProcess.Kill); int? testHostProcessId = null; + bool testHostControllerConnectionTimedOut = false; try { testHostProcessId = testHostProcess.Id; @@ -69,6 +70,18 @@ internal sealed partial class TestHostControllersTestHost if (testHostProcess.HasExited) { await _logger.LogDebugAsync("Test host process exited prematurely").ConfigureAwait(false); + await outputDevice.DisplayAsync( + this, + new ErrorMessageOutputDeviceData(CreateTestHostControllerConnectionFailureMessage( + waitDuration: TimeSpan.Zero, + timeout: null, + testHostProcess)), + CancellationToken.None).ConfigureAwait(false); + int fallbackPid = testHostProcessId ?? 0; + return ( + (int)ExitCode.GenericFailure, + new TestHostProcessInformation(fallbackPid, (int)ExitCode.GenericFailure, testHostCompletedReceived: false), + telemetryInformation.IsEnabled ? "[]" : null); } else { @@ -80,11 +93,25 @@ await RunWithCancellationTeardownAsync( await _logger.LogDebugAsync($"Setting PlatformTestHostControllersManagerSingleConnectionNamedPipeServerWaitConnectionTimeoutSeconds '{timeoutSeconds}'").ConfigureAwait(false); // Wait for the test host controller to connect. - using (CancellationTokenSource timeout = new(TimeSpan.FromSeconds(timeoutSeconds))) - using (var linkedToken = CancellationTokenSource.CreateLinkedTokenSource(timeout.Token, applicationCancellationToken)) + await _logger.LogDebugAsync("Wait connection from the test host process").ConfigureAwait(false); + bool connected = await WaitForTestHostControllerConnectionAsync( + testHostControllerIpc.WaitConnectionAsync, + timeoutSeconds, + applicationCancellationToken, + async () => + { + testHostControllerConnectionTimedOut = true; + await outputDevice.DisplayAsync( + this, + new ErrorMessageOutputDeviceData(CreateTestHostControllerConnectionFailureMessage( + TimeSpan.FromSeconds(timeoutSeconds), + TimeSpan.FromSeconds(timeoutSeconds), + testHostProcess)), + CancellationToken.None).ConfigureAwait(false); + }).ConfigureAwait(false); + if (!connected) { - await _logger.LogDebugAsync("Wait connection from the test host process").ConfigureAwait(false); - await testHostControllerIpc.WaitConnectionAsync(linkedToken.Token).ConfigureAwait(false); + return; } // Wait for the test host controller to send the PID of the test host process. @@ -139,6 +166,16 @@ await RunWithCancellationTeardownAsync( TestHostTerminationTimeout).ConfigureAwait(false); } + if (testHostControllerConnectionTimedOut) + { + await TerminateTestHostAfterConnectionFailureAsync(testHostProcess, _logger).ConfigureAwait(false); + int fallbackPid = testHostProcessId ?? 0; + return ( + (int)ExitCode.GenericFailure, + new TestHostProcessInformation(fallbackPid, (int)ExitCode.GenericFailure, testHostCompletedReceived: false), + telemetryInformation.IsEnabled ? "[]" : null); + } + if (_testHostPID is null && applicationCancellationToken.IsCancellationRequested) { int fallbackPid = testHostProcessId ?? 0; @@ -357,6 +394,61 @@ Test host did not exit gracefully. return (exitCode, testHostProcessInformation, extensionInformation); } + internal static async Task WaitForTestHostControllerConnectionAsync( + Func waitConnectionAsync, + double timeoutSeconds, + CancellationToken applicationCancellationToken, + Func onTimeoutAsync) + { + using var timeout = new CancellationTokenSource(TimeSpan.FromSeconds(timeoutSeconds)); + using var linkedToken = CancellationTokenSource.CreateLinkedTokenSource(timeout.Token, applicationCancellationToken); + try + { + await waitConnectionAsync(linkedToken.Token).ConfigureAwait(false); + return true; + } + catch (OperationCanceledException) when (timeout.IsCancellationRequested && !applicationCancellationToken.IsCancellationRequested) + { + await onTimeoutAsync().ConfigureAwait(false); + return false; + } + } + + internal static string CreateTestHostControllerConnectionFailureMessage( + TimeSpan waitDuration, + TimeSpan? timeout, + IProcess testHostProcess) + { + bool hasExited = testHostProcess.HasExited; + string processState = hasExited + ? $"The test host process exited with code '{testHostProcess.ExitCode}'." + : "The test host process is still running."; + + string timeoutDetails = timeout is null + ? string.Empty + : $" The configured connection timeout was '{timeout.Value.TotalSeconds.ToString(CultureInfo.InvariantCulture)}' seconds."; + return $"The test host controller did not connect to the named pipe after '{waitDuration.TotalSeconds.ToString(CultureInfo.InvariantCulture)}' seconds.{timeoutDetails} {processState}"; + } + + private static async Task TerminateTestHostAfterConnectionFailureAsync(IProcess testHostProcess, ILogger logger) + { + if (testHostProcess.HasExited) + { + return; + } + + try + { + testHostProcess.Kill(); + } + catch (Exception ex) + { + await logger.LogDebugAsync($"Ignoring failure while terminating the test host after a connection failure: {ex}").ConfigureAwait(false); + } + + await WaitForExitAfterTerminationAsync(testHostProcess, TestHostTerminationTimeout, logger).ConfigureAwait(false); + } + private CancellationTokenSource EnsureControllerFinalizationCancellationTokenSource() { var candidate = new CancellationTokenSource(); diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs index 650687087c..ccd9387611 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs @@ -219,6 +219,55 @@ public async Task TestHostControllerProcessTermination_WaitIsBounded() Assert.IsLessThan(5, stopwatch.Elapsed.TotalSeconds); } + [TestMethod] + public async Task TestHostControllerConnectionTimeout_IsHandledWithoutThrowing() + { + bool timeoutHandled = false; + + bool connected = await TestHostControllersTestHost.WaitForTestHostControllerConnectionAsync( + token => Task.Delay(Timeout.InfiniteTimeSpan, token), + timeoutSeconds: 0.01, + CancellationToken.None, + () => + { + timeoutHandled = true; + return Task.CompletedTask; + }); + + Assert.IsFalse(connected); + Assert.IsTrue(timeoutHandled); + } + + [TestMethod] + public async Task TestHostControllerConnectionTimeout_PreservesApplicationCancellation() + { + using CancellationTokenSource cancellationTokenSource = new(); + cancellationTokenSource.Cancel(); + + await Assert.ThrowsAsync( + () => TestHostControllersTestHost.WaitForTestHostControllerConnectionAsync( + token => Task.Delay(Timeout.InfiniteTimeSpan, token), + timeoutSeconds: 1, + cancellationTokenSource.Token, + () => throw new AssertFailedException("The connection timeout handler should not run for application cancellation."))); + } + + [TestMethod] + public void TestHostControllerConnectionFailureMessage_ReportsProcessState() + { + Mock process = new(); + process.SetupGet(x => x.HasExited).Returns(true); + process.SetupGet(x => x.ExitCode).Returns(134); + + string message = TestHostControllersTestHost.CreateTestHostControllerConnectionFailureMessage( + TimeSpan.FromSeconds(5), + TimeSpan.FromSeconds(5), + process.Object); + + Assert.Contains("5", message); + Assert.Contains("exited with code '134'", message); + } + [TestMethod] public async Task TestHostControllerProcessTermination_FaultedWaitAdvancesToTermination() { From 1379df6bd42b301ac28e66540c7a438c0633820c Mon Sep 17 00:00:00 2001 From: Copilot Date: Wed, 9 Sep 2026 20:45:35 +0200 Subject: [PATCH 28/33] Improve MTP test host timeout diagnostics Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- ...ostControllersTestHost.ProcessLifecycle.cs | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs index 4f4272099a..c22f7282e7 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs @@ -61,7 +61,7 @@ internal sealed partial class TestHostControllersTestHost testHostProcess.Exited += (_, _) => _logger.LogDebug($"Test host process exited, PID: '{testHostProcessId}'"); - await _logger.LogDebugAsync($"Started test host process '{testHostProcessId}' HasExited: {testHostProcess.HasExited}").ConfigureAwait(false); + await _logger.LogDebugAsync($"Started test host process. PID: '{testHostProcessId}'. HasExited: '{testHostProcess.HasExited}'.").ConfigureAwait(false); // Note: we intentionally gate on HasExited only and not on 'testHostProcessId is null'. // A custom ITestHostLauncher may legitimately not expose a local PID (e.g. container, // remote, or AUMID-activated apps); the real test host PID still arrives via the IPC @@ -69,7 +69,8 @@ internal sealed partial class TestHostControllersTestHost // coincides with HasExited == true, so behavior is unchanged there. if (testHostProcess.HasExited) { - await _logger.LogDebugAsync("Test host process exited prematurely").ConfigureAwait(false); + await _logger.LogDebugAsync( + $"Test host process exited before connecting to the test host controller. Exit code: '{testHostProcess.ExitCode}'.").ConfigureAwait(false); await outputDevice.DisplayAsync( this, new ErrorMessageOutputDeviceData(CreateTestHostControllerConnectionFailureMessage( @@ -90,10 +91,11 @@ await RunWithCancellationTeardownAsync( { string? seconds = configuration[PlatformConfigurationConstants.PlatformTestHostControllersManagerSingleConnectionNamedPipeServerWaitConnectionTimeoutSeconds]; double timeoutSeconds = seconds is null ? TimeoutHelper.DefaultHangTimeoutSeconds : double.Parse(seconds, CultureInfo.InvariantCulture); - await _logger.LogDebugAsync($"Setting PlatformTestHostControllersManagerSingleConnectionNamedPipeServerWaitConnectionTimeoutSeconds '{timeoutSeconds}'").ConfigureAwait(false); + await _logger.LogDebugAsync( + $"Test host controller named-pipe connection timeout is '{timeoutSeconds}' seconds.").ConfigureAwait(false); // Wait for the test host controller to connect. - await _logger.LogDebugAsync("Wait connection from the test host process").ConfigureAwait(false); + await _logger.LogDebugAsync("Waiting for the test host controller to connect to the named pipe.").ConfigureAwait(false); bool connected = await WaitForTestHostControllerConnectionAsync( testHostControllerIpc.WaitConnectionAsync, timeoutSeconds, @@ -121,7 +123,7 @@ await outputDevice.DisplayAsync( _waitForPid.Wait(timeout.Token); } - await _logger.LogDebugAsync("Fire OnTestHostProcessStartedAsync").ConfigureAwait(false); + await _logger.LogDebugAsync("Invoking test-host-process-started lifecycle handlers.").ConfigureAwait(false); if (_testHostPID is null) { @@ -150,7 +152,7 @@ await outputDevice.DisplayAsync( } } - await _logger.LogDebugAsync("Wait for test host process exit").ConfigureAwait(false); + await _logger.LogDebugAsync("Waiting for the test host process to exit.").ConfigureAwait(false); if (!startHandlersCompleted) { throw new OperationCanceledException(applicationCancellationToken); @@ -446,7 +448,11 @@ private static async Task TerminateTestHostAfterConnectionFailureAsync(IProcess await logger.LogDebugAsync($"Ignoring failure while terminating the test host after a connection failure: {ex}").ConfigureAwait(false); } - await WaitForExitAfterTerminationAsync(testHostProcess, TestHostTerminationTimeout, logger).ConfigureAwait(false); + bool exited = await WaitForExitAfterTerminationAsync(testHostProcess, TestHostTerminationTimeout, logger).ConfigureAwait(false); + if (!exited && testHostProcess is TestHostHandleToProcessAdapter adapter) + { + adapter.DeferDisposalUntilExit(); + } } private CancellationTokenSource EnsureControllerFinalizationCancellationTokenSource() From 63ce9aa7686d3a6ecb6c14f5648634e95fe7bc34 Mon Sep 17 00:00:00 2001 From: Copilot Date: Wed, 9 Sep 2026 20:45:43 +0200 Subject: [PATCH 29/33] Add pipe timeout regression coverage Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../InternalAPI/InternalAPI.Unshipped.txt | 2 ++ .../TestApplicationBuilderTests.cs | 21 +++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt index d7729f4d4b..178a1fff1d 100644 --- a/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt @@ -34,7 +34,9 @@ const Microsoft.Testing.Platform.Helpers.EnvironmentVariableConstants.TESTINGPLA const Microsoft.Testing.Platform.IPC.ServerControlKinds.CloseChannel = 2 -> byte static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.HandleCanceledTestHostAsync(Microsoft.Testing.Platform.Helpers.IProcess! testHostProcess, System.Action! requestCancellation, Microsoft.Testing.Platform.Logging.ILogger! logger, System.TimeSpan cooperativeShutdownTimeout, System.TimeSpan terminationTimeout) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.GetTestHostCooperativeShutdownTimeout(Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables! environmentVariables) -> System.TimeSpan +static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.CreateTestHostControllerConnectionFailureMessage(System.TimeSpan waitDuration, System.TimeSpan? timeout, Microsoft.Testing.Platform.Helpers.IProcess! testHostProcess) -> string! static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.RunWithCancellationTeardownAsync(System.Func! runAsync, System.Threading.CancellationToken applicationCancellationToken, Microsoft.Testing.Platform.Helpers.IProcess! testHostProcess, System.Action! requestCancellation, Microsoft.Testing.Platform.Logging.ILogger! logger, System.TimeSpan cooperativeShutdownTimeout, System.TimeSpan terminationTimeout) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.WaitForTestHostControllerConnectionAsync(System.Func! waitConnectionAsync, double timeoutSeconds, System.Threading.CancellationToken applicationCancellationToken, System.Func! onTimeoutAsync) -> System.Threading.Tasks.Task Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.TestHostCooperativeShutdownTimeout.get -> System.TimeSpan Microsoft.Testing.Platform.IPC.NamedPipeServer.WaitForDisconnectAsync(System.TimeSpan timeout) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Messages.ShutdownTimeouts.GetCanceledConsumerCompletion(string? value) -> System.TimeSpan diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs index ccd9387611..4f6b0b39e3 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs @@ -260,14 +260,31 @@ public void TestHostControllerConnectionFailureMessage_ReportsProcessState() process.SetupGet(x => x.ExitCode).Returns(134); string message = TestHostControllersTestHost.CreateTestHostControllerConnectionFailureMessage( - TimeSpan.FromSeconds(5), + TimeSpan.FromSeconds(3), TimeSpan.FromSeconds(5), process.Object); - Assert.Contains("5", message); + Assert.Contains("after '3' seconds", message); + Assert.Contains("timeout was '5' seconds", message); Assert.Contains("exited with code '134'", message); } + [TestMethod] + public void TestHostControllerConnectionFailureMessage_ReportsRunningProcess() + { + Mock process = new(); + process.SetupGet(x => x.HasExited).Returns(false); + + string message = TestHostControllersTestHost.CreateTestHostControllerConnectionFailureMessage( + TimeSpan.FromSeconds(3), + TimeSpan.FromSeconds(5), + process.Object); + + Assert.Contains("after '3' seconds", message); + Assert.Contains("timeout was '5' seconds", message); + Assert.Contains("still running", message); + } + [TestMethod] public async Task TestHostControllerProcessTermination_FaultedWaitAdvancesToTermination() { From 363457839a426608eb4a5156450fcf7c44889553 Mon Sep 17 00:00:00 2001 From: Copilot Date: Wed, 9 Sep 2026 20:46:51 +0200 Subject: [PATCH 30/33] Polish MTP test host lifecycle logs Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- ...ostControllersTestHost.ProcessLifecycle.cs | 32 +++++++++++-------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs index c22f7282e7..6efe9b7550 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs @@ -33,8 +33,10 @@ internal sealed partial class TestHostControllersTestHost // Launch the test host process string testHostProcessStartupTime = _clock.UtcNow.ToString("HH:mm:ss.fff", CultureInfo.InvariantCulture); processStartInfo.EnvironmentVariables.Add($"{EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_TESTHOSTPROCESSSTARTTIME}_{currentPid}", testHostProcessStartupTime); - await _logger.LogDebugAsync($"{EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_TESTHOSTPROCESSSTARTTIME}_{currentPid} '{testHostProcessStartupTime}'").ConfigureAwait(false); - await _logger.LogDebugAsync($"Starting test host process '{processStartInfo.FileName}' with args '{processStartInfo.Arguments}'").ConfigureAwait(false); + await _logger.LogDebugAsync( + $"Test host process startup timestamp environment variable '{EnvironmentVariableConstants.TESTINGPLATFORM_TESTHOSTCONTROLLER_TESTHOSTPROCESSSTARTTIME}_{currentPid}' is '{testHostProcessStartupTime}'.").ConfigureAwait(false); + await _logger.LogDebugAsync( + $"Starting test host process '{processStartInfo.FileName}' with arguments '{processStartInfo.Arguments}'.").ConfigureAwait(false); ITestHostLauncher? testHostLauncher = _testHostsInformation.TestHostLauncher; using IProcess testHostProcess = testHostLauncher is null @@ -55,11 +57,12 @@ internal sealed partial class TestHostControllersTestHost // Access PID can throw InvalidOperationException if the process has already exited: // System.InvalidOperationException: No process is associated with this object. // A custom launcher may also legitimately not expose a local PID (e.g. container/remote). - await _logger.LogDebugAsync($"Unable to obtain test host PID; process had already exited or does not expose a PID (HasExited: {testHostProcess.HasExited}). {ex.GetType().FullName}: {ex.Message}").ConfigureAwait(false); + await _logger.LogDebugAsync( + $"Unable to obtain the test host PID because the process had already exited or does not expose a PID. HasExited: '{testHostProcess.HasExited}'. {ex.GetType().FullName}: {ex.Message}").ConfigureAwait(false); } testHostProcess.Exited += (_, _) => - _logger.LogDebug($"Test host process exited, PID: '{testHostProcessId}'"); + _logger.LogDebug($"Test host process exited. PID: '{testHostProcessId}'."); await _logger.LogDebugAsync($"Started test host process. PID: '{testHostProcessId}'. HasExited: '{testHostProcess.HasExited}'.").ConfigureAwait(false); // Note: we intentionally gate on HasExited only and not on 'testHostProcessId is null'. @@ -254,7 +257,7 @@ async Task JoinAbortCallbacksIfCanceledAsync() { if (testHostProcessExited && _testHostsInformation.LifetimeHandlers.Length > 0) { - await _logger.LogDebugAsync($"Fire OnTestHostProcessExitedAsync: ExitCode: {testHostProcessExitCode}").ConfigureAwait(false); + await _logger.LogDebugAsync($"Invoking test-host-process-exited lifecycle handlers. Exit code: '{testHostProcessExitCode}'.").ConfigureAwait(false); foreach (ITestHostProcessLifetimeHandler lifetimeHandler in _testHostsInformation.LifetimeHandlers) { if (_servicesStillRunning.Contains(lifetimeHandler)) @@ -391,7 +394,8 @@ Test host did not exit gracefully. exitCode = CoverageThresholdExitCodePolicy.Apply(exitCode, ServiceProvider); exitCode = ExitCodeIgnorePolicy.Apply(exitCode, ServiceProvider.GetCommandLineOptions(), ServiceProvider.GetEnvironment()); - await _logger.LogInformationAsync($"TestHostControllersTestHost ended with exit code '{exitCode}' (real test host exit code '{testHostProcessExitCode}') in '{consoleRunStarted.Elapsed}'").ConfigureAwait(false); + await _logger.LogInformationAsync( + $"TestHostControllersTestHost ended with exit code '{exitCode}' (real test host exit code '{testHostProcessExitCode}') in '{consoleRunStarted.Elapsed}'.").ConfigureAwait(false); return (exitCode, testHostProcessInformation, extensionInformation); } @@ -445,7 +449,7 @@ private static async Task TerminateTestHostAfterConnectionFailureAsync(IProcess } catch (Exception ex) { - await logger.LogDebugAsync($"Ignoring failure while terminating the test host after a connection failure: {ex}").ConfigureAwait(false); + await logger.LogDebugAsync($"Test host termination after a connection failure failed; continuing cleanup. {ex}").ConfigureAwait(false); } bool exited = await WaitForExitAfterTerminationAsync(testHostProcess, TestHostTerminationTimeout, logger).ConfigureAwait(false); @@ -512,7 +516,7 @@ await testHostProcess.WaitForExitAsync(CancellationToken.None) } catch (Exception ex) { - await logger.LogDebugAsync($"Ignoring failure while waiting for the test host to exit during cancellation teardown: {ex}").ConfigureAwait(false); + await logger.LogDebugAsync($"Waiting for the test host to exit during cancellation teardown failed; continuing cleanup. {ex}").ConfigureAwait(false); return false; } } @@ -530,7 +534,7 @@ internal static async Task HandleCanceledTestHostAsync( return; } - await logger.LogDebugAsync($"Test host did not exit within {cooperativeShutdownTimeout} after cooperative cancellation; terminating it").ConfigureAwait(false); + await logger.LogDebugAsync($"Test host did not exit within '{cooperativeShutdownTimeout}' after cooperative cancellation; terminating it.").ConfigureAwait(false); try { testHostProcess.Kill(); @@ -542,7 +546,7 @@ internal static async Task HandleCanceledTestHostAsync( // ITestHostLauncher's Terminate() which can throw anything (e.g. NotSupportedException, // Win32Exception). Either way the host is on its way out, so swallow and log rather // than letting it mask the cancellation teardown flow. - await logger.LogDebugAsync($"Ignoring failure while terminating the test host during cancellation: {ex}").ConfigureAwait(false); + await logger.LogDebugAsync($"Test host termination during cancellation failed; continuing cleanup. {ex}").ConfigureAwait(false); } if (await WaitForExitAfterTerminationAsync(testHostProcess, terminationTimeout, logger).ConfigureAwait(false)) @@ -574,7 +578,7 @@ internal static async Task RunWithCancellationTeardownAsync( } catch (OperationCanceledException) when (applicationCancellationToken.IsCancellationRequested) { - await logger.LogDebugAsync("Test host execution was canceled; requesting cooperative test host cancellation").ConfigureAwait(false); + await logger.LogDebugAsync("Test host execution was canceled; requesting cooperative test host cancellation.").ConfigureAwait(false); await HandleCanceledTestHostAsync( testHostProcess, requestCancellation, @@ -643,9 +647,11 @@ private async Task LaunchUsingCustomLauncherAsync( string? workingDirectory = RoslynString.IsNullOrEmpty(processStartInfo.WorkingDirectory) ? null : processStartInfo.WorkingDirectory; TestHostLaunchContext context = new(processStartInfo.FileName, arguments, environmentVariables, workingDirectory); - await _logger.LogDebugAsync($"Delegating test host launch to '{testHostLauncher.DisplayName}' (UID: {testHostLauncher.Uid})").ConfigureAwait(false); + await _logger.LogDebugAsync( + $"Delegating test host launch to '{testHostLauncher.DisplayName}' (UID: '{testHostLauncher.Uid}').").ConfigureAwait(false); ITestHostHandle handle = await testHostLauncher.LaunchTestHostAsync(context, cancellationToken).ConfigureAwait(false); - await _logger.LogDebugAsync($"Test host launched by '{testHostLauncher.Uid}' (Identifier: '{handle.Identifier ?? ""}')").ConfigureAwait(false); + await _logger.LogDebugAsync( + $"Test host launched by '{testHostLauncher.Uid}'. Identifier: '{handle.Identifier ?? ""}'.").ConfigureAwait(false); return new TestHostHandleToProcessAdapter(handle); } } From 625d7590c06741661e74c35f40393f4d3026fa6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Amaury=20Lev=C3=A9?= Date: Thu, 10 Sep 2026 10:08:23 +0200 Subject: [PATCH 31/33] Address test host timeout review feedback Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- ...ostControllersTestHost.ProcessLifecycle.cs | 4 +- .../TestApplicationBuilderTests.cs | 121 ++++++++++++++++++ 2 files changed, 123 insertions(+), 2 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs index 6efe9b7550..e9ce9e061a 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs @@ -97,8 +97,8 @@ await RunWithCancellationTeardownAsync( await _logger.LogDebugAsync( $"Test host controller named-pipe connection timeout is '{timeoutSeconds}' seconds.").ConfigureAwait(false); - // Wait for the test host controller to connect. - await _logger.LogDebugAsync("Waiting for the test host controller to connect to the named pipe.").ConfigureAwait(false); + // Wait for the test host process to connect. + await _logger.LogDebugAsync("Waiting for the test host process to connect to the named pipe.").ConfigureAwait(false); bool connected = await WaitForTestHostControllerConnectionAsync( testHostControllerIpc.WaitConnectionAsync, timeoutSeconds, diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs index 4f6b0b39e3..e317f5d336 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs @@ -12,6 +12,7 @@ using Microsoft.Testing.Platform.Messages; using Microsoft.Testing.Platform.OutputDevice; using Microsoft.Testing.Platform.Services; +using Microsoft.Testing.Platform.Telemetry; using Microsoft.Testing.Platform.TestHost; using Microsoft.Testing.Platform.TestHostControllers; @@ -252,6 +253,79 @@ await Assert.ThrowsAsync( () => throw new AssertFailedException("The connection timeout handler should not run for application cancellation."))); } + [TestMethod] + public async Task TestHostControllerConnectionTimeout_TerminatesCustomHandleDefersDisposalAndReturnsFailure() + { + TaskCompletionSource exited = new(TaskCreationOptions.RunContinuationsAsynchronously); + TaskCompletionSource disposed = new(TaskCreationOptions.RunContinuationsAsynchronously); + Mock handle = new(); + handle.SetupGet(x => x.Identifier).Returns("custom-host"); + handle.SetupGet(x => x.HasExited).Returns(() => exited.Task.IsCompleted); + handle.SetupSequence(x => x.WaitForExitAsync(It.IsAny())) + .Returns(exited.Task) + .ThrowsAsync(new IOException("remote wait failed")) + .Returns(exited.Task); + handle.Setup(x => x.Dispose()).Callback(() => disposed.TrySetResult(true)); + + Mock launcher = new(); + launcher.SetupGet(x => x.Uid).Returns("custom-launcher"); + launcher.SetupGet(x => x.DisplayName).Returns("Custom launcher"); + launcher.Setup(x => x.LaunchTestHostAsync(It.IsAny(), It.IsAny())) + .ReturnsAsync(handle.Object); + + ServiceProvider serviceProvider = new(); + using var cancellationTokenSource = new CTRLPlusCCancellationTokenSource(); + serviceProvider.AddService(cancellationTokenSource); + var task = new SystemTask(); + serviceProvider.AddService(task); + Mock loggerFactory = new(); + loggerFactory.Setup(x => x.CreateLogger(It.IsAny())).Returns(new NopLogger()); + Mock clock = new(); + clock.SetupGet(x => x.UtcNow).Returns(DateTimeOffset.UtcNow); + using var host = new TestHostControllersTestHost( + new([], [], [], launcher.Object, requireProcessRestart: true), + serviceProvider, + passiveNode: null, + new SystemEnvironment(), + loggerFactory.Object, + clock.Object); + Mock configuration = new(); + configuration + .SetupGet(x => x[PlatformConfigurationConstants.PlatformTestHostControllersManagerSingleConnectionNamedPipeServerWaitConnectionTimeoutSeconds]) + .Returns("0.01"); + var outputDevice = new ProxyOutputDevice(new NopPlatformOutputDevice(), serverModeOutputDevice: null); + var telemetryInformation = new TelemetryInformation(isEnabled: false, version: "test"); + using IDisposable testHostControllerIpc = CreateTestHostControllerIpc(host, CancellationToken.None); + using var cancellationServer = new TestHostControllerCancellationServer( + authorizedSecurityIdentities: null, + new SystemEnvironment(), + loggerFactory.Object, + task); + + (int exitCode, TestHostProcessInformation processInformation, _) = await RunTestHostProcessAsync( + host, + new ProcessStartInfo("custom-test-host"), + [], + currentPid: 42, + Mock.Of(), + configuration.Object, + testHostControllerIpc, + cancellationServer, + outputDevice, + telemetryInformation, + CancellationToken.None); + + Assert.AreEqual((int)ExitCode.GenericFailure, exitCode); + Assert.AreEqual((int)ExitCode.GenericFailure, processInformation.ExitCode); + Assert.IsFalse(processInformation.HasExitedGracefully); + handle.Verify(x => x.Terminate(), Times.Once); + handle.Verify(x => x.Dispose(), Times.Never); + + exited.SetResult(true); + await disposed.Task.TimeoutAfterAsync(TimeoutHelper.DefaultHangTimeSpanTimeout); + handle.Verify(x => x.Dispose(), Times.Once); + } + [TestMethod] public void TestHostControllerConnectionFailureMessage_ReportsProcessState() { @@ -648,6 +722,53 @@ private static Task WaitForExitAfterTerminationAsync(IProcess process, Tim ?? throw new InvalidOperationException("TestHostControllersTestHost.WaitForExitAfterTerminationAsync returned null."); } + private static Task<(int ExitCode, TestHostProcessInformation ProcessInformation, string? ExtensionInformation)> RunTestHostProcessAsync( + TestHostControllersTestHost host, + ProcessStartInfo processStartInfo, + IReadOnlyList partialCommandLine, + int currentPid, + IProcessHandler process, + IConfiguration configuration, + object testHostControllerIpc, + TestHostControllerCancellationServer testHostControllerCancellationServer, + ProxyOutputDevice outputDevice, + ITelemetryInformation telemetryInformation, + CancellationToken applicationCancellationToken) + { + MethodInfo method = typeof(TestHostControllersTestHost).GetMethod( + "RunTestHostProcessAsync", + BindingFlags.NonPublic | BindingFlags.Instance) + ?? throw new InvalidOperationException("Could not find TestHostControllersTestHost.RunTestHostProcessAsync."); + return (Task<(int ExitCode, TestHostProcessInformation ProcessInformation, string? ExtensionInformation)>?)method.Invoke( + host, + [ + processStartInfo, + partialCommandLine, + currentPid, + process, + configuration, + testHostControllerIpc, + testHostControllerCancellationServer, + outputDevice, + telemetryInformation, + Stopwatch.StartNew(), + applicationCancellationToken, + ]) + ?? throw new InvalidOperationException("TestHostControllersTestHost.RunTestHostProcessAsync returned null."); + } + + private static IDisposable CreateTestHostControllerIpc( + TestHostControllersTestHost host, + CancellationToken cancellationToken) + { + MethodInfo method = typeof(TestHostControllersTestHost).GetMethod( + "CreateTestHostControllerIpc", + BindingFlags.NonPublic | BindingFlags.Instance) + ?? throw new InvalidOperationException("Could not find TestHostControllersTestHost.CreateTestHostControllerIpc."); + return (IDisposable?)method.Invoke(host, [null, cancellationToken]) + ?? throw new InvalidOperationException("TestHostControllersTestHost.CreateTestHostControllerIpc returned null."); + } + private static void MarkOutputDeviceStillRunning(List servicesStillRunning, ProxyOutputDevice outputDevice) { MethodInfo method = typeof(TestHostControllersTestHost).GetMethod( From 1e21377cb8587f4530348beff878aca495726e2a Mon Sep 17 00:00:00 2001 From: Copilot Date: Thu, 10 Sep 2026 10:16:16 +0200 Subject: [PATCH 32/33] Polish MTP timeout diagnostics Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- ...ostControllersTestHost.ProcessLifecycle.cs | 15 ++++++----- .../InternalAPI/InternalAPI.Unshipped.txt | 1 + .../TestApplicationBuilderTests.cs | 26 +++++++++++++++++++ 3 files changed, 36 insertions(+), 6 deletions(-) diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs index e9ce9e061a..0b8be1b913 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostControllersTestHost.ProcessLifecycle.cs @@ -97,8 +97,8 @@ await RunWithCancellationTeardownAsync( await _logger.LogDebugAsync( $"Test host controller named-pipe connection timeout is '{timeoutSeconds}' seconds.").ConfigureAwait(false); - // Wait for the test host process to connect. - await _logger.LogDebugAsync("Waiting for the test host process to connect to the named pipe.").ConfigureAwait(false); + // Wait for the test host process to connect to the controller's named pipe. + await _logger.LogDebugAsync("Waiting for the test host process to connect to the controller's named pipe.").ConfigureAwait(false); bool connected = await WaitForTestHostControllerConnectionAsync( testHostControllerIpc.WaitConnectionAsync, timeoutSeconds, @@ -173,7 +173,7 @@ await outputDevice.DisplayAsync( if (testHostControllerConnectionTimedOut) { - await TerminateTestHostAfterConnectionFailureAsync(testHostProcess, _logger).ConfigureAwait(false); + await TerminateTestHostAfterConnectionFailureAsync(testHostProcess, _logger, TestHostTerminationTimeout).ConfigureAwait(false); int fallbackPid = testHostProcessId ?? 0; return ( (int)ExitCode.GenericFailure, @@ -433,10 +433,13 @@ internal static string CreateTestHostControllerConnectionFailureMessage( string timeoutDetails = timeout is null ? string.Empty : $" The configured connection timeout was '{timeout.Value.TotalSeconds.ToString(CultureInfo.InvariantCulture)}' seconds."; - return $"The test host controller did not connect to the named pipe after '{waitDuration.TotalSeconds.ToString(CultureInfo.InvariantCulture)}' seconds.{timeoutDetails} {processState}"; + return $"The test host process did not connect to the controller's named pipe after '{waitDuration.TotalSeconds.ToString(CultureInfo.InvariantCulture)}' seconds.{timeoutDetails} {processState}"; } - private static async Task TerminateTestHostAfterConnectionFailureAsync(IProcess testHostProcess, ILogger logger) + internal static async Task TerminateTestHostAfterConnectionFailureAsync( + IProcess testHostProcess, + ILogger logger, + TimeSpan terminationTimeout) { if (testHostProcess.HasExited) { @@ -452,7 +455,7 @@ private static async Task TerminateTestHostAfterConnectionFailureAsync(IProcess await logger.LogDebugAsync($"Test host termination after a connection failure failed; continuing cleanup. {ex}").ConfigureAwait(false); } - bool exited = await WaitForExitAfterTerminationAsync(testHostProcess, TestHostTerminationTimeout, logger).ConfigureAwait(false); + bool exited = await WaitForExitAfterTerminationAsync(testHostProcess, terminationTimeout, logger).ConfigureAwait(false); if (!exited && testHostProcess is TestHostHandleToProcessAdapter adapter) { adapter.DeferDisposalUntilExit(); diff --git a/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt index 178a1fff1d..fd505eb330 100644 --- a/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/InternalAPI/InternalAPI.Unshipped.txt @@ -35,6 +35,7 @@ const Microsoft.Testing.Platform.IPC.ServerControlKinds.CloseChannel = 2 -> byte static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.HandleCanceledTestHostAsync(Microsoft.Testing.Platform.Helpers.IProcess! testHostProcess, System.Action! requestCancellation, Microsoft.Testing.Platform.Logging.ILogger! logger, System.TimeSpan cooperativeShutdownTimeout, System.TimeSpan terminationTimeout) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.GetTestHostCooperativeShutdownTimeout(Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables! environmentVariables) -> System.TimeSpan static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.CreateTestHostControllerConnectionFailureMessage(System.TimeSpan waitDuration, System.TimeSpan? timeout, Microsoft.Testing.Platform.Helpers.IProcess! testHostProcess) -> string! +static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.TerminateTestHostAfterConnectionFailureAsync(Microsoft.Testing.Platform.Helpers.IProcess! testHostProcess, Microsoft.Testing.Platform.Logging.ILogger! logger, System.TimeSpan terminationTimeout) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.RunWithCancellationTeardownAsync(System.Func! runAsync, System.Threading.CancellationToken applicationCancellationToken, Microsoft.Testing.Platform.Helpers.IProcess! testHostProcess, System.Action! requestCancellation, Microsoft.Testing.Platform.Logging.ILogger! logger, System.TimeSpan cooperativeShutdownTimeout, System.TimeSpan terminationTimeout) -> System.Threading.Tasks.Task! static Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.WaitForTestHostControllerConnectionAsync(System.Func! waitConnectionAsync, double timeoutSeconds, System.Threading.CancellationToken applicationCancellationToken, System.Func! onTimeoutAsync) -> System.Threading.Tasks.Task Microsoft.Testing.Platform.Hosts.TestHostControllersTestHost.TestHostCooperativeShutdownTimeout.get -> System.TimeSpan diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs index e317f5d336..6454cb8792 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/TestApplicationBuilderTests.cs @@ -408,6 +408,32 @@ await TestHostControllersTestHost.HandleCanceledTestHostAsync( handle.Verify(x => x.Dispose(), Times.Once); } + [TestMethod] + public async Task TestHostControllerConnectionFailure_UnresponsiveCustomHandleIsTerminatedAndDeferred() + { + TaskCompletionSource exited = new(TaskCreationOptions.RunContinuationsAsynchronously); + TaskCompletionSource disposed = new(TaskCreationOptions.RunContinuationsAsynchronously); + Mock handle = new(); + handle.SetupGet(x => x.HasExited).Returns(() => exited.Task.IsCompleted); + handle.Setup(x => x.WaitForExitAsync(It.IsAny())).Returns(exited.Task); + handle.Setup(x => x.Dispose()).Callback(() => disposed.TrySetResult(true)); + var adapter = new TestHostHandleToProcessAdapter(handle.Object); + + await TestHostControllersTestHost.TerminateTestHostAfterConnectionFailureAsync( + adapter, + new NopLogger(), + TimeSpan.FromMilliseconds(50)); + + handle.Verify(x => x.Terminate(), Times.Once); + + adapter.Dispose(); + handle.Verify(x => x.Dispose(), Times.Never); + + exited.SetResult(true); + await disposed.Task.TimeoutAfterAsync(TimeoutHelper.DefaultHangTimeSpanTimeout); + handle.Verify(x => x.Dispose(), Times.Once); + } + [TestMethod] public async Task TestHostControllerProcessTermination_CancellationDuringStartupUsesTeardownPath() { From ead0eba4e04744f8f2fb76fef595f5b9222d4939 Mon Sep 17 00:00:00 2001 From: Copilot Date: Thu, 10 Sep 2026 17:14:40 +0200 Subject: [PATCH 33/33] Handle ConnectionReset exception in pipe timeout test on Unix platforms Unix systems can report a forced close of an idle pipe as a connection reset instead of EOF. The test was failing on Linux with .NET 9.0 because it didn't handle this exception. This change adds a try-catch block to handle the IOException with ConnectionReset SocketError, which is the expected behavior on Unix when a pipe is closed abruptly. This fixes the failing test ServerDisposal_WhenClientConnectsWithoutSendingRequest_DoesNotHang in the Linux Release build. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> --- .../TestHostControllerCancellationTests.cs | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Hosts/TestHostControllerCancellationTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Hosts/TestHostControllerCancellationTests.cs index 88812ba0dd..75b2b3726a 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Hosts/TestHostControllerCancellationTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Hosts/TestHostControllerCancellationTests.cs @@ -94,8 +94,21 @@ public async Task ServerDisposal_WhenClientConnectsWithoutSendingRequest_DoesNot await Task.Run(server.Dispose, TestContext.CancellationToken).TimeoutAfterAsync(DisposalTestTimeout); byte[] responseBuffer = new byte[1]; - int bytesRead = await client.ReadAsync(responseBuffer, 0, responseBuffer.Length, TestContext.CancellationToken); - Assert.AreEqual(0, bytesRead); + try + { + Task readTask = client.ReadAsync(responseBuffer, 0, responseBuffer.Length, TestContext.CancellationToken); + Task completedTask = await Task.WhenAny(readTask, Task.Delay(DisposalTestTimeout, TestContext.CancellationToken)); + Assert.AreSame(readTask, completedTask, "The client remained connected after server disposal."); + int bytesRead = await readTask; + Assert.AreEqual(0, bytesRead); + } + catch (IOException ex) when (ex.InnerException is System.Net.Sockets.SocketException + { + SocketErrorCode: System.Net.Sockets.SocketError.ConnectionReset, + }) + { + // Unix can report a forced close of an idle pipe as a connection reset instead of EOF. + } } [TestMethod]