diff --git a/Directory.Build.Local.props b/Directory.Build.Local.props index b19d88c6ff..2dd8fd1094 100644 --- a/Directory.Build.Local.props +++ b/Directory.Build.Local.props @@ -41,7 +41,6 @@ - true false diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 2df3e12bea..bfcc3b6597 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -9,13 +9,13 @@ https://github.com/dotnet/arcade ac3bef13c5ab17858f69c12d015057a992f8da8a - + https://dev.azure.com/devdiv/DevDiv/_git/vs-code-coverage - d5f3c5fbf1496266db8cf39d0c2712a480a610d3 + 5751e74124e674ed3effb34db065b7a3e0f0540d - + https://github.com/microsoft/testanywhere - 0c57bfaed0eceb88df5067f45c454685b077e3eb + f2ff81fd8aeda73a979cd938416730d44d39e527 https://github.com/dotnet/arcade diff --git a/eng/Versions.props b/eng/Versions.props index 551eb7316f..b11e622b8e 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -1,7 +1,7 @@ - 3.2.0 + 3.2.2 preview @@ -26,17 +26,17 @@ 9.0.0-beta.24074.1 - 1.0.0 + 1.0.2 17.7.30 1.2.0-beta.507 6.12.0 1.1.2-beta1.23431.1 - 17.10.1-preview.24073.3 + 17.10.4-preview.24120.6 4.18.4 - 2.1.858 + 2.2.169 8.2.0 1.1.1 0.2.5 diff --git a/src/Adapter/Build/Common/MSTest.TestAdapter.targets b/src/Adapter/Build/Common/MSTest.TestAdapter.targets index 0de4a5a827..1bd172a93d 100644 --- a/src/Adapter/Build/Common/MSTest.TestAdapter.targets +++ b/src/Adapter/Build/Common/MSTest.TestAdapter.targets @@ -4,6 +4,7 @@ $(EnableMSTestRunner) false + true @@ -31,9 +32,20 @@ (i.e. ``) --> - + + + + + + + $(MSBuildThisFileDirectory)Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.dll + + + + + - + diff --git a/src/Adapter/Build/NetWithWinUI/MSTest.TestFramework.targets b/src/Adapter/Build/NetWithWinUI/MSTest.TestFramework.targets index f81a31f2d1..2cf38289d2 100644 --- a/src/Adapter/Build/NetWithWinUI/MSTest.TestFramework.targets +++ b/src/Adapter/Build/NetWithWinUI/MSTest.TestFramework.targets @@ -1,6 +1,6 @@ - <_TestFrameworkExtensionsRoot>$(MSBuildThisFileDirectory)winui/ + <_TestFrameworkExtensionsRoot>$(MSBuildThisFileDirectory)../net6.0/winui/ <_TestFrameworkExtensionsRoot>$(MSBuildThisFileDirectory) diff --git a/src/Adapter/Build/Universal/MSTest.TestAdapter.targets b/src/Adapter/Build/Universal/MSTest.TestAdapter.targets index 5ec5705feb..0c208a23f9 100644 --- a/src/Adapter/Build/Universal/MSTest.TestAdapter.targets +++ b/src/Adapter/Build/Universal/MSTest.TestAdapter.targets @@ -5,6 +5,7 @@ $(EnableMSTestRunner) false + true diff --git a/src/Adapter/MSTest.TestAdapter/PublicAPI/PublicAPI.Shipped.txt b/src/Adapter/MSTest.TestAdapter/PublicAPI/PublicAPI.Shipped.txt index 5e6042d103..0d05196024 100644 --- a/src/Adapter/MSTest.TestAdapter/PublicAPI/PublicAPI.Shipped.txt +++ b/src/Adapter/MSTest.TestAdapter/PublicAPI/PublicAPI.Shipped.txt @@ -138,6 +138,8 @@ Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken. Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken.Register(System.Action! callback) -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken.TestRunCancellationToken() -> void Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.TestRunCancellationToken.Unregister() -> void +Microsoft.VisualStudio.TestTools.UnitTesting.TestApplicationBuilderExtensions +Microsoft.VisualStudio.TestTools.UnitTesting.TestingPlatformBuilderHook static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Extensions.TestResultExtensions.ToUnitTestResults(this Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! testResults) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestResult![]! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Extensions.UnitTestOutcomeExtensions.ToUnitTestOutcome(this Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome frameworkTestOutcome) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.ObjectModel.UnitTestOutcome static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.CurrentSettings.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings! @@ -146,4 +148,6 @@ static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.Pop static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.PopulateSettings(Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IDiscoveryContext? context) -> void static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.MSTestSettings.RunConfigurationSettings.get -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.RunConfigurationSettings! static Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.RunConfigurationSettings.PopulateSettings(Microsoft.VisualStudio.TestPlatform.ObjectModel.Adapter.IDiscoveryContext? context) -> Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.RunConfigurationSettings! +static Microsoft.VisualStudio.TestTools.UnitTesting.TestApplicationBuilderExtensions.AddMSTest(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! testApplicationBuilder, System.Func!>! getTestAssemblies) -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.TestingPlatformBuilderHook.AddExtensions(Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! testApplicationBuilder, string![]! arguments) -> void virtual Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Execution.TestMethodInfo.Invoke(object?[]? arguments) -> Microsoft.VisualStudio.TestTools.UnitTesting.TestResult! diff --git a/src/Adapter/MSTest.TestAdapter/PublicAPI/PublicAPI.Unshipped.txt b/src/Adapter/MSTest.TestAdapter/PublicAPI/PublicAPI.Unshipped.txt index 4f0b5ee618..ab058de62d 100644 --- a/src/Adapter/MSTest.TestAdapter/PublicAPI/PublicAPI.Unshipped.txt +++ b/src/Adapter/MSTest.TestAdapter/PublicAPI/PublicAPI.Unshipped.txt @@ -1,5 +1 @@ #nullable enable -Microsoft.VisualStudio.TestTools.UnitTesting.TestApplicationBuilderExtensions -Microsoft.VisualStudio.TestTools.UnitTesting.TestingPlatformBuilderHook -static Microsoft.VisualStudio.TestTools.UnitTesting.TestApplicationBuilderExtensions.AddMSTest(this Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! testApplicationBuilder, System.Func!>! getTestAssemblies) -> void -static Microsoft.VisualStudio.TestTools.UnitTesting.TestingPlatformBuilderHook.AddExtensions(Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! testApplicationBuilder, string![]! arguments) -> void diff --git a/src/Adapter/MSTest.TestAdapter/Resources/Resource.Designer.cs b/src/Adapter/MSTest.TestAdapter/Resources/Resource.Designer.cs index 5f9d6eca68..095301e608 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/Resource.Designer.cs +++ b/src/Adapter/MSTest.TestAdapter/Resources/Resource.Designer.cs @@ -10,6 +10,7 @@ namespace Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter { using System; + using System.Reflection; /// @@ -39,7 +40,7 @@ internal Resource() { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Resources.Resource", typeof(Resource).Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.VisualStudio.TestPlatform.MSTest.TestAdapter.Resources.Resource", typeof(Resource).GetTypeInfo().Assembly); resourceMan = temp; } return resourceMan; @@ -69,24 +70,6 @@ internal static string AttachmentSetDisplayName { } } - /// - /// Looks up a localized string similar to Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2}. - /// - internal static string CannotEnumerateDataSourceAttribute { - get { - return ResourceManager.GetString("CannotEnumerateDataSourceAttribute", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}".. - /// - internal static string CannotEnumerateDataSourceAttribute_MoreThenOneDefined { - get { - return ResourceManager.GetString("CannotEnumerateDataSourceAttribute_MoreThenOneDefined", resourceCulture); - } - } - /// /// Looks up a localized string similar to Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2}. /// @@ -123,24 +106,6 @@ internal static string CannotExpandIDataSourceAttribute_DuplicateDisplayName { } } - /// - /// Looks up a localized string similar to The parameter should not be null or empty.. - /// - internal static string Common_CannotBeNullOrEmpty { - get { - return ResourceManager.GetString("Common_CannotBeNullOrEmpty", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The parameter must be greater than zero.. - /// - internal static string Common_MustBeGreaterThanZero { - get { - return ResourceManager.GetString("Common_MustBeGreaterThanZero", resourceCulture); - } - } - /// /// Looks up a localized string similar to MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}' because {2}.. /// @@ -150,15 +115,6 @@ internal static string CouldNotInspectTypeDuringDiscovery { } } - /// - /// Looks up a localized string similar to MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}.. - /// - internal static string CouldNotInspectTypeDuringDiscovery1 { - get { - return ResourceManager.GetString("CouldNotInspectTypeDuringDiscovery1", resourceCulture); - } - } - /// /// Looks up a localized string similar to {0} (Data Row {1}). /// @@ -592,15 +548,6 @@ internal static string UTA_ErrorPredefinedTestProperty { } } - /// - /// Looks up a localized string similar to UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value.. - /// - internal static string UTA_ErrorTestPropertyAlreadyDefined { - get { - return ResourceManager.GetString("UTA_ErrorTestPropertyAlreadyDefined", resourceCulture); - } - } - /// /// Looks up a localized string similar to UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name.. /// diff --git a/src/Adapter/MSTest.TestAdapter/Resources/Resource.resx b/src/Adapter/MSTest.TestAdapter/Resources/Resource.resx index 2775509fd1..266d3f738c 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/Resource.resx +++ b/src/Adapter/MSTest.TestAdapter/Resources/Resource.resx @@ -178,15 +178,6 @@ Error: {1} UTA015: A generic method cannot be a test method. {0}.{1} has invalid signature - - The parameter should not be null or empty. - - - The parameter must be greater than zero. - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - File does not exist: {0} @@ -226,9 +217,6 @@ Error: {1} UTA023: {0}: Cannot define predefined property {2} on method {1}. - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. @@ -324,18 +312,6 @@ Error: {1} Test '{0}' execution has been aborted. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} {0}: TypeName with namespace, diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.cs.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.cs.xlf index 8ba433a0e1..d077183ebd 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.cs.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.cs.xlf @@ -104,21 +104,6 @@ Chyba: {1} UTA015: Obecná metoda nemůže být testovací metodou. {0}.{1} má neplatný podpis. - - The parameter should not be null or empty. - Parametr nemůže být null nebo prázdný. - - - - The parameter must be greater than zero. - Parametr musí být vetší než nula. - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - MSTestAdapter nezjistil v třídě {0} sestavení {1} žádný test. Důvod {2}. - - File does not exist: {0} Neexistující soubor: {0} @@ -184,11 +169,6 @@ Chyba: {1} UTA023: {0}: V metodě {1} nejde definovat předdefinovanou vlastnost {2}. - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022: {0}.{1}: Vlastní vlastnost {2} je už definovaná. Použije se hodnota {3}. - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021: {0}: V metodě {1} je definovaná vlastní vlastnost, která je null nebo je prázdná. Vlastní vlastnost musí mít platný název. @@ -343,20 +323,6 @@ Chyba: {1} Pro classCleanupLifecycle byla zadána neplatná hodnota {0}. Podporované obory jsou {1}. 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - Došlo k výjimce při vytváření výčtu atributu DataSourceAttribute na „{0}.{1}“: {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - Testovací metoda může obsahovat pouze jeden atribut DataSourceAttribute, ale {2} nalezen na „{0}.{1}". - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} Při vytváření výčtu atributu IDataSource došlo k výjimce. „{0}.{1}“: {2} diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.de.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.de.xlf index 41dc5da01a..46fa6d116f 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.de.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.de.xlf @@ -104,21 +104,6 @@ Fehler: {1} UTA015: Eine generische Methode kann keine Testmethode sein. '{0}.{1}' weist eine ungültige Signatur auf. - - The parameter should not be null or empty. - Der Parameter darf nicht NULL oder leer sein. - - - - The parameter must be greater than zero. - Der Parameter muss größer als Null sein. - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - Fehler von 'MSTestAdapter' beim Ermitteln von Tests in der Klasse "{0}" der Assembly "{1}". Ursache {2}. - - File does not exist: {0} Die Datei ist nicht vorhanden: {0} @@ -184,11 +169,6 @@ Fehler: {1} UTA023: {0}: Die vordefinierte Eigenschaft "{2}" kann nicht für die Methode "{1}" definiert werden. - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022: {0}.{1}: Die benutzerdefinierte Eigenschaft "{2}" ist bereits definiert. "{3}" wird als Wert verwendet. - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021: {0}: Für die Methode "{1}" wurde eine benutzerdefinierte Eigenschaft mit dem Wert NULL oder eine benutzerdefinierte leere Eigenschaft definiert. Die benutzerdefinierte Eigenschaft muss einen gültigen Namen aufweisen. @@ -343,20 +323,6 @@ Fehler: {1} Für "ClassCleanupLifecycle" wurde ein ungültiger Wert "{0}" angegeben. Unterstützte Bereiche sind {1}. 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - Ausnahme beim Auflisten von DataSourceAttribute auf "{0}.{1}": {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - Eine Testmethode kann nur ein DataSourceAttribute enthalten, {2} wurde jedoch auf "{0}.{1}" gefunden. - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} Ausnahme beim Auflisten des IDataSource-Attributs für "{0}.{1}": {2} diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.es.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.es.xlf index f38a7130ef..2619189c00 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.es.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.es.xlf @@ -104,21 +104,6 @@ Error: {1} UTA015: Un método genérico no puede ser un método de prueba. {0}.{1} tiene una firma no válida - - The parameter should not be null or empty. - El parámetro no debe ser NULL ni estar vacío. - - - - The parameter must be greater than zero. - El parámetro debe ser mayor que cero. - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - MSTestAdapter no detectó pruebas en la clase '{0}' del ensamblado '{1}'. Motivo: {2}. - - File does not exist: {0} El archivo no existe: {0} @@ -184,11 +169,6 @@ Error: {1} UTA023: {0}: no se puede definir la propiedad predefinida {2} en el método {1}. - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022: {0}.{1}: ya definida propiedad personalizada "{2}". Usando "{3}" como valor. - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021: {0}: se ha definido una propiedad personalizada nula o vacía en el método {1}. La propiedad personalizada debe tener un nombre válido. @@ -343,20 +323,6 @@ Error: {1} Valor no válido "{0}" especificado para "ClassCleanupLifecycle". Los ámbitos admitidos son {1}. 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - Excepción al enumerar el atributo DataSourceAttribute en "{0}.{1}": {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - Un método de prueba solo puede contener un DataSourceAttribute, pero se encontró {2} en "{0}.{1}". - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} Excepción al enumerar el atributo IDataSource en "{0}.{1}": {2} diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.fr.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.fr.xlf index a57587f349..fcf5118378 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.fr.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.fr.xlf @@ -104,21 +104,6 @@ Erreur : {1} UTA015 : une méthode générique ne peut pas être une méthode de test. {0}.{1} a une signature non valide - - The parameter should not be null or empty. - Le paramètre ne doit pas être une valeur Null ou être vide. - - - - The parameter must be greater than zero. - Le paramètre doit être supérieur à zéro. - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - MSTestAdapter n'a pas découvert de tests dans la classe '{0}' de l'assembly '{1}'. Raison {2}. - - File does not exist: {0} Fichier inexistant : {0} @@ -184,11 +169,6 @@ Erreur : {1} UTA023 : {0} : Impossible de définir la propriété prédéfinie {2} sur la méthode {1}. - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022 : {0}.{1} : La propriété personnalisée "{2}" est déjà définie. Utilisation de "{3}" comme valeur. - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021 : {0} : Une propriété null ou vide personnalisée est définie sur la méthode {1}. La propriété personnalisée doit posséder un nom valide. @@ -343,20 +323,6 @@ Erreur : {1} Valeur non valide '{0}' spécifiée pour la 'ClassCleanupLifecycle'. Les portées prises en charge sont {1}. 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - Une exception s’est produite lors de l’énumération de DataSourceAttribute sur « {0}.{1} » : {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - Une méthode de test ne peut contenir qu’un seul DataSourceAttribute, mais a trouvé {2} sur « {0}.{1} ». - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} Une exception s’est produite lors de l’énumération de l’attribut IDataSource sur « {0}.{1} » : {2} diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.it.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.it.xlf index 15195d0b0b..c9f05d57ab 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.it.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.it.xlf @@ -104,21 +104,6 @@ Errore: {1} UTA015: un metodo generico non può essere un metodo di test. La firma di {0}.{1} non è valida - - The parameter should not be null or empty. - Il parametro non deve essere vuoto o Null. - - - - The parameter must be greater than zero. - Il parametro deve essere maggiore di zero. - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - MSTestAdapter non è riuscito a individuare test nella classe '{0}' dell'assembly '{1}'. Motivo: {2}. - - File does not exist: {0} Il file {0} non esiste @@ -184,11 +169,6 @@ Errore: {1} UTA023: {0}: non è possibile definire la proprietà predefinita {2} per il metodo {1}. - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022: {0}.{1}: la proprietà personalizzata "{2}" dell'agente è già definita. Verrà usato il valore "{3}". - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021: {0}: per il metodo {1} è stata definita una proprietà personalizzata Null o vuota. Specificare un nome valido per la proprietà personalizzata. @@ -343,20 +323,6 @@ Errore: {1} Il valore '{0}', specificato per 'ClassCleanupLifecycle', non è valido. I valori supportati per Scope sono {1}. 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - Si è verificata un'eccezione durante l'enumerazione di DataSourceAttribute in "{0}.{1}": {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - Un metodo di test può contenere solo un oggetto DataSourceAttribute, ma è stato trovato {2} in "{0}.{1}". - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} Si è verificata un'eccezione durante l'enumerazione dell'attributo IDataSource in "{0}.{1}": {2} diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.ja.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.ja.xlf index e3612f6cd3..de8530a860 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.ja.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.ja.xlf @@ -104,21 +104,6 @@ Error: {1} UTA015: ジェネリック メソッドがテスト メソッドになることはできません。{0}.{1} のシグネチャは無効です - - The parameter should not be null or empty. - パラメーターを null または空にすることはできません。 - - - - The parameter must be greater than zero. - パラメーターはゼロよりも大きい必要があります。 - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - MSTestAdapter でアセンブリ '{1}' のクラス '{0}' にテストが見つかりませんでした。理由 {2}。 - - File does not exist: {0} ファイルが存在しません: {0} @@ -184,11 +169,6 @@ Error: {1} UTA023: {0}: メソッド {1} 上の以前に定義されたプロパティ {2} を定義することはできません。 - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022: {0}.{1}: カスタム プロパティ "{2}" は既に定義されています。"{3}" を値として使用しています。 - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021: {0}: Null または空のカスタム プロパティが、メソッド {1} で定義されています。カスタム プロパティには有効な名前を指定しなければなりません。 @@ -343,20 +323,6 @@ Error: {1} 'ClassCleanupLifecycle' に無効な値 '{0}' が指定されました。サポートされているスコープは {1} です。 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - "{0}.{1}" で DataSourceAttribute を列挙中に例外が発生しました: {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - テスト メソッドに含めることができる DataSourceAttribute は 1 つだけですが、"{0}.{1}" に{2} つが見つかりました。 - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} "{0}.{1}" で IDataSource 属性を列挙中に例外が発生しました: {2} diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.ko.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.ko.xlf index 248ec48108..11fece4e4d 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.ko.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.ko.xlf @@ -104,21 +104,6 @@ Error: {1} UTA015: 제네릭 메서드는 테스트 메서드일 수 없습니다. {0}.{1}에 잘못된 서명이 있습니다. - - The parameter should not be null or empty. - 매개 변수는 null이거나 비워 둘 수 없습니다. - - - - The parameter must be greater than zero. - 매개 변수는 0보다 커야 합니다. - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - MSTestAdapter가 어셈블리 '{1}'의 클래스 '{0}'에서 테스트를 검색하지 못했습니다. 이유는 {2}입니다. - - File does not exist: {0} 파일이 없습니다. {0} @@ -184,11 +169,6 @@ Error: {1} UTA023: {0}: {1} 메서드에서 미리 정의된 속성 {2}을(를) 정의할 수 없습니다. - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022: {0}.{1}: 사용자 지정 속성 "{2}"은(는) 이미 정의되어 있습니다. 값으로 "{3}"을(를) 사용합니다. - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021: {0}: {1} 메서드에서 Null 또는 빈 사용자 지정 속성을 정의했습니다. 사용자 지정 속성에는 올바른 이름이 지정되어 있어야 합니다. @@ -343,20 +323,6 @@ Error: {1} 'ClassCleanupLifecycle'에 대해 '{0}' 잘못된 값이 지정되었습니다. 지원되는 범위는 {1}입니다. 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - "{0}.{1}"에서 DataSourceAttribute 특성을 열거하는 동안 예외가 발생했습니다. {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - 테스트 메서드는 DataSourceAttribute를 하나만 포함할 수 있지만 "{0}.{1}"에서 {2}을(를) 찾았습니다. - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} "{0}.{1}"에서 IDataSource 특성을 열거하는 동안 예외가 발생했습니다. {2} diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.pl.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.pl.xlf index 456dfa6af2..d03f3e1821 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.pl.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.pl.xlf @@ -104,21 +104,6 @@ Błąd: {1} UTA015: Metoda ogólna nie może być metodą testową. {0}{1} ma nieprawidłową sygnaturę - - The parameter should not be null or empty. - Parametr nie może mieć wartości null ani być pusty. - - - - The parameter must be greater than zero. - Parametr musi być większy od zera. - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - Adapter MSTestAdapter nie mógł odnaleźć testów w klasie „{0}” zestawu „{1}”. Przyczyna: {2}. - - File does not exist: {0} Plik nie istnieje: {0} @@ -184,11 +169,6 @@ Błąd: {1} UTA023: {0}: Nie można zdefiniować wstępnie zdefiniowanej właściwości {2} dla metody {1}. - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022: {0}.{1}: Właściwość niestandardowa „{2}” jest już zdefiniowana. Jako wartość jest używane „{3}”. - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021: {0}: Zerowa lub pusta niestandardowa właściwość została zdefiniowana dla metody {1}. Niestandardowa właściwość musi mieć prawidłową nazwę. @@ -343,20 +323,6 @@ Błąd: {1} Dla ustawienia „ClassCleanupLifecycle” określono nieprawidłową wartość „{0}”. Obsługiwane zakresy to {1}. 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - Wystąpił wyjątek podczas wyliczania atrybutu DataSourceAttribute w przestrzeni nazw „{0}.{1}”: {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - Metoda testowa może zawierać tylko jeden atrybut DataSourceAttribute, ale znaleziono {2} w przestrzeni nazwy „{0}.{1}”. - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} Wystąpił wyjątek podczas wyliczania atrybutu IDataSource w przestrzeni nazwy „{0}.{1}”: {2} diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.pt-BR.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.pt-BR.xlf index fdb5f5dbc6..a07bea4cd0 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.pt-BR.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.pt-BR.xlf @@ -104,21 +104,6 @@ Erro: {1} UTA015: um método genérico não pode ser um método de teste. {0}.{1} tem assinatura inválida - - The parameter should not be null or empty. - O parâmetro não deve ser nulo ou vazio. - - - - The parameter must be greater than zero. - O parâmetro deve ser maior que zero. - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - MSTestAdapter não conseguiu descobrir testes na classe '{0}' do assembly '{1}'. Motivo {2}. - - File does not exist: {0} O arquivo não existe: {0} @@ -184,11 +169,6 @@ Erro: {1} UTA023: {0}: não é possível definir a propriedade predefinida {2} no método {1}. - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022: {0}.{1}: A propriedade personalizada "{2}" já está definida. Usando "{3}" como valor. - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021: {0}: Propriedade personalizada nula ou vazia definida no método {1}. A propriedade personalizada deve ter um nome válido. @@ -343,20 +323,6 @@ Erro: {1} Valor inválido '{0}' especificado para 'ClassCleanupLifecycle'. Os escopos suportados são {1}. 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - Ocorreu uma exceção ao enumerar DataSourceAttribute em "{0}.{1}": {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - Um método de teste pode conter apenas um DataSourceAttribute, mas encontrado {2} no "{0}.{1}". - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} Ocorreu uma exceção ao enumerar o atributo IDataSource em "{0}.{1}": {2} diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.ru.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.ru.xlf index c2891bea7b..1eff800844 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.ru.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.ru.xlf @@ -104,21 +104,6 @@ Error: {1} UTA015: универсальный метод не может быть методом теста. {0}.{1} имеет недопустимую сигнатуру - - The parameter should not be null or empty. - Этот параметр не должен быть пустым или иметь значение NULL. - - - - The parameter must be greater than zero. - Этот параметр должен быть больше нуля. - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - Средству MSTestAdapter не удалось обнаружить тесты в классе "{0}" сборки "{1}". Причина: {2}. - - File does not exist: {0} Файл не существует: {0} @@ -184,11 +169,6 @@ Error: {1} UTA023: {0}: не удается определить предопределенное свойство {2} в методе {1}. - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022: {0}.{1}: пользовательское свойство "{2}" уже определено. В качестве значения используется "{3}". - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021: {0}: в методе {1} определено пользовательское свойство, имя которого имеет значение NULL или пусто. Пользовательское свойство должно иметь допустимое имя. @@ -343,20 +323,6 @@ Error: {1} Для параметра "ClassCleanupLifecycle" указано недопустимое значение "{0}". Поддерживаемые области: {1}. 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - Возникло исключение при перечислении атрибута DataSourceAttribute в "{0}.{1}": {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - Метод теста может содержать только один атрибут DataSourceAttribute, но в "{0}.{1}" обнаружено {2}. - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} Возникло исключение при перечислении атрибута IDataSource в "{0}.{1}": {2} diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.tr.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.tr.xlf index abe3070f4c..1f07ed1cee 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.tr.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.tr.xlf @@ -104,21 +104,6 @@ Hata: {1} UTA015: Genel metot bir test metodu olamaz. {0}.{1} geçersiz imzaya sahip - - The parameter should not be null or empty. - Parametre null veya boş olmamalıdır. - - - - The parameter must be greater than zero. - Parametre sıfırdan büyük olmalıdır. - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - MSTestAdapter, '{1}' bütünleştirilmiş kodunun '{0}' sınıfında testleri bulamadı. Nedeni: {2}. - - File does not exist: {0} Dosya yok: {0} @@ -184,11 +169,6 @@ Hata: {1} UTA023: {0}: Önceden tanımlanmış {2} özelliği {1} metodunda tanımlanamaz. - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022: {0}.{1}: "{2}" özel özelliği zaten tanımlanmış. Değer olarak "{3}" kullanılıyor. - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021: {0}: {1} metodunda null veya boş özel özellik tanımlanmış. Özel özellik geçerli bir ada sahip olmalıdır. @@ -343,20 +323,6 @@ Hata: {1} 'ClassCleanupLifecycle' için geçersiz '{0}' değeri belirtildi. Desteklenen kapsamlar {1}'dir. 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - "{0}.{1}" üzerinde DataSourceAttribute numaralandırılırken özel durum oluştu: {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - Bir test yöntemi yalnızca bir DataSourceAttribute içerebilir, ancak " {0}. {1}" üzerinde {2}bulundu. - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} "{0}.{1} " üzerinde IDataSource özniteliği numaralandırılırken özel durum oluştu: {2} diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.zh-Hans.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.zh-Hans.xlf index 895f8c86f9..643c94846c 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.zh-Hans.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.zh-Hans.xlf @@ -104,21 +104,6 @@ Error: {1} UTA015: 泛型方法不可为测试方法。{0}.{1} 具有无效签名 - - The parameter should not be null or empty. - 参数不应为 NULL 或为空。 - - - - The parameter must be greater than zero. - 参数必须大于零。 - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - MSTestAdapter 未能在程序集“{1}”的类“{0}”中发现测试。原因是 {2}。 - - File does not exist: {0} 文件不存在: {0} @@ -184,11 +169,6 @@ Error: {1} UTA023: {0}: 不能在方法 {1} 上定义预定义属性 {2}。 - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022: {0}.{1}: 已经定义了自定义属性“{2}”。其值为“{3}”。 - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021: {0}: 对方法 {1} 定义了为 NULL 或为空的自定义属性。自定义属性必须具有有效名称。 @@ -343,20 +323,6 @@ Error: {1} 为“ClassCleanupLifecycle”指定的值“{0}”无效。支持的作用域为 {1}。 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - 枚举“{0}.{1}”上的 DataSourceAttribute 时出现异常: {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - 测试方法只能包含一个 DataSourceAttribute,但在“{0}.{1}”上找到 {2}。 - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} 枚举 {0} 上的 IDataSource 属性时发生异常。{1}": {2} diff --git a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.zh-Hant.xlf b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.zh-Hant.xlf index 8d96086086..d67072bdca 100644 --- a/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.zh-Hant.xlf +++ b/src/Adapter/MSTest.TestAdapter/Resources/xlf/Resource.zh-Hant.xlf @@ -104,21 +104,6 @@ Error: {1} UTA015: 泛型方法不可為測試方法。{0}.{1} 具有無效的簽章 - - The parameter should not be null or empty. - 參數不可為 null 或空白。 - - - - The parameter must be greater than zero. - 參數必須大於零。 - - - - MSTestAdapter failed to discover tests in class '{0}' of assembly '{1}'. Reason {2}. - MSTestAdapter 無法在組件 '{1}' 的類別 '{0}' 中探索測試。原因 {2}。 - - File does not exist: {0} 檔案不存在: {0} @@ -184,11 +169,6 @@ Error: {1} UTA023: {0}: 不可在方法 {1} 上定義預先定義的屬性 {2}。 - - UTA022: {0}.{1}: The custom property "{2}" is already defined. Using "{3}" as value. - UTA022: {0}.{1}: 自訂屬性 "{2}" 已經定義過了。請使用 "{3}" 為值。 - - UTA021: {0}: Null or empty custom property defined on method {1}. The custom property must have a valid name. UTA021: {0}: 在方法 {1} 上定義了 Null 或空白的自訂屬性。自訂屬性的名稱必須有效。 @@ -343,20 +323,6 @@ Error: {1} 為 'ClassCleanupLifecycle' 指定的值 '{0}' 無效。支援的範圍為 {1}。 'ClassCleanupLifecycle' is a setting name that shouldn't be localized. - - Exception occurred while enumerating DataSourceAttribute on "{0}.{1}": {2} - 列舉「{0}.{1}」上的 DataSourceAttribute 時發生例外狀況: {2} - {0}: TypeName with namespace, -{1}: Method name, -{2}: Exception details - - - A test method can only contain one DataSourceAttribute, but found {2} on "{0}.{1}". - 測試方法只能包含一個 DataSourceAttribute,但在「{0}.{1}」中發現 {2}。 - {0}: TypeName with namespace, -{1}: Method name, -{2}: Number of attributed defined. - Exception occurred while enumerating IDataSource attribute on "{0}.{1}": {2} 列舉「{0}.{1}」上的 IDataSource 屬性時發生例外狀況: {2} diff --git a/src/Adapter/MSTestAdapter.PlatformServices/Resources/xlf/Resource.xlf b/src/Adapter/MSTestAdapter.PlatformServices/Resources/xlf/Resource.xlf deleted file mode 100644 index 7d2cf9077a..0000000000 --- a/src/Adapter/MSTestAdapter.PlatformServices/Resources/xlf/Resource.xlf +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - Could not find file '{0}'. - Could not find file '{0}'. - - - - The parameter should not be null or empty. - The parameter should not be null or empty. - - - - Test Run deployment issue: Bad deployment item: '{0}': output directory '{1}' specifies the item to be deployed outside deployment root directory which is not allowed. - Test Run deployment issue: Bad deployment item: '{0}': output directory '{1}' specifies the item to be deployed outside deployment root directory which is not allowed. - - - - Test Run deployment issue: Failed to access output directory '{1}' specified by deployment item '{0}', the item will not be deployed: {2}: {3} - Test Run deployment issue: Failed to access output directory '{1}' specified by deployment item '{0}', the item will not be deployed: {2}: {3} - - - - Test Run deployment issue: Failed to access the file '{0}': {1}: {2} - Test Run deployment issue: Failed to access the file '{0}': {1}: {2} - - - - Test Run deployment issue: Failed to copy file '{0}' to '{1}': {2}: {3} - Test Run deployment issue: Failed to copy file '{0}' to '{1}': {2}: {3} - - - - Test Run deployment issue: Failed to deploy dependencies for test storage '{0}': {1} - Test Run deployment issue: Failed to deploy dependencies for test storage '{0}': {1} - - - - Test Run deployment issue: Failed to get the file for {0}: {1}: {2} - Test Run deployment issue: Failed to get the file for {0}: {1}: {2} - - - - Test Run deployment issue: an error occurred while getting satellite assemblies for {0}: {1}: {2} - Test Run deployment issue: an error occurred while getting satellite assemblies for {0}: {1}: {2} - - - - deployment item '{0}' - deployment item '{0}' - - - - Invalid deployment item: the specified path '{0}' or output directory '{1}' contains illegal characters. - Invalid deployment item: the specified path '{0}' or output directory '{1}' contains illegal characters. - - - - Invalid deployment item: the output directory cannot be null. - Invalid deployment item: the output directory cannot be null. - - - - Invalid deployment item: the specified output directory '{0}' is not relative. - Invalid deployment item: the specified output directory '{0}' is not relative. - - - - Invalid deployment item: the path must contain at least one character. - Invalid deployment item: the path must contain at least one character. - - - - deployment item '{0}' (output directory '{1}') - deployment item '{0}' (output directory '{1}') - - - - MSTestAdapter encountered an unexpected element '{0}' in its settings '{1}'. Remove this element and try again. - MSTestAdapter encountered an unexpected element '{0}' in its settings '{1}'. Remove this element and try again. - - - - Test Run deployment issue: The assembly or module '{0}' was not found. Reason: {1} - Test Run deployment issue: The assembly or module '{0}' was not found. Reason: {1} - - - - Test Run deployment issue: The assembly or module '{0}' was not found. - Test Run deployment issue: The assembly or module '{0}' was not found. - - - - {0}_{1} {2} - {0}_{1} {2} - - - - Data source '{0}' cannot be found in the test configuration settings - Data source '{0}' cannot be found in the test configuration settings - - - - The unit test adapter failed to connect to the data source or to read the data. For more information on troubleshooting this error, see "Troubleshooting Data-Driven Unit Tests" (http://go.microsoft.com/fwlink/?LinkId=62412) in the MSDN Library. Error details: {0} - The unit test adapter failed to connect to the data source or to read the data. For more information on troubleshooting this error, see "Troubleshooting Data-Driven Unit Tests" (http://go.microsoft.com/fwlink/?LinkId=62412) in the MSDN Library. Error details: {0} - - - - Wrong number of objects for permutation. Should be greater than zero. - Wrong number of objects for permutation. Should be greater than zero. - - - - - \ No newline at end of file diff --git a/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Shipped.md b/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Shipped.md index 60b59dd99b..fe8235cf2a 100644 --- a/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Shipped.md +++ b/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Shipped.md @@ -1,3 +1,12 @@ -; Shipped analyzer releases -; https://github.com/dotnet/roslyn-analyzers/blob/main/src/Microsoft.CodeAnalysis.Analyzers/ReleaseTrackingAnalyzers.Help.md +## Release 3.2.0 +### New Rules + +Rule ID | Category | Severity | Notes +--------|----------|----------|------- +MSTEST0001 | Performance | Info | UseParallelizeAttributeAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0001) +MSTEST0002 | Usage | Warning | TestClassShouldBeValidAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0002) +MSTEST0003 | Usage | Warning | TestMethodShouldBeValidAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0003) +MSTEST0004 | Design | Disabled | PublicTypeShouldBeTestClassAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0004) +MSTEST0005 | Usage | Warning | TestContextShouldBeValidAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0005) +MSTEST0006 | Design | Info | AvoidExpectedExceptionAttributeAnalyzer, [Documentation](https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/mstest0006) diff --git a/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Unshipped.md b/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Unshipped.md index c9f21b42d3..cc67b67f30 100644 --- a/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Unshipped.md +++ b/src/Analyzers/MSTest.Analyzers/AnalyzerReleases.Unshipped.md @@ -5,9 +5,3 @@ Rule ID | Category | Severity | Notes --------|----------|----------|------- -MSTEST0001 | Performance | Info | UseParallelizeAttributeAnalyzer, [Documentation](https://github.com/microsoft/testfx/blob/main/docs/analyzers/MSTEST0001.md) -MSTEST0002 | Usage | Warning | TestClassShouldBeValidAnalyzer, [Documentation](https://github.com/microsoft/testfx/blob/main/docs/analyzers/MSTEST0002.md) -MSTEST0003 | Usage | Warning | TestMethodShouldBeValidAnalyzer, [Documentation](https://github.com/microsoft/testfx/blob/main/docs/analyzers/MSTEST0003.md) -MSTEST0004 | Design | Disabled | PublicTypeShouldBeTestClassAnalyzer, [Documentation](https://github.com/microsoft/testfx/blob/main/docs/analyzers/MSTEST0004.md) -MSTEST0005 | Usage | Warning | TestContextShouldBeValidAnalyzer, [Documentation](https://github.com/microsoft/testfx/blob/main/docs/analyzers/MSTEST0005.md) -MSTEST0006 | Design | Info | AvoidExpectedExceptionAttributeAnalyzer, [Documentation](https://github.com/microsoft/testfx/blob/main/docs/analyzers/MSTEST0002.md) diff --git a/src/Analyzers/MSTest.Analyzers/Helpers/DiagnosticDescriptorHelper.cs b/src/Analyzers/MSTest.Analyzers/Helpers/DiagnosticDescriptorHelper.cs index 39d5d50591..afe3a9c3df 100644 --- a/src/Analyzers/MSTest.Analyzers/Helpers/DiagnosticDescriptorHelper.cs +++ b/src/Analyzers/MSTest.Analyzers/Helpers/DiagnosticDescriptorHelper.cs @@ -20,7 +20,7 @@ public static DiagnosticDescriptor Create( bool isReportedAtCompilationEnd = false, params string[] customTags) => new(id, title, messageFormat, category.ToString(), defaultSeverity, isEnabledByDefault, description, - $"https://learn.microsoft.com/dotnet/core/testing/unit-testing-mstest-analyzers-{id}", + $"https://learn.microsoft.com/dotnet/core/testing/mstest-analyzers/{id.ToLowerInvariant()}", CreateCustomTags(isReportedAtCompilationEnd, customTags)); public static DiagnosticDescriptor WithMessage(this DiagnosticDescriptor diagnosticDescriptor, LocalizableResourceString messageFormat) diff --git a/src/Analyzers/MSTest.Analyzers/Helpers/WellKnownTypeNames.cs b/src/Analyzers/MSTest.Analyzers/Helpers/WellKnownTypeNames.cs index fd73b435b5..b8279615b3 100644 --- a/src/Analyzers/MSTest.Analyzers/Helpers/WellKnownTypeNames.cs +++ b/src/Analyzers/MSTest.Analyzers/Helpers/WellKnownTypeNames.cs @@ -6,13 +6,17 @@ namespace MSTest.Analyzers; // IMPORTANT: Keep this file sorted alphabetically. internal static class WellKnownTypeNames { + public const string MicrosoftVisualStudioTestToolsUnitTestingClassCleanupAttribute = "Microsoft.VisualStudio.TestTools.UnitTesting.ClassCleanupAttribute"; + public const string MicrosoftVisualStudioTestToolsUnitTestingClassInitializeAttribute = "Microsoft.VisualStudio.TestTools.UnitTesting.ClassInitializeAttribute"; public const string MicrosoftVisualStudioTestToolsUnitTestingDiscoverInternalsAttribute = "Microsoft.VisualStudio.TestTools.UnitTesting.DiscoverInternalsAttribute"; public const string MicrosoftVisualStudioTestToolsUnitTestingDoNotParallelizeAttribute = "Microsoft.VisualStudio.TestTools.UnitTesting.DoNotParallelizeAttribute"; + public const string MicrosoftVisualStudioTestToolsUnitTestingExpectedExceptionAttribute = "Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedExceptionAttribute"; public const string MicrosoftVisualStudioTestToolsUnitTestingParallelizeAttribute = "Microsoft.VisualStudio.TestTools.UnitTesting.ParallelizeAttribute"; public const string MicrosoftVisualStudioTestToolsUnitTestingTestClassAttribute = "Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute"; + public const string MicrosoftVisualStudioTestToolsUnitTestingTestCleanupAttribute = "Microsoft.VisualStudio.TestTools.UnitTesting.TestCleanupAttribute"; public const string MicrosoftVisualStudioTestToolsUnitTestingTestContext = "Microsoft.VisualStudio.TestTools.UnitTesting.TestContext"; + public const string MicrosoftVisualStudioTestToolsUnitTestingTestInitializeAttribute = "Microsoft.VisualStudio.TestTools.UnitTesting.TestInitializeAttribute"; public const string MicrosoftVisualStudioTestToolsUnitTestingTestMethodAttribute = "Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute"; - public const string MicrosoftVisualStudioTestToolsUnitTestingExpectedExceptionAttribute = "Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedExceptionAttribute"; public const string SystemThreadingTasksTask = "System.Threading.Tasks.Task"; public const string SystemThreadingTasksTask1 = "System.Threading.Tasks.Task`1"; diff --git a/src/Analyzers/MSTest.Analyzers/Resources.Designer.cs b/src/Analyzers/MSTest.Analyzers/Resources.Designer.cs index d6e2f794da..393194d573 100644 --- a/src/Analyzers/MSTest.Analyzers/Resources.Designer.cs +++ b/src/Analyzers/MSTest.Analyzers/Resources.Designer.cs @@ -117,7 +117,7 @@ internal static string PublicTypeShouldBeTestClassTitle { /// /// Looks up a localized string similar to Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: ///- it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) - ///- it should not be 'static' + ///- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) ///- it should not be generic.. /// internal static string TestClassShouldBeValidDescription { diff --git a/src/Analyzers/MSTest.Analyzers/Resources.resx b/src/Analyzers/MSTest.Analyzers/Resources.resx index 03b7a074ed..264044d2a2 100644 --- a/src/Analyzers/MSTest.Analyzers/Resources.resx +++ b/src/Analyzers/MSTest.Analyzers/Resources.resx @@ -138,7 +138,7 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. diff --git a/src/Analyzers/MSTest.Analyzers/RoslynAnalyzerHelpers/ITypeSymbolExtensions.cs b/src/Analyzers/MSTest.Analyzers/RoslynAnalyzerHelpers/ITypeSymbolExtensions.cs new file mode 100644 index 0000000000..43ea806a93 --- /dev/null +++ b/src/Analyzers/MSTest.Analyzers/RoslynAnalyzerHelpers/ITypeSymbolExtensions.cs @@ -0,0 +1,88 @@ +// Copyright (c) Microsoft. All Rights Reserved. Licensed under the MIT license. See License.txt in the project root for license information. + +#nullable disable warnings + +using System; +using System.Collections.Generic; +using System.Diagnostics.CodeAnalysis; +using System.Linq; + +using Microsoft.CodeAnalysis; + +namespace Analyzer.Utilities.Extensions +{ + internal static class ITypeSymbolExtensions + { + public static bool Inherits([NotNullWhen(returnValue: true)] this ITypeSymbol? type, [NotNullWhen(returnValue: true)] ITypeSymbol? possibleBase) + { + if (type == null || possibleBase == null) + { + return false; + } + + switch (possibleBase.TypeKind) + { + case TypeKind.Class: + if (type.TypeKind == TypeKind.Interface) + { + return false; + } + + return DerivesFrom(type, possibleBase, baseTypesOnly: true); + + case TypeKind.Interface: + return DerivesFrom(type, possibleBase); + + default: + return false; + } + } + + public static bool DerivesFrom([NotNullWhen(returnValue: true)] this ITypeSymbol? symbol, [NotNullWhen(returnValue: true)] ITypeSymbol? candidateBaseType, bool baseTypesOnly = false, bool checkTypeParameterConstraints = true) + { + if (candidateBaseType == null || symbol == null) + { + return false; + } + + if (!baseTypesOnly && candidateBaseType.TypeKind == TypeKind.Interface) + { + var allInterfaces = symbol.AllInterfaces.OfType(); + if (SymbolEqualityComparer.Default.Equals(candidateBaseType.OriginalDefinition, candidateBaseType)) + { + // Candidate base type is not a constructed generic type, so use original definition for interfaces. + allInterfaces = allInterfaces.Select(i => i.OriginalDefinition); + } + + if (allInterfaces.Contains(candidateBaseType, SymbolEqualityComparer.Default)) + { + return true; + } + } + + if (checkTypeParameterConstraints && symbol.TypeKind == TypeKind.TypeParameter) + { + var typeParameterSymbol = (ITypeParameterSymbol)symbol; + foreach (var constraintType in typeParameterSymbol.ConstraintTypes) + { + if (constraintType.DerivesFrom(candidateBaseType, baseTypesOnly, checkTypeParameterConstraints)) + { + return true; + } + } + } + + while (symbol != null) + { + if (SymbolEqualityComparer.Default.Equals(symbol, candidateBaseType)) + { + return true; + } + + symbol = symbol.BaseType; + } + + return false; + } + } +} diff --git a/src/Analyzers/MSTest.Analyzers/TestClassShouldBeValidAnalyzer.cs b/src/Analyzers/MSTest.Analyzers/TestClassShouldBeValidAnalyzer.cs index 63e43937ee..cf1b4673f6 100644 --- a/src/Analyzers/MSTest.Analyzers/TestClassShouldBeValidAnalyzer.cs +++ b/src/Analyzers/MSTest.Analyzers/TestClassShouldBeValidAnalyzer.cs @@ -45,12 +45,22 @@ public override void Initialize(AnalysisContext context) if (context.Compilation.TryGetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftVisualStudioTestToolsUnitTestingTestClassAttribute, out var testClassAttributeSymbol)) { bool canDiscoverInternals = context.Compilation.CanDiscoverInternals(); - context.RegisterSymbolAction(context => AnalyzeSymbol(context, testClassAttributeSymbol, canDiscoverInternals), SymbolKind.NamedType); + var testMethodAttributeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftVisualStudioTestToolsUnitTestingTestMethodAttribute); + var testInitializeAttributeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftVisualStudioTestToolsUnitTestingTestInitializeAttribute); + var testCleanupAttributeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftVisualStudioTestToolsUnitTestingTestCleanupAttribute); + var classInitializeAttributeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftVisualStudioTestToolsUnitTestingClassInitializeAttribute); + var classCleanupAttributeSymbol = context.Compilation.GetOrCreateTypeByMetadataName(WellKnownTypeNames.MicrosoftVisualStudioTestToolsUnitTestingClassCleanupAttribute); + context.RegisterSymbolAction( + context => AnalyzeSymbol(context, testClassAttributeSymbol, canDiscoverInternals, testMethodAttributeSymbol, + testInitializeAttributeSymbol, testCleanupAttributeSymbol, classInitializeAttributeSymbol, classCleanupAttributeSymbol), + SymbolKind.NamedType); } }); } - private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol testClassAttributeSymbol, bool canDiscoverInternals) + private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbol testClassAttributeSymbol, bool canDiscoverInternals, + INamedTypeSymbol? testMethodAttributeSymbol, INamedTypeSymbol? testInitializeAttributeSymbol, INamedTypeSymbol? testCleanupAttributeSymbol, + INamedTypeSymbol? classInitializeAttributeSymbol, INamedTypeSymbol? classCleanupAttributeSymbol) { var namedTypeSymbol = (INamedTypeSymbol)context.Symbol; if (namedTypeSymbol.TypeKind != TypeKind.Class @@ -78,7 +88,34 @@ private static void AnalyzeSymbol(SymbolAnalysisContext context, INamedTypeSymbo if (namedTypeSymbol.IsStatic) { - context.ReportDiagnostic(namedTypeSymbol.CreateDiagnostic(NotStaticRule, namedTypeSymbol.Name)); + foreach (var member in namedTypeSymbol.GetMembers()) + { + if (member.Kind != SymbolKind.Method) + { + continue; + } + + var method = (IMethodSymbol)member; + if (method.MethodKind != MethodKind.Ordinary) + { + continue; + } + + foreach (var attribute in method.GetAttributes()) + { + if (SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, testInitializeAttributeSymbol) + || SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, testCleanupAttributeSymbol) + || SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, classInitializeAttributeSymbol) + || SymbolEqualityComparer.Default.Equals(attribute.AttributeClass, classCleanupAttributeSymbol) + || attribute.AttributeClass.Inherits(testMethodAttributeSymbol)) + { + context.ReportDiagnostic(namedTypeSymbol.CreateDiagnostic(NotStaticRule, namedTypeSymbol.Name)); + + // We only need to report once per class. + break; + } + } + } } } } diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf index abe314495e..f470b0437f 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.cs.xlf @@ -35,11 +35,11 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. Testovací třídy (třídy označené atributem [TestClass]) by měly respektovat následující rozložení, které MSTest považuje za platné: – musí být public (nebo internal, pokud je nastaven atribut [assembly: DiscoverInternals]), -– musí být static, +– nesmí být static (s výjimkou případů, kdy obsahuje pouze metody AssemblyInitialize nebo AssemblyCleanup), – nesmí být obecné. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf index d21f0011d7..1722a963ba 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.de.xlf @@ -35,12 +35,12 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. - Testklassen, Klassen, die mit dem Attribut "[TestClass]" gekennzeichnet sind, sollten das folgende Layout berücksichtigen, um von MSTest als gültig angesehen zu werden: -– es darf "public" (oder "internal" sein, wenn das Attribut "[assembly: DiscoverInternals]" festgelegt ist) -– es darf nicht "static" sein -– es darf nicht generisch sein. + Testklassen (mit dem „[TestClass]“-Attribut gekennzeichnete Klassen) müssen das folgende Layout berücksichtigen, um von MSTest als gültig betrachtet zu werden: +– Sie müssen auf „public“ festgelegt sein (oder auf „internal“, falls das „[assembly: DiscoverInternals]“-Attribut festgelegt ist). +– Sie dürfen nicht auf „static“ festgelegt sein (außer wenn sie nur die Methoden „AssemblyInitialize“ und/oder „AssemblyCleanup“ enthalten) +– Sie dürfen nicht generisch sein. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.es.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.es.xlf index d8123b9c11..d5aef02958 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.es.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.es.xlf @@ -35,11 +35,11 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. Las clases de prueba, las clases marcadas con el atributo '[TestClass]', deben respetar el siguiente diseño para que MSTest lo considere válido: - debe ser 'public' (o 'internal' si se establece el atributo '[assembly: DiscoverInternals]') -- No debe ser "static" +- no debe ser "static" (excepto si contiene solo los métodos "AssemblyInitialize" o "AssemblyCleanup") : no debe ser genérico. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.fr.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.fr.xlf index 68d451df4a..6dba2fb787 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.fr.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.fr.xlf @@ -35,12 +35,12 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. - Les classes de test, qui sont marquées avec l’attribut « [TestClass] », doivent respecter la disposition suivante pour être considérées comme valides par MSTest : -– il doit être « public » (ou « interne » si l’attribut « [assembly : DiscoverInternals] » est défini) -– Le texte ne doit pas être « statique » -– Il ne doit pas être générique. + Les classes de test, à savoir les classes marquées par l’attribut « [TestClass] », doivent respecter la disposition suivante pour être considérées comme valides par MSTest : +– Elle doit être « publique » (ou « interne » si l’attribut « [assembly : DiscoverInternals] » est défini) +– Elle ne doit pas être « statique » (sauf si elle ne contient que des méthodes « AssemblyInitialize » et/ou « AssemblyCleanup ») +– Elle ne doit pas être générique. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf index a04e16c25c..1a34732ba1 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.it.xlf @@ -35,11 +35,11 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. Le classi di test, classi contrassegnate con l'attributo '[TestClass]', dovrebbero rispettare il layout seguente per essere considerate valide da MSTest: - dovrebbe essere 'pubblica' (o 'interna' se l'attributo '[assembly: DiscoverInternals]' è impostato) -- non dovrebbe essere 'statica' +- non dovrebbe essere 'statica' (a meno che contenga solo i metodi 'AssemblyInitialize' e/o 'AssemblyCleanup') - non dovrebbe essere generica. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf index 6287dbc905..045d222b62 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ja.xlf @@ -35,11 +35,11 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. テスト クラス ('[TestClass]' 属性でマークされたクラス) は、MSTest によって有効と見なされるように、次のレイアウトを考慮する必要があります: -- 'public' ('[assembly: DiscoverInternals]' 属性が設定されている場合は 'internal' である必要があります) -- 'static' にすることはできません +- 'public' である必要があります ('[assembly: DiscoverInternals]' 属性が設定されている場合は 'internal' である必要があります) +- 'static' にすることはできません ('AssemblyInitialize' メソッドおよび/または 'AssemblyCleanup' メソッドのみが含まれる場合は除きます) - ジェネリックにすることはできません。 diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf index 0164767723..3f19be52b4 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ko.xlf @@ -35,11 +35,11 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. - '[TestClass]' 특성으로 표시된 클래스인 테스트 클래스는 MSTest에서 유효한 것으로 간주되도록 다음 레이아웃을 준수해야 합니다. -- 'public'(혹은 '[assembly: DiscoverInternals]' 특성이 설정된 경우 'internal')이어야 합니다. -- 'static'이 아니어야 합니다. + '[TestClass]' 특성으로 표시된 클래스인 테스트 클래스는 MSTest에서 유효하다고 간주하려면 다음 레이아웃을 준수해야 합니다. +- 'public'(또는 '[assembly: DiscoverInternals]' 특성이 설정된 경우 'internal')이어야 합니다. +- 'static'이 아니어야 합니다('AssemblyInitialize' 및/또는 'AssemblyCleanup' 메서드만 포함된 경우 제외). - 제네릭이 아니어야 합니다. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf index 17016cff3c..a84cc1a0e9 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pl.xlf @@ -35,11 +35,11 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. Klasy testowe, czyli klasy oznaczone atrybutem „[TestClass]”, powinny uwzględniać następujący układ, który jest uznawany za prawidłowy przez platformę MSTest: — powinna to być wartość „public” (lub „internal”, jeśli ustawiono atrybut „[assembly: DiscoverInternals]”) -— nie powinna to być wartość „static” +- nie powinna być „statyczna” (chyba że zawiera tylko metody „AssemblyInitialize” i/lub „AssemblyCleanup”) — nie powinna to być wartość ogólna. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf index 398ad00cb1..8ce70f8f79 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.pt-BR.xlf @@ -35,11 +35,11 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. Classes de teste, classes marcadas com o atributo ''[TestClass]'', devem respeitar o layout a seguir para serem consideradas válidas pelo MSTest: - deve ser "público" (ou "interno" se o atributo "[assembly: DiscoverInternals]" estiver definido) -- não deve ser ''estático'' +- não deve ser ''estático'' (exceto se contiver apenas os métodos ''AssemblyInitialize'' e/ou ''AssemblyCleanup'') - não deve ser genérico. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ru.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ru.xlf index f085d9ef58..848ad47ec7 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.ru.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.ru.xlf @@ -35,12 +35,12 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. - Тестовые классы (классы, помеченные атрибутом "[TestClass]") должны соблюдать следующую структуру, чтобы считаться допустимыми в MSTest: -– должно быть присвоено значение "public" (или "internal", если задан атрибут "[assembly: DiscoverInternals]") -– не следует присваивать значение "static" -– они не должны быть универсальными. + В тестовых классах (с атрибутом "[TestClass]") должна быть следующая структура, чтобы эти классы считались допустимыми для MSTest: +- у класса должно быть свойство "public" (или "internal", если задан атрибут "[assembly: DiscoverInternals]") +- у класс не должно быть свойства "static" (кроме случаев, когда класс содержит только методы "AssemblyInitialize" и "AssemblyCleanup") +- класс не должен быть универсальным. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.tr.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.tr.xlf index 0001d7c3af..8f9df6b136 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.tr.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.tr.xlf @@ -35,12 +35,12 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. - '[TestClass]' özniteliğiyle işaretlenen test sınıfları, MSTest: - tarafından geçerli kabul edilmesi için aşağıdaki düzene göre düzenlenmelidir. + '[TestClass]' özniteliğiyle işaretlenen sınıflar olan test sınıfları, MSTest: + tarafından geçerli kabul edilmeleri için aşağıdaki düzene uygum olmalıdır - 'public' (veya '[assembly: DiscoverInternals]' özniteliği ayarlanmışsa 'internal') olmalıdır -- 'static' olmalıdır +- 'static' olmamalıdır (yalnızca 'AssemblyInitialize' ve/veya 'AssemblyCleanup' yöntemlerini içermesi hariç) - genel olmalıdır. diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf index 662f59945a..05fe966f71 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hans.xlf @@ -35,11 +35,11 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. - 测试类(标记有“[TestClass]”属性的类)应遵循以下布局,以供 MSTest 视为有效: -- 它应为“public”(如果设置了“[assembly: DiscoverInternals]”属性,则应为“internal”) -- 它不应为“static” + 测试类(标记有“[TestClass]”属性的类)应遵循以下布局,才能被 MSTest 视为有效: +- 它应为 "public" (如果设置了“[assembly: DiscoverInternals]”属性,则应为 "internal") +- 它不应为 "static" (除非它只包含 "AssemblyInitialize" 和/或 "AssemblyCleanup" 方法) - 它不应是泛型的。 diff --git a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hant.xlf b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hant.xlf index f303a39ade..d030b92aa9 100644 --- a/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hant.xlf +++ b/src/Analyzers/MSTest.Analyzers/xlf/Resources.zh-Hant.xlf @@ -35,11 +35,11 @@ Test classes, classes marked with the '[TestClass]' attribute, should respect the following layout to be considered valid by MSTest: - it should be 'public' (or 'internal' if '[assembly: DiscoverInternals]' attribute is set) -- it should not be 'static' +- it should not be 'static' (except if it contains only 'AssemblyInitialize' and/or 'AssemblyCleanup' methods) - it should not be generic. 測試類別 (標示為 '[TestClass]' 屬性的類別) 應該遵循下列配置,讓 MSTest 視為有效: - 它應該是 'public' (如果設定 '[assembly: DiscoverInternals]' 屬性,則為 'internal') -- 它應該是 'static' +- 它不應該是 'static' (除非其僅包含 'AssemblyInitialize' 和/或 'AssemblyCleanup' 方法) - 它不能是泛型。 diff --git a/src/Platform/Microsoft.Testing.Platform/Builder/TestApplication.cs b/src/Platform/Microsoft.Testing.Platform/Builder/TestApplication.cs index 81f521831c..51e07026b6 100644 --- a/src/Platform/Microsoft.Testing.Platform/Builder/TestApplication.cs +++ b/src/Platform/Microsoft.Testing.Platform/Builder/TestApplication.cs @@ -255,7 +255,7 @@ private static ApplicationLoggingState CreateFileLoggerIfDiagnosticIsEnabled( CommandLineParseResult result, CurrentTestApplicationModuleInfo testApplicationModuleInfo, SystemClock clock, SystemEnvironment environment, SystemTask task, SystemConsole console) { - LogLevel logLevel = LogLevel.Trace; + LogLevel logLevel = LogLevel.None; if (result.HasError) { @@ -278,6 +278,8 @@ private static ApplicationLoggingState CreateFileLoggerIfDiagnosticIsEnabled( return new(logLevel, result); } + logLevel = LogLevel.Trace; + if (result.TryGetOptionArgumentList(PlatformCommandLineProvider.DiagnosticVerbosityOptionKey, out string[]? verbosity)) { logLevel = (LogLevel)Enum.Parse(typeof(LogLevel), verbosity[0], true); diff --git a/src/Platform/Microsoft.Testing.Platform/CommandLine/CommandLineHandler.cs b/src/Platform/Microsoft.Testing.Platform/CommandLine/CommandLineHandler.cs index 62ce03dbc5..452a566e84 100644 --- a/src/Platform/Microsoft.Testing.Platform/CommandLine/CommandLineHandler.cs +++ b/src/Platform/Microsoft.Testing.Platform/CommandLine/CommandLineHandler.cs @@ -52,7 +52,7 @@ internal sealed class CommandLineHandler(string[] args, CommandLineParseResult p public string Description => string.Empty; - public async Task ParseAndValidateAsync() + public async Task<(bool IsValid, string? ValidationError)> TryParseAndValidateAsync() { if (_parseResult.HasError) { @@ -63,57 +63,49 @@ public async Task ParseAndValidateAsync() stringBuilder.AppendLine(CultureInfo.InvariantCulture, $"\t- {error}"); } - await _platformOutputDevice.DisplayAsync(this, FormattedTextOutputDeviceDataBuilder.CreateRedConsoleColorText(stringBuilder.ToString())); - return false; + return (false, stringBuilder.ToString()); } if (ExtensionOptionsContainReservedPrefix(out string? reservedPrefixError)) { - await _platformOutputDevice.DisplayAsync(this, FormattedTextOutputDeviceDataBuilder.CreateRedConsoleColorText(reservedPrefixError)); - return false; + return (false, reservedPrefixError); } if (ExtensionOptionsContainReservedOptions(out string? reservedOptionError)) { - await _platformOutputDevice.DisplayAsync(this, FormattedTextOutputDeviceDataBuilder.CreateRedConsoleColorText(reservedOptionError)); - return false; + return (false, reservedOptionError); } if (ExtensionOptionAreDuplicated(out string? duplicationError)) { - await _platformOutputDevice.DisplayAsync(this, FormattedTextOutputDeviceDataBuilder.CreateRedConsoleColorText(duplicationError)); - return false; + return (false, duplicationError); } if (UnknownOptions(out string? unknownOptionsError)) { - await _platformOutputDevice.DisplayAsync(this, FormattedTextOutputDeviceDataBuilder.CreateRedConsoleColorText(unknownOptionsError)); - await _platformOutputDevice.DisplayAsync(this, EmptyText); - await PrintHelpAsync(); - return false; + return (false, unknownOptionsError); } if (ExtensionArgumentArityAreInvalid(out string? arityErrors)) { - await _platformOutputDevice.DisplayAsync(this, FormattedTextOutputDeviceDataBuilder.CreateRedConsoleColorText(arityErrors)); - return false; + return (false, arityErrors); } var optionsResult = await ValidateOptionsArgumentsAsync(); if (!optionsResult.IsValid) { - await _platformOutputDevice.DisplayAsync(this, FormattedTextOutputDeviceDataBuilder.CreateRedConsoleColorText(optionsResult.ErrorMessage)); - return false; + return (false, optionsResult.ErrorMessage); } var configurationResult = await ValidateConfigurationAsync(); +#pragma warning disable IDE0046 // Convert to conditional expression - make the code less readable if (!configurationResult.IsValid) { - await _platformOutputDevice.DisplayAsync(this, FormattedTextOutputDeviceDataBuilder.CreateRedConsoleColorText(configurationResult.ErrorMessage)); - return false; + return (false, configurationResult.ErrorMessage); } +#pragma warning restore IDE0046 // Convert to conditional expression - return true; + return (true, null); } private bool ExtensionOptionsContainReservedPrefix([NotNullWhen(true)] out string? error) diff --git a/src/Platform/Microsoft.Testing.Platform/CommandLine/ICommandLineHandler.cs b/src/Platform/Microsoft.Testing.Platform/CommandLine/ICommandLineHandler.cs index b96d45f117..f61ca585fc 100644 --- a/src/Platform/Microsoft.Testing.Platform/CommandLine/ICommandLineHandler.cs +++ b/src/Platform/Microsoft.Testing.Platform/CommandLine/ICommandLineHandler.cs @@ -13,5 +13,5 @@ internal interface ICommandLineHandler Task PrintHelpAsync(ITool[]? availableTools = null); - Task ParseAndValidateAsync(); + Task<(bool IsValid, string? ValidationError)> TryParseAndValidateAsync(); } diff --git a/src/Platform/Microsoft.Testing.Platform/Configurations/AggregatedConfiguration.cs b/src/Platform/Microsoft.Testing.Platform/Configurations/AggregatedConfiguration.cs index d026b7ab33..27b904d1b6 100644 --- a/src/Platform/Microsoft.Testing.Platform/Configurations/AggregatedConfiguration.cs +++ b/src/Platform/Microsoft.Testing.Platform/Configurations/AggregatedConfiguration.cs @@ -67,6 +67,13 @@ public void SetTestHostWorkingDirectory(string workingDirectory) _testHostWorkingDirectory = workingDirectory; } + public void CreateDefaultTestResultDirectory() + { + _currentWorkingDirectory = Path.GetDirectoryName(_testApplicationModuleInfo.GetCurrentTestApplicationFullPath())!; + _resultDirectory ??= Path.Combine(_currentWorkingDirectory, DefaultTestResultFolderName); + _resultDirectory = _fileSystem.CreateDirectory(_resultDirectory); + } + public async Task CheckTestResultsDirectoryOverrideAndCreateItAsync(ICommandLineOptions commandLineOptions, IFileLoggerProvider? fileLoggerProvider) { // Load Configuration diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/IServerTestHost.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/IServerTestHost.cs index cf532cc53f..64d6c1705f 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/IServerTestHost.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/IServerTestHost.cs @@ -8,9 +8,9 @@ namespace Microsoft.Testing.Platform.Hosts; internal interface IServerTestHost { - bool IsInitialized { get; } - Task SendTelemetryEventUpdateAsync(TelemetryEventArgs args); + Task SendTestUpdateAsync(TestNodeStateChangedEventArgs update); + Task PushDataAsync(IData data); } diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/ServerTestHost.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/ServerTestHost.cs index 7b698602b9..fe2cf5b0bd 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/ServerTestHost.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/ServerTestHost.cs @@ -90,11 +90,7 @@ public ServerTestHost( _testFrameworkManager = testFrameworkManager; _testApplicationCancellationTokenSource = serviceProvider.GetTestApplicationCancellationTokenSource(); _testSessionManager = testSessionManager; - - // TODO: We should register this service in TestHostBuilder - // this is only temporary as we are only using it in the ServerTestHost - // and we don't support multi telemetry collectors - _telemetryService = new ServerTelemetry(serviceProvider); + _telemetryService = new ServerTelemetry(this); _clientToServerRequests = new(); _serverToClientRequests = new(); @@ -480,7 +476,7 @@ private async Task ExecuteRequestAsync(RequestArgsBase args, s // Build the per request objects var filterFactory = new ServerTestExecutionFilterFactory(); var invoker = new TestHostTestFrameworkInvoker(perRequestServiceProvider); - var testNodeUpdateProcessor = new PerRequestServerDataConsumer(perRequestServiceProvider, args.RunId, perRequestServiceProvider.GetTask()); + var testNodeUpdateProcessor = new PerRequestServerDataConsumer(perRequestServiceProvider, this, args.RunId, perRequestServiceProvider.GetTask()); DateTimeOffset adapterLoadStart = _clock.UtcNow; @@ -673,7 +669,7 @@ public void Dispose() internal Task SendTestUpdateCompleteAsync(Guid runId) => SendTestUpdateAsync(new TestNodeStateChangedEventArgs(runId, Changes: null)); - internal async Task SendTestUpdateAsync(TestNodeStateChangedEventArgs update) + public async Task SendTestUpdateAsync(TestNodeStateChangedEventArgs update) => await SendMessageAsync( method: JsonRpcMethods.TestingTestUpdatesTests, @params: update, diff --git a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs index fe28b950af..a0713fd3c8 100644 --- a/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs +++ b/src/Platform/Microsoft.Testing.Platform/Hosts/TestHostBuilder.cs @@ -195,8 +195,13 @@ public async Task BuildAsync( CommandLineHandler commandLineHandler = await ((CommandLineManager)CommandLine).BuildAsync(args, platformOutputDevice, loggingState.CommandLineParseResult); // If command line is not valid we return immediately. - if (!loggingState.CommandLineParseResult.HasTool && !await commandLineHandler.ParseAndValidateAsync()) + (bool parseSucceded, string? validationError) = await commandLineHandler.TryParseAndValidateAsync(); + if (!loggingState.CommandLineParseResult.HasTool && !parseSucceded) { + await DisplayBannerIfEnabledAsync(loggingState, platformOutputDevice); + ArgumentGuard.IsNotNull(validationError); + await platformOutputDevice.DisplayAsync(commandLineHandler, FormattedTextOutputDeviceDataBuilder.CreateRedConsoleColorText(validationError)); + await commandLineHandler.PrintHelpAsync(); return new InformativeCommandLineTestHost(ExitCodes.InvalidCommandLine); } @@ -230,13 +235,7 @@ public async Task BuildAsync( // Display banner now because we need capture the output in case of MSBuild integration and we want to forward // to file disc also the banner, so at this point we need to have all services and configuration(result directory) built. - bool isNoBannerSet = loggingState.CommandLineParseResult.IsOptionSet(PlatformCommandLineProvider.NoBannerOptionKey); - string? noBannerEnvironmentVar = environment.GetEnvironmentVariable(EnvironmentVariableConstants.TESTINGPLATFORM_NOBANNER); - string? dotnetNoLogoEnvironmentVar = environment.GetEnvironmentVariable(EnvironmentVariableConstants.DOTNET_NOLOGO); - if (!isNoBannerSet && !(noBannerEnvironmentVar is "1" or "true") && !(dotnetNoLogoEnvironmentVar is "1" or "true")) - { - await platformOutputDevice.DisplayBannerAsync(); - } + await DisplayBannerIfEnabledAsync(loggingState, platformOutputDevice); // Add global telemetry service. // Add at this point or the telemetry banner appearance order will be wrong, we want the testing app banner before the telemetry banner. @@ -718,4 +717,15 @@ private async Task RegisterAsServiceOrConsumerOrBothAsync(object service, Servic await AddServiceIfNotSkippedAsync(service, serviceProvider); } + + private async Task DisplayBannerIfEnabledAsync(ApplicationLoggingState loggingState, IPlatformOutputDevice platformOutputDevice) + { + bool isNoBannerSet = loggingState.CommandLineParseResult.IsOptionSet(PlatformCommandLineProvider.NoBannerOptionKey); + string? noBannerEnvironmentVar = environment.GetEnvironmentVariable(EnvironmentVariableConstants.TESTINGPLATFORM_NOBANNER); + string? dotnetNoLogoEnvironmentVar = environment.GetEnvironmentVariable(EnvironmentVariableConstants.DOTNET_NOLOGO); + if (!isNoBannerSet && !(noBannerEnvironmentVar is "1" or "true") && !(dotnetNoLogoEnvironmentVar is "1" or "true")) + { + await platformOutputDevice.DisplayBannerAsync(); + } + } } diff --git a/src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeServer.cs b/src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeServer.cs index c850f6ac08..b6af14bb9f 100644 --- a/src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeServer.cs +++ b/src/Platform/Microsoft.Testing.Platform/IPC/NamedPipeServer.cs @@ -273,7 +273,7 @@ public static PipeNameDescription GetPipeName(string name) PlatformResources.CouldNotFindDirectoryErrorMessage, #endif directoryId)) - : Path.Combine(directoryId, ".pipe"), true); + : Path.Combine(directoryId, ".p"), true); } public void Dispose() diff --git a/src/Platform/Microsoft.Testing.Platform/Logging/ServerLogMessageInMemoryStore.cs b/src/Platform/Microsoft.Testing.Platform/Logging/ServerLogMessageInMemoryStore.cs index 3546370ce2..46c872bcba 100644 --- a/src/Platform/Microsoft.Testing.Platform/Logging/ServerLogMessageInMemoryStore.cs +++ b/src/Platform/Microsoft.Testing.Platform/Logging/ServerLogMessageInMemoryStore.cs @@ -4,6 +4,8 @@ using System.Collections; using System.Collections.Concurrent; +using Microsoft.Testing.Platform.Hosts; + namespace Microsoft.Testing.Platform.Logging; internal sealed class ServerLogMessageInMemoryStore(LogLevel logLevel) : ILogger, IEnumerable @@ -15,6 +17,10 @@ internal sealed class ServerLogMessageInMemoryStore(LogLevel logLevel) : ILogger #endif ConcurrentBag _values = new(); + private ServerTestHost? _serverTestHost; + + public void Initialize(ServerTestHost serverTestHost) => _serverTestHost = serverTestHost; + public IEnumerator GetEnumerator() => _values.GetEnumerator(); IEnumerator IEnumerable.GetEnumerator() => _values.GetEnumerator(); @@ -31,22 +37,35 @@ public void Log(LogLevel logLevel, TState state, Exception? exception, F string message = formatter(state, exception); var logMessage = new ServerLogMessage(logLevel, message); - _values.Add(logMessage); + if (_serverTestHost is not null) + { + // Server channel is async only. + _serverTestHost.PushDataAsync(logMessage).GetAwaiter().GetResult(); + } + else + { + _values.Add(logMessage); + } } - public Task LogAsync(LogLevel logLevel, TState state, Exception? exception, Func formatter) + public async Task LogAsync(LogLevel logLevel, TState state, Exception? exception, Func formatter) { if (!IsEnabled(logLevel)) { - return Task.CompletedTask; + return; } string message = formatter(state, exception); var logMessage = new ServerLogMessage(logLevel, message); - _values.Add(logMessage); - - return Task.CompletedTask; + if (_serverTestHost is not null) + { + await _serverTestHost.PushDataAsync(logMessage); + } + else + { + _values.Add(logMessage); + } } public void Clean() diff --git a/src/Platform/Microsoft.Testing.Platform/Logging/ServerLoggerForwarderProvider.cs b/src/Platform/Microsoft.Testing.Platform/Logging/ServerLoggerForwarderProvider.cs index 047c29ee9e..8b2ffaff02 100644 --- a/src/Platform/Microsoft.Testing.Platform/Logging/ServerLoggerForwarderProvider.cs +++ b/src/Platform/Microsoft.Testing.Platform/Logging/ServerLoggerForwarderProvider.cs @@ -23,6 +23,7 @@ public ILogger CreateLogger(string categoryName) public async Task InitializeAsync(ServerTestHost serverTestHost) { _serverTestHost = serverTestHost; + _serverLogMessageInMemoryStore.Initialize(serverTestHost); foreach (ServerLogMessage serverLogMessage in _serverLogMessageInMemoryStore) { diff --git a/src/Platform/Microsoft.Testing.Platform/Microsoft.Testing.Platform.csproj b/src/Platform/Microsoft.Testing.Platform/Microsoft.Testing.Platform.csproj index f7a2d9ed5f..c839c67ba2 100644 --- a/src/Platform/Microsoft.Testing.Platform/Microsoft.Testing.Platform.csproj +++ b/src/Platform/Microsoft.Testing.Platform/Microsoft.Testing.Platform.csproj @@ -8,17 +8,6 @@ true - - 1.0.0 - - 1.0.0.0 - 1.0.0.0 - - diff --git a/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Shipped.txt index 7dc5c58110..90dd40597e 100644 --- a/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Shipped.txt @@ -1 +1,440 @@ #nullable enable +Microsoft.Testing.Platform.Builder.ConfigurationOptions +Microsoft.Testing.Platform.Builder.ConfigurationOptions.ConfigurationOptions() -> void +Microsoft.Testing.Platform.Builder.ConfigurationOptions.ConfigurationSources.get -> Microsoft.Testing.Platform.Builder.ConfigurationSourcesOptions! +Microsoft.Testing.Platform.Builder.ConfigurationSourcesOptions +Microsoft.Testing.Platform.Builder.ConfigurationSourcesOptions.ConfigurationSourcesOptions() -> void +Microsoft.Testing.Platform.Builder.ConfigurationSourcesOptions.RegisterEnvironmentVariablesConfigurationSource.get -> bool +Microsoft.Testing.Platform.Builder.ConfigurationSourcesOptions.RegisterEnvironmentVariablesConfigurationSource.set -> void +Microsoft.Testing.Platform.Builder.ITestApplication +Microsoft.Testing.Platform.Builder.ITestApplication.RunAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Builder.ITestApplicationBuilder +Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.BuildAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.CommandLine.get -> Microsoft.Testing.Platform.CommandLine.ICommandLineManager! +Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.RegisterTestFramework(System.Func! capabilitiesFactory, System.Func! adapterFactory) -> Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! +Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.TestHost.get -> Microsoft.Testing.Platform.TestHost.ITestHostManager! +Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.TestHostControllers.get -> Microsoft.Testing.Platform.TestHostControllers.ITestHostControllersManager! +Microsoft.Testing.Platform.Builder.TestApplication +Microsoft.Testing.Platform.Builder.TestApplication.Dispose() -> void +Microsoft.Testing.Platform.Builder.TestApplication.RunAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Builder.TestApplicationOptions +Microsoft.Testing.Platform.Builder.TestApplicationOptions.Configuration.get -> Microsoft.Testing.Platform.Builder.ConfigurationOptions! +Microsoft.Testing.Platform.Builder.TestApplicationOptions.EnableTelemetry.get -> bool +Microsoft.Testing.Platform.Builder.TestApplicationOptions.EnableTelemetry.set -> void +Microsoft.Testing.Platform.Builder.TestApplicationOptions.TestApplicationOptions() -> void +Microsoft.Testing.Platform.Capabilities.ICapabilities +Microsoft.Testing.Platform.Capabilities.ICapabilities.Capabilities.get -> System.Collections.Generic.IReadOnlyCollection! +Microsoft.Testing.Platform.Capabilities.ICapability +Microsoft.Testing.Platform.Capabilities.TestFramework.ITestFrameworkCapabilities +Microsoft.Testing.Platform.Capabilities.TestFramework.ITestFrameworkCapability +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.ICommandLineManager +Microsoft.Testing.Platform.CommandLine.ICommandLineManager.AddProvider(System.Func! commandLineProviderFactory) -> void +Microsoft.Testing.Platform.CommandLine.ICommandLineOptions +Microsoft.Testing.Platform.CommandLine.ICommandLineOptions.IsOptionSet(string! optionName) -> bool +Microsoft.Testing.Platform.CommandLine.ICommandLineOptions.TryGetOptionArgumentList(string! optionName, out string![]? arguments) -> bool +Microsoft.Testing.Platform.Configurations.ConfigurationExtensions +Microsoft.Testing.Platform.Configurations.IConfiguration +Microsoft.Testing.Platform.Configurations.IConfiguration.this[string! key].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 +Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.Equals(Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity other) -> bool +Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.Max.get -> int +Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.Min.get -> int +Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption +Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.Arity.get -> Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity +Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.CommandLineOption(string! name, string! description, Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity arity, bool isHidden) -> void +Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.Description.get -> string! +Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.Equals(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption? other) -> bool +Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.IsHidden.get -> bool +Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.Name.get -> string! +Microsoft.Testing.Platform.Extensions.CommandLine.ICommandLineOptionsProvider +Microsoft.Testing.Platform.Extensions.CommandLine.ICommandLineOptionsProvider.GetCommandLineOptions() -> System.Collections.Generic.IReadOnlyCollection! +Microsoft.Testing.Platform.Extensions.CommandLine.ICommandLineOptionsProvider.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.CommandLine.ICommandLineOptionsProvider.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory +Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory.CompositeExtensionFactory(System.Func! factory) -> void +Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory.CompositeExtensionFactory(System.Func! factory) -> void +Microsoft.Testing.Platform.Extensions.IAsyncCleanableExtension +Microsoft.Testing.Platform.Extensions.IAsyncCleanableExtension.CleanupAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.IAsyncInitializableExtension +Microsoft.Testing.Platform.Extensions.IAsyncInitializableExtension.InitializeAsync() -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.IExtension +Microsoft.Testing.Platform.Extensions.IExtension.Description.get -> string! +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.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.Exception.get -> System.Exception? +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 +Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty +Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.DiscoveredTestNodeStateProperty(string? Explanation = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty +Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.ErrorTestNodeStateProperty() -> void +Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.ErrorTestNodeStateProperty(string! explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.ErrorTestNodeStateProperty(System.Exception! exception, string? explanation = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Exception.get -> System.Exception? +Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty +Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Exception.get -> System.Exception? +Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.FailedTestNodeStateProperty() -> void +Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.FailedTestNodeStateProperty(string! explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.FailedTestNodeStateProperty(System.Exception! exception, string? explanation = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.FileArtifact +Microsoft.Testing.Platform.Extensions.Messages.FileArtifact.FileArtifact(System.IO.FileInfo! fileInfo, string! displayName, string? description = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.FileArtifact.FileInfo.get -> System.IO.FileInfo! +Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty +Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.FileLocationProperty(string! FilePath, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan LineSpan) -> void +Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.FilePath.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.FilePath.init -> void +Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.LineSpan.get -> Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan +Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.LineSpan.init -> void +Microsoft.Testing.Platform.Extensions.Messages.IData +Microsoft.Testing.Platform.Extensions.Messages.IData.Description.get -> string? +Microsoft.Testing.Platform.Extensions.Messages.IData.DisplayName.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.IDataProducer +Microsoft.Testing.Platform.Extensions.Messages.IDataProducer.DataTypesProduced.get -> System.Type![]! +Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty +Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.InProgressTestNodeStateProperty(string? Explanation = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.IProperty +Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty +Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Key.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Key.init -> void +Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.KeyValuePairStringProperty(string! Key, string! Value) -> void +Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Value.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Value.init -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePosition +Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Column.get -> int +Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Column.set -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Line.get -> int +Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Line.set -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePosition.LinePosition() -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePosition.LinePosition(int Line, int Column) -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan +Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.End.get -> Microsoft.Testing.Platform.Extensions.Messages.LinePosition +Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.End.set -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.LinePositionSpan() -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.LinePositionSpan(Microsoft.Testing.Platform.Extensions.Messages.LinePosition Start, Microsoft.Testing.Platform.Extensions.Messages.LinePosition End) -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Start.get -> Microsoft.Testing.Platform.Extensions.Messages.LinePosition +Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Start.set -> void +Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty +Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.PassedTestNodeStateProperty(string? Explanation = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.PropertyBag +Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.Add(Microsoft.Testing.Platform.Extensions.Messages.IProperty! property) -> void +Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.Any() -> bool +Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.AsEnumerable() -> System.Collections.Generic.IEnumerable! +Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.Count.get -> int +Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.GetEnumerator() -> System.Collections.Generic.IEnumerator! +Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.OfType() -> TProperty[]! +Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.PropertyBag() -> void +Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.PropertyBag(params Microsoft.Testing.Platform.Extensions.Messages.IProperty![]! properties) -> void +Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.PropertyBag(System.Collections.Generic.IEnumerable! properties) -> void +Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.Single() -> TProperty +Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.SingleOrDefault() -> TProperty? +Microsoft.Testing.Platform.Extensions.Messages.PropertyBagData +Microsoft.Testing.Platform.Extensions.Messages.PropertyBagData.Description.get -> string? +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.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 +Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty +Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.SkippedTestNodeStateProperty(string? Explanation = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo +Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Description.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Description.init -> void +Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Id.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Id.init -> void +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.StepTimingInfo.Timing.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty +Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.TestFileLocationProperty(string! FilePath, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan LineSpan) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty +Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Key.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Key.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.TestMetadataProperty(string! Key, string! Value) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Value.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Value.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.AssemblyFullName.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.AssemblyFullName.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.MethodName.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.MethodName.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Namespace.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Namespace.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.ParameterTypeFullNames.get -> string![]! +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.ParameterTypeFullNames.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.ReturnTypeFullName.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.ReturnTypeFullName.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.TestMethodIdentifierProperty(string! AssemblyFullName, string! Namespace, string! TypeName, string! MethodName, string![]! ParameterTypeFullNames, string! ReturnTypeFullName) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.TypeName.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.TypeName.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestNode +Microsoft.Testing.Platform.Extensions.Messages.TestNode.DisplayName.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestNode.DisplayName.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestNode.Properties.get -> Microsoft.Testing.Platform.Extensions.Messages.PropertyBag! +Microsoft.Testing.Platform.Extensions.Messages.TestNode.Properties.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestNode.TestNode() -> void +Microsoft.Testing.Platform.Extensions.Messages.TestNode.Uid.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! +Microsoft.Testing.Platform.Extensions.Messages.TestNode.Uid.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestNodeFileArtifact +Microsoft.Testing.Platform.Extensions.Messages.TestNodeFileArtifact.TestNode.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNode! +Microsoft.Testing.Platform.Extensions.Messages.TestNodeFileArtifact.TestNodeFileArtifact(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode, System.IO.FileInfo! fileInfo, string! displayName, string? description = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty +Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Explanation.get -> string? +Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Explanation.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.TestNodeStateProperty(string? Explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid +Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.TestNodeUid(string! value) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.Value.get -> string! +Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.Value.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage +Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage.ParentTestNodeUid.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid? +Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage.TestNode.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNode! +Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage.TestNodeUpdateMessage(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode, Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid? parentTestNodeUid = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty +Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Exception.get -> System.Exception? +Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Timeout.get -> System.TimeSpan? +Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Timeout.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.TimeoutTestNodeStateProperty() -> void +Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.TimeoutTestNodeStateProperty(string! explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.TimeoutTestNodeStateProperty(System.Exception! exception, string? explanation = null) -> void +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Duration.get -> System.TimeSpan +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Duration.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.EndTime.get -> System.DateTimeOffset +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.EndTime.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.StartTime.get -> System.DateTimeOffset +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.StartTime.init -> void +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.TimingInfo() -> void +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.TimingInfo(System.DateTimeOffset StartTime, System.DateTimeOffset EndTime, System.TimeSpan Duration) -> void +Microsoft.Testing.Platform.Extensions.Messages.TimingProperty +Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.GlobalTiming.get -> Microsoft.Testing.Platform.Extensions.Messages.TimingInfo +Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.StepTimings.get -> Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo![]! +Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.TimingProperty(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo globalTiming) -> void +Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.TimingProperty(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo globalTiming, Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo![]! stepTimings) -> void +Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer +Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionContext +Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionContext.CancellationToken.get -> System.Threading.CancellationToken +Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult +Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.CloseTestSessionResult() -> void +Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.ErrorMessage.get -> string? +Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.ErrorMessage.set -> void +Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.IsSuccess.get -> bool +Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.IsSuccess.set -> void +Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.WarningMessage.get -> string? +Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.WarningMessage.set -> void +Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionContext +Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionContext.CancellationToken.get -> System.Threading.CancellationToken +Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult +Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.CreateTestSessionResult() -> void +Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.ErrorMessage.get -> string? +Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.ErrorMessage.set -> void +Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.IsSuccess.get -> bool +Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.IsSuccess.set -> void +Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.WarningMessage.get -> string? +Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.WarningMessage.set -> void +Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext +Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext.CancellationToken.get -> System.Threading.CancellationToken +Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext.Complete() -> void +Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext.MessageBus.get -> Microsoft.Testing.Platform.Messages.IMessageBus! +Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext.Request.get -> Microsoft.Testing.Platform.Requests.IRequest! +Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework +Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework.CloseTestSessionAsync(Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionContext! context) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework.CreateTestSessionAsync(Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionContext! context) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework.ExecuteRequestAsync(Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext! context) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.TestHost.IDataConsumer +Microsoft.Testing.Platform.Extensions.TestHost.IDataConsumer.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.TestHost.IDataConsumer.DataTypesConsumed.get -> System.Type![]! +Microsoft.Testing.Platform.Extensions.TestHost.ITestApplicationLifecycleCallbacks +Microsoft.Testing.Platform.Extensions.TestHost.ITestApplicationLifecycleCallbacks.AfterRunAsync(int exitCode, System.Threading.CancellationToken cancellation) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.TestHost.ITestApplicationLifecycleCallbacks.BeforeRunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.TestHost.ITestHostExtension +Microsoft.Testing.Platform.Extensions.TestHost.ITestSessionLifetimeHandler +Microsoft.Testing.Platform.Extensions.TestHost.ITestSessionLifetimeHandler.OnTestSessionFinishingAsync(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.TestHost.ITestSessionLifetimeHandler.OnTestSessionStartingAsync(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable +Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable.EnvironmentVariable(string! variable, string? value, bool isSecret, bool isLocked) -> void +Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable.IsLocked.get -> bool +Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable.IsSecret.get -> bool +Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable.Value.get -> string? +Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable.Variable.get -> string! +Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables +Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables.RemoveVariable(string! variable) -> void +Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables.SetVariable(Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable! environmentVariable) -> void +Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables +Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables.TryGetVariable(string! variable, out Microsoft.Testing.Platform.Extensions.TestHostControllers.OwnedEnvironmentVariable? environmentVariable) -> bool +Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostControllersExtension +Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostEnvironmentVariableProvider +Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostEnvironmentVariableProvider.UpdateAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostEnvironmentVariableProvider.ValidateTestHostEnvironmentVariablesAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation +Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation.ExitCode.get -> int +Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation.HasExitedGracefully.get -> bool +Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation.PID.get -> int +Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessLifetimeHandler +Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessLifetimeHandler.BeforeTestHostProcessStartAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessLifetimeHandler.OnTestHostProcessExitedAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation! testHostProcessInformation, System.Threading.CancellationToken cancellation) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessLifetimeHandler.OnTestHostProcessStartedAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation! testHostProcessInformation, System.Threading.CancellationToken cancellation) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Extensions.TestHostControllers.OwnedEnvironmentVariable +Microsoft.Testing.Platform.Extensions.TestHostControllers.OwnedEnvironmentVariable.OwnedEnvironmentVariable(Microsoft.Testing.Platform.Extensions.IExtension! owner, string! variable, string? value, bool isSecret, bool isLocked) -> void +Microsoft.Testing.Platform.Extensions.TestHostControllers.OwnedEnvironmentVariable.Owner.get -> Microsoft.Testing.Platform.Extensions.IExtension! +Microsoft.Testing.Platform.Extensions.ValidationResult +Microsoft.Testing.Platform.Extensions.ValidationResult.ErrorMessage.get -> string? +Microsoft.Testing.Platform.Extensions.ValidationResult.IsValid.get -> bool +Microsoft.Testing.Platform.Extensions.ValidationResult.ValidationResult() -> void +Microsoft.Testing.Platform.Logging.ILogger +Microsoft.Testing.Platform.Logging.ILogger.IsEnabled(Microsoft.Testing.Platform.Logging.LogLevel logLevel) -> bool +Microsoft.Testing.Platform.Logging.ILogger.Log(Microsoft.Testing.Platform.Logging.LogLevel logLevel, TState state, System.Exception? exception, System.Func! formatter) -> void +Microsoft.Testing.Platform.Logging.ILogger.LogAsync(Microsoft.Testing.Platform.Logging.LogLevel logLevel, TState state, System.Exception? exception, System.Func! formatter) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.Logging.ILogger +Microsoft.Testing.Platform.Logging.ILoggerFactory +Microsoft.Testing.Platform.Logging.ILoggerFactory.CreateLogger(string! categoryName) -> Microsoft.Testing.Platform.Logging.ILogger! +Microsoft.Testing.Platform.Logging.LoggerFactoryExtensions +Microsoft.Testing.Platform.Logging.LoggingExtensions +Microsoft.Testing.Platform.Logging.LogLevel +Microsoft.Testing.Platform.Logging.LogLevel.Critical = 5 -> Microsoft.Testing.Platform.Logging.LogLevel +Microsoft.Testing.Platform.Logging.LogLevel.Debug = 1 -> Microsoft.Testing.Platform.Logging.LogLevel +Microsoft.Testing.Platform.Logging.LogLevel.Error = 4 -> Microsoft.Testing.Platform.Logging.LogLevel +Microsoft.Testing.Platform.Logging.LogLevel.Information = 2 -> Microsoft.Testing.Platform.Logging.LogLevel +Microsoft.Testing.Platform.Logging.LogLevel.None = 6 -> Microsoft.Testing.Platform.Logging.LogLevel +Microsoft.Testing.Platform.Logging.LogLevel.Trace = 0 -> Microsoft.Testing.Platform.Logging.LogLevel +Microsoft.Testing.Platform.Logging.LogLevel.Warning = 3 -> Microsoft.Testing.Platform.Logging.LogLevel +Microsoft.Testing.Platform.Messages.IMessageBus +Microsoft.Testing.Platform.Messages.IMessageBus.PublishAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! data) -> System.Threading.Tasks.Task! +Microsoft.Testing.Platform.OutputDevice.ExceptionOutputDeviceData +Microsoft.Testing.Platform.OutputDevice.ExceptionOutputDeviceData.Exception.get -> System.Exception! +Microsoft.Testing.Platform.OutputDevice.ExceptionOutputDeviceData.ExceptionOutputDeviceData(System.Exception! exception) -> void +Microsoft.Testing.Platform.OutputDevice.FormattedTextOutputDeviceData +Microsoft.Testing.Platform.OutputDevice.FormattedTextOutputDeviceData.BackgroundColor.get -> Microsoft.Testing.Platform.OutputDevice.IColor? +Microsoft.Testing.Platform.OutputDevice.FormattedTextOutputDeviceData.BackgroundColor.init -> void +Microsoft.Testing.Platform.OutputDevice.FormattedTextOutputDeviceData.ForegroundColor.get -> Microsoft.Testing.Platform.OutputDevice.IColor? +Microsoft.Testing.Platform.OutputDevice.FormattedTextOutputDeviceData.ForegroundColor.init -> void +Microsoft.Testing.Platform.OutputDevice.FormattedTextOutputDeviceData.FormattedTextOutputDeviceData(string! text) -> void +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.Tasks.Task! +Microsoft.Testing.Platform.OutputDevice.IOutputDeviceData +Microsoft.Testing.Platform.OutputDevice.SystemConsoleColor +Microsoft.Testing.Platform.OutputDevice.SystemConsoleColor.ConsoleColor.get -> System.ConsoleColor +Microsoft.Testing.Platform.OutputDevice.SystemConsoleColor.ConsoleColor.init -> void +Microsoft.Testing.Platform.OutputDevice.SystemConsoleColor.SystemConsoleColor() -> void +Microsoft.Testing.Platform.OutputDevice.TextOutputDeviceData +Microsoft.Testing.Platform.OutputDevice.TextOutputDeviceData.Text.get -> string! +Microsoft.Testing.Platform.OutputDevice.TextOutputDeviceData.TextOutputDeviceData(string! text) -> void +Microsoft.Testing.Platform.Requests.DiscoverTestExecutionRequest +Microsoft.Testing.Platform.Requests.DiscoverTestExecutionRequest.DiscoverTestExecutionRequest(Microsoft.Testing.Platform.TestHost.TestSessionContext! session) -> void +Microsoft.Testing.Platform.Requests.DiscoverTestExecutionRequest.DiscoverTestExecutionRequest(Microsoft.Testing.Platform.TestHost.TestSessionContext! session, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! executionFilter) -> void +Microsoft.Testing.Platform.Requests.IRequest +Microsoft.Testing.Platform.Requests.IRequest.Session.get -> Microsoft.Testing.Platform.TestHost.TestSessionContext! +Microsoft.Testing.Platform.Requests.ITestExecutionFilter +Microsoft.Testing.Platform.Requests.RunTestExecutionRequest +Microsoft.Testing.Platform.Requests.RunTestExecutionRequest.RunTestExecutionRequest(Microsoft.Testing.Platform.TestHost.TestSessionContext! session) -> void +Microsoft.Testing.Platform.Requests.RunTestExecutionRequest.RunTestExecutionRequest(Microsoft.Testing.Platform.TestHost.TestSessionContext! session, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! executionFilter) -> void +Microsoft.Testing.Platform.Requests.TestExecutionRequest +Microsoft.Testing.Platform.Requests.TestExecutionRequest.Filter.get -> Microsoft.Testing.Platform.Requests.ITestExecutionFilter! +Microsoft.Testing.Platform.Requests.TestExecutionRequest.Session.get -> Microsoft.Testing.Platform.TestHost.TestSessionContext! +Microsoft.Testing.Platform.Requests.TestExecutionRequest.TestExecutionRequest(Microsoft.Testing.Platform.TestHost.TestSessionContext! session, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter) -> void +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.ServiceProviderExtensions +Microsoft.Testing.Platform.TestHost.ClientInfo +Microsoft.Testing.Platform.TestHost.ClientInfo.Id.get -> string! +Microsoft.Testing.Platform.TestHost.ClientInfo.Version.get -> string! +Microsoft.Testing.Platform.TestHost.ITestHostManager +Microsoft.Testing.Platform.TestHost.ITestHostManager.AddDataConsumer(System.Func! dataConsumerFactory) -> void +Microsoft.Testing.Platform.TestHost.ITestHostManager.AddDataConsumer(Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory! compositeServiceFactory) -> void +Microsoft.Testing.Platform.TestHost.ITestHostManager.AddTestApplicationLifecycleCallbacks(System.Func! testApplicationLifecycleCallbacks) -> void +Microsoft.Testing.Platform.TestHost.ITestHostManager.AddTestSessionLifetimeHandle(System.Func! testSessionLifetimeHandleFactory) -> void +Microsoft.Testing.Platform.TestHost.ITestHostManager.AddTestSessionLifetimeHandle(Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory! compositeServiceFactory) -> void +Microsoft.Testing.Platform.TestHost.SessionUid +Microsoft.Testing.Platform.TestHost.SessionUid.SessionUid() -> void +Microsoft.Testing.Platform.TestHost.SessionUid.SessionUid(string! value) -> void +Microsoft.Testing.Platform.TestHost.SessionUid.Value.get -> string! +Microsoft.Testing.Platform.TestHost.TestSessionContext +Microsoft.Testing.Platform.TestHost.TestSessionContext.Client.get -> Microsoft.Testing.Platform.TestHost.ClientInfo! +Microsoft.Testing.Platform.TestHost.TestSessionContext.SessionUid.get -> Microsoft.Testing.Platform.TestHost.SessionUid +Microsoft.Testing.Platform.TestHost.WellKnownClients +Microsoft.Testing.Platform.TestHostControllers.ITestHostControllersManager +Microsoft.Testing.Platform.TestHostControllers.ITestHostControllersManager.AddEnvironmentVariableProvider(System.Func! environmentVariableProviderFactory) -> void +Microsoft.Testing.Platform.TestHostControllers.ITestHostControllersManager.AddEnvironmentVariableProvider(Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory! compositeServiceFactory) -> void +Microsoft.Testing.Platform.TestHostControllers.ITestHostControllersManager.AddProcessLifetimeHandler(System.Func! lifetimeHandler) -> void +Microsoft.Testing.Platform.TestHostControllers.ITestHostControllersManager.AddProcessLifetimeHandler(Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory! compositeServiceFactory) -> void +override Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.Equals(object? obj) -> bool +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.DataWithSessionUid.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.FileArtifact.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.PropertyBagData.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.SessionFileArtifact.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TestNode.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TestNodeFileArtifact.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage.ToString() -> string! +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.Configurations.ConfigurationExtensions.GetCurrentWorkingDirectory(this Microsoft.Testing.Platform.Configurations.IConfiguration! configuration) -> string! +static Microsoft.Testing.Platform.Configurations.ConfigurationExtensions.GetTestHostWorkingDirectory(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.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.PassedTestNodeStateProperty.CachedInstance.get -> Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty! +static Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.CachedInstance.get -> Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty! +static Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.implicit operator Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid!(string! value) -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! +static Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.implicit operator string!(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! testNode) -> string! +static Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! left, Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! left, Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! right) -> bool +static Microsoft.Testing.Platform.Extensions.ValidationResult.Invalid(string! errorMessage) -> Microsoft.Testing.Platform.Extensions.ValidationResult +static Microsoft.Testing.Platform.Extensions.ValidationResult.InvalidTask(string! errorMessage) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Extensions.ValidationResult.Valid() -> Microsoft.Testing.Platform.Extensions.ValidationResult +static Microsoft.Testing.Platform.Extensions.ValidationResult.ValidTask.get -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Logging.LoggerFactoryExtensions.CreateLogger(this Microsoft.Testing.Platform.Logging.ILoggerFactory! factory) -> Microsoft.Testing.Platform.Logging.ILogger! +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogCritical(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> void +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogCriticalAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogDebug(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> void +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogDebugAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogError(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> void +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogError(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message, System.Exception! ex) -> void +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogError(this Microsoft.Testing.Platform.Logging.ILogger! logger, System.Exception! ex) -> void +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogErrorAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogErrorAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message, System.Exception! ex) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogErrorAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, System.Exception! ex) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogInformation(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> void +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogInformationAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> System.Threading.Tasks.Task! +static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogTrace(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> void +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.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.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! +static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetRequiredService(this System.IServiceProvider! provider) -> TService +static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetService(this System.IServiceProvider! provider) -> TService? +static readonly Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.ExactlyOne -> Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity +static readonly Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.OneOrMore -> Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity +static readonly Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.Zero -> Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity +static readonly Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.ZeroOrMore -> Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity +static readonly Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.ZeroOrOne -> Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity +static readonly Microsoft.Testing.Platform.TestHost.WellKnownClients.TestingPlatformConsole -> string! +static readonly Microsoft.Testing.Platform.TestHost.WellKnownClients.VisualStudio -> string! diff --git a/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Unshipped.txt index 1956400819..815c92006a 100644 --- a/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/PublicAPI/PublicAPI.Unshipped.txt @@ -1,440 +1 @@ -#nullable enable -Microsoft.Testing.Platform.Builder.ConfigurationOptions -Microsoft.Testing.Platform.Builder.ConfigurationOptions.ConfigurationOptions() -> void -Microsoft.Testing.Platform.Builder.ConfigurationOptions.ConfigurationSources.get -> Microsoft.Testing.Platform.Builder.ConfigurationSourcesOptions! -Microsoft.Testing.Platform.Builder.ConfigurationSourcesOptions -Microsoft.Testing.Platform.Builder.ConfigurationSourcesOptions.ConfigurationSourcesOptions() -> void -Microsoft.Testing.Platform.Builder.ConfigurationSourcesOptions.RegisterEnvironmentVariablesConfigurationSource.get -> bool -Microsoft.Testing.Platform.Builder.ConfigurationSourcesOptions.RegisterEnvironmentVariablesConfigurationSource.set -> void -Microsoft.Testing.Platform.Builder.ITestApplication -Microsoft.Testing.Platform.Builder.ITestApplication.RunAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Builder.ITestApplicationBuilder -Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.BuildAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.CommandLine.get -> Microsoft.Testing.Platform.CommandLine.ICommandLineManager! -Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.RegisterTestFramework(System.Func! capabilitiesFactory, System.Func! adapterFactory) -> Microsoft.Testing.Platform.Builder.ITestApplicationBuilder! -Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.TestHost.get -> Microsoft.Testing.Platform.TestHost.ITestHostManager! -Microsoft.Testing.Platform.Builder.ITestApplicationBuilder.TestHostControllers.get -> Microsoft.Testing.Platform.TestHostControllers.ITestHostControllersManager! -Microsoft.Testing.Platform.Builder.TestApplication -Microsoft.Testing.Platform.Builder.TestApplication.Dispose() -> void -Microsoft.Testing.Platform.Builder.TestApplication.RunAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Builder.TestApplicationOptions -Microsoft.Testing.Platform.Builder.TestApplicationOptions.Configuration.get -> Microsoft.Testing.Platform.Builder.ConfigurationOptions! -Microsoft.Testing.Platform.Builder.TestApplicationOptions.EnableTelemetry.get -> bool -Microsoft.Testing.Platform.Builder.TestApplicationOptions.EnableTelemetry.set -> void -Microsoft.Testing.Platform.Builder.TestApplicationOptions.TestApplicationOptions() -> void -Microsoft.Testing.Platform.Capabilities.ICapabilities -Microsoft.Testing.Platform.Capabilities.ICapabilities.Capabilities.get -> System.Collections.Generic.IReadOnlyCollection! -Microsoft.Testing.Platform.Capabilities.ICapability -Microsoft.Testing.Platform.Capabilities.TestFramework.ITestFrameworkCapabilities -Microsoft.Testing.Platform.Capabilities.TestFramework.ITestFrameworkCapability -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.ICommandLineManager -Microsoft.Testing.Platform.CommandLine.ICommandLineManager.AddProvider(System.Func! commandLineProviderFactory) -> void -Microsoft.Testing.Platform.CommandLine.ICommandLineOptions -Microsoft.Testing.Platform.CommandLine.ICommandLineOptions.IsOptionSet(string! optionName) -> bool -Microsoft.Testing.Platform.CommandLine.ICommandLineOptions.TryGetOptionArgumentList(string! optionName, out string![]? arguments) -> bool -Microsoft.Testing.Platform.Configurations.ConfigurationExtensions -Microsoft.Testing.Platform.Configurations.IConfiguration -Microsoft.Testing.Platform.Configurations.IConfiguration.this[string! key].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 -Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.Equals(Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity other) -> bool -Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.Max.get -> int -Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.Min.get -> int -Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption -Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.Arity.get -> Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity -Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.CommandLineOption(string! name, string! description, Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity arity, bool isHidden) -> void -Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.Description.get -> string! -Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.Equals(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption? other) -> bool -Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.IsHidden.get -> bool -Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption.Name.get -> string! -Microsoft.Testing.Platform.Extensions.CommandLine.ICommandLineOptionsProvider -Microsoft.Testing.Platform.Extensions.CommandLine.ICommandLineOptionsProvider.GetCommandLineOptions() -> System.Collections.Generic.IReadOnlyCollection! -Microsoft.Testing.Platform.Extensions.CommandLine.ICommandLineOptionsProvider.ValidateCommandLineOptionsAsync(Microsoft.Testing.Platform.CommandLine.ICommandLineOptions! commandLineOptions) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.CommandLine.ICommandLineOptionsProvider.ValidateOptionArgumentsAsync(Microsoft.Testing.Platform.Extensions.CommandLine.CommandLineOption! commandOption, string![]! arguments) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory -Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory.CompositeExtensionFactory(System.Func! factory) -> void -Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory.CompositeExtensionFactory(System.Func! factory) -> void -Microsoft.Testing.Platform.Extensions.IAsyncCleanableExtension -Microsoft.Testing.Platform.Extensions.IAsyncCleanableExtension.CleanupAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.IAsyncInitializableExtension -Microsoft.Testing.Platform.Extensions.IAsyncInitializableExtension.InitializeAsync() -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.IExtension -Microsoft.Testing.Platform.Extensions.IExtension.Description.get -> string! -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.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.Exception.get -> System.Exception? -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 -Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty -Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.DiscoveredTestNodeStateProperty(string? Explanation = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty -Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.ErrorTestNodeStateProperty() -> void -Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.ErrorTestNodeStateProperty(string! explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.ErrorTestNodeStateProperty(System.Exception! exception, string? explanation = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Exception.get -> System.Exception? -Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty -Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Exception.get -> System.Exception? -Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.FailedTestNodeStateProperty() -> void -Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.FailedTestNodeStateProperty(string! explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.FailedTestNodeStateProperty(System.Exception! exception, string? explanation = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.FileArtifact -Microsoft.Testing.Platform.Extensions.Messages.FileArtifact.FileArtifact(System.IO.FileInfo! fileInfo, string! displayName, string? description = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.FileArtifact.FileInfo.get -> System.IO.FileInfo! -Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty -Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.FileLocationProperty(string! FilePath, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan LineSpan) -> void -Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.FilePath.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.FilePath.init -> void -Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.LineSpan.get -> Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan -Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.LineSpan.init -> void -Microsoft.Testing.Platform.Extensions.Messages.IData -Microsoft.Testing.Platform.Extensions.Messages.IData.Description.get -> string? -Microsoft.Testing.Platform.Extensions.Messages.IData.DisplayName.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.IDataProducer -Microsoft.Testing.Platform.Extensions.Messages.IDataProducer.DataTypesProduced.get -> System.Type![]! -Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty -Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.InProgressTestNodeStateProperty(string? Explanation = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.IProperty -Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty -Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Key.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Key.init -> void -Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.KeyValuePairStringProperty(string! Key, string! Value) -> void -Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Value.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Value.init -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePosition -Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Column.get -> int -Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Column.set -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Line.get -> int -Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Line.set -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePosition.LinePosition() -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePosition.LinePosition(int Line, int Column) -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan -Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.End.get -> Microsoft.Testing.Platform.Extensions.Messages.LinePosition -Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.End.set -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.LinePositionSpan() -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.LinePositionSpan(Microsoft.Testing.Platform.Extensions.Messages.LinePosition Start, Microsoft.Testing.Platform.Extensions.Messages.LinePosition End) -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Start.get -> Microsoft.Testing.Platform.Extensions.Messages.LinePosition -Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Start.set -> void -Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty -Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.PassedTestNodeStateProperty(string? Explanation = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.PropertyBag -Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.Add(Microsoft.Testing.Platform.Extensions.Messages.IProperty! property) -> void -Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.Any() -> bool -Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.AsEnumerable() -> System.Collections.Generic.IEnumerable! -Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.Count.get -> int -Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.GetEnumerator() -> System.Collections.Generic.IEnumerator! -Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.OfType() -> TProperty[]! -Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.PropertyBag() -> void -Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.PropertyBag(params Microsoft.Testing.Platform.Extensions.Messages.IProperty![]! properties) -> void -Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.PropertyBag(System.Collections.Generic.IEnumerable! properties) -> void -Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.Single() -> TProperty -Microsoft.Testing.Platform.Extensions.Messages.PropertyBag.SingleOrDefault() -> TProperty? -Microsoft.Testing.Platform.Extensions.Messages.PropertyBagData -Microsoft.Testing.Platform.Extensions.Messages.PropertyBagData.Description.get -> string? -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.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 -Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty -Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.SkippedTestNodeStateProperty(string? Explanation = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo -Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Description.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Description.init -> void -Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Id.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Id.init -> void -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.StepTimingInfo.Timing.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty -Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.TestFileLocationProperty(string! FilePath, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan LineSpan) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty -Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Key.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Key.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.TestMetadataProperty(string! Key, string! Value) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Value.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Value.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.AssemblyFullName.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.AssemblyFullName.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.MethodName.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.MethodName.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Namespace.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Namespace.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.ParameterTypeFullNames.get -> string![]! -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.ParameterTypeFullNames.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.ReturnTypeFullName.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.ReturnTypeFullName.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.TestMethodIdentifierProperty(string! AssemblyFullName, string! Namespace, string! TypeName, string! MethodName, string![]! ParameterTypeFullNames, string! ReturnTypeFullName) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.TypeName.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.TypeName.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestNode -Microsoft.Testing.Platform.Extensions.Messages.TestNode.DisplayName.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestNode.DisplayName.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestNode.Properties.get -> Microsoft.Testing.Platform.Extensions.Messages.PropertyBag! -Microsoft.Testing.Platform.Extensions.Messages.TestNode.Properties.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestNode.TestNode() -> void -Microsoft.Testing.Platform.Extensions.Messages.TestNode.Uid.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! -Microsoft.Testing.Platform.Extensions.Messages.TestNode.Uid.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestNodeFileArtifact -Microsoft.Testing.Platform.Extensions.Messages.TestNodeFileArtifact.TestNode.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNode! -Microsoft.Testing.Platform.Extensions.Messages.TestNodeFileArtifact.TestNodeFileArtifact(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode, System.IO.FileInfo! fileInfo, string! displayName, string? description = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty -Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Explanation.get -> string? -Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Explanation.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.TestNodeStateProperty(string? Explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid -Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.TestNodeUid(string! value) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.Value.get -> string! -Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.Value.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage -Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage.ParentTestNodeUid.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid? -Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage.TestNode.get -> Microsoft.Testing.Platform.Extensions.Messages.TestNode! -Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage.TestNodeUpdateMessage(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, Microsoft.Testing.Platform.Extensions.Messages.TestNode! testNode, Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid? parentTestNodeUid = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty -Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Exception.get -> System.Exception? -Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Timeout.get -> System.TimeSpan? -Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Timeout.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.TimeoutTestNodeStateProperty() -> void -Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.TimeoutTestNodeStateProperty(string! explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.TimeoutTestNodeStateProperty(System.Exception! exception, string? explanation = null) -> void -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Duration.get -> System.TimeSpan -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Duration.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.EndTime.get -> System.DateTimeOffset -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.EndTime.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.StartTime.get -> System.DateTimeOffset -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.StartTime.init -> void -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.TimingInfo() -> void -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.TimingInfo(System.DateTimeOffset StartTime, System.DateTimeOffset EndTime, System.TimeSpan Duration) -> void -Microsoft.Testing.Platform.Extensions.Messages.TimingProperty -Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.GlobalTiming.get -> Microsoft.Testing.Platform.Extensions.Messages.TimingInfo -Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.StepTimings.get -> Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo![]! -Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.TimingProperty(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo globalTiming) -> void -Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.TimingProperty(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo globalTiming, Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo![]! stepTimings) -> void -Microsoft.Testing.Platform.Extensions.OutputDevice.IOutputDeviceDataProducer -Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionContext -Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionContext.CancellationToken.get -> System.Threading.CancellationToken -Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult -Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.CloseTestSessionResult() -> void -Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.ErrorMessage.get -> string? -Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.ErrorMessage.set -> void -Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.IsSuccess.get -> bool -Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.IsSuccess.set -> void -Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.WarningMessage.get -> string? -Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionResult.WarningMessage.set -> void -Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionContext -Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionContext.CancellationToken.get -> System.Threading.CancellationToken -Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult -Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.CreateTestSessionResult() -> void -Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.ErrorMessage.get -> string? -Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.ErrorMessage.set -> void -Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.IsSuccess.get -> bool -Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.IsSuccess.set -> void -Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.WarningMessage.get -> string? -Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionResult.WarningMessage.set -> void -Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext -Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext.CancellationToken.get -> System.Threading.CancellationToken -Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext.Complete() -> void -Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext.MessageBus.get -> Microsoft.Testing.Platform.Messages.IMessageBus! -Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext.Request.get -> Microsoft.Testing.Platform.Requests.IRequest! -Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework -Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework.CloseTestSessionAsync(Microsoft.Testing.Platform.Extensions.TestFramework.CloseTestSessionContext! context) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework.CreateTestSessionAsync(Microsoft.Testing.Platform.Extensions.TestFramework.CreateTestSessionContext! context) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.TestFramework.ITestFramework.ExecuteRequestAsync(Microsoft.Testing.Platform.Extensions.TestFramework.ExecuteRequestContext! context) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.TestHost.IDataConsumer -Microsoft.Testing.Platform.Extensions.TestHost.IDataConsumer.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.TestHost.IDataConsumer.DataTypesConsumed.get -> System.Type![]! -Microsoft.Testing.Platform.Extensions.TestHost.ITestApplicationLifecycleCallbacks -Microsoft.Testing.Platform.Extensions.TestHost.ITestApplicationLifecycleCallbacks.AfterRunAsync(int exitCode, System.Threading.CancellationToken cancellation) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.TestHost.ITestApplicationLifecycleCallbacks.BeforeRunAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.TestHost.ITestHostExtension -Microsoft.Testing.Platform.Extensions.TestHost.ITestSessionLifetimeHandler -Microsoft.Testing.Platform.Extensions.TestHost.ITestSessionLifetimeHandler.OnTestSessionFinishingAsync(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.TestHost.ITestSessionLifetimeHandler.OnTestSessionStartingAsync(Microsoft.Testing.Platform.TestHost.SessionUid sessionUid, System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable -Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable.EnvironmentVariable(string! variable, string? value, bool isSecret, bool isLocked) -> void -Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable.IsLocked.get -> bool -Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable.IsSecret.get -> bool -Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable.Value.get -> string? -Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable.Variable.get -> string! -Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables -Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables.RemoveVariable(string! variable) -> void -Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables.SetVariable(Microsoft.Testing.Platform.Extensions.TestHostControllers.EnvironmentVariable! environmentVariable) -> void -Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables -Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables.TryGetVariable(string! variable, out Microsoft.Testing.Platform.Extensions.TestHostControllers.OwnedEnvironmentVariable? environmentVariable) -> bool -Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostControllersExtension -Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostEnvironmentVariableProvider -Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostEnvironmentVariableProvider.UpdateAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostEnvironmentVariableProvider.ValidateTestHostEnvironmentVariablesAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.IReadOnlyEnvironmentVariables! environmentVariables) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation -Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation.ExitCode.get -> int -Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation.HasExitedGracefully.get -> bool -Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation.PID.get -> int -Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessLifetimeHandler -Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessLifetimeHandler.BeforeTestHostProcessStartAsync(System.Threading.CancellationToken cancellationToken) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessLifetimeHandler.OnTestHostProcessExitedAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation! testHostProcessInformation, System.Threading.CancellationToken cancellation) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessLifetimeHandler.OnTestHostProcessStartedAsync(Microsoft.Testing.Platform.Extensions.TestHostControllers.ITestHostProcessInformation! testHostProcessInformation, System.Threading.CancellationToken cancellation) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Extensions.TestHostControllers.OwnedEnvironmentVariable -Microsoft.Testing.Platform.Extensions.TestHostControllers.OwnedEnvironmentVariable.OwnedEnvironmentVariable(Microsoft.Testing.Platform.Extensions.IExtension! owner, string! variable, string? value, bool isSecret, bool isLocked) -> void -Microsoft.Testing.Platform.Extensions.TestHostControllers.OwnedEnvironmentVariable.Owner.get -> Microsoft.Testing.Platform.Extensions.IExtension! -Microsoft.Testing.Platform.Extensions.ValidationResult -Microsoft.Testing.Platform.Extensions.ValidationResult.ErrorMessage.get -> string? -Microsoft.Testing.Platform.Extensions.ValidationResult.IsValid.get -> bool -Microsoft.Testing.Platform.Extensions.ValidationResult.ValidationResult() -> void -Microsoft.Testing.Platform.Logging.ILogger -Microsoft.Testing.Platform.Logging.ILogger.IsEnabled(Microsoft.Testing.Platform.Logging.LogLevel logLevel) -> bool -Microsoft.Testing.Platform.Logging.ILogger.Log(Microsoft.Testing.Platform.Logging.LogLevel logLevel, TState state, System.Exception? exception, System.Func! formatter) -> void -Microsoft.Testing.Platform.Logging.ILogger.LogAsync(Microsoft.Testing.Platform.Logging.LogLevel logLevel, TState state, System.Exception? exception, System.Func! formatter) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.Logging.ILogger -Microsoft.Testing.Platform.Logging.ILoggerFactory -Microsoft.Testing.Platform.Logging.ILoggerFactory.CreateLogger(string! categoryName) -> Microsoft.Testing.Platform.Logging.ILogger! -Microsoft.Testing.Platform.Logging.LoggerFactoryExtensions -Microsoft.Testing.Platform.Logging.LoggingExtensions -Microsoft.Testing.Platform.Logging.LogLevel -Microsoft.Testing.Platform.Logging.LogLevel.Critical = 5 -> Microsoft.Testing.Platform.Logging.LogLevel -Microsoft.Testing.Platform.Logging.LogLevel.Debug = 1 -> Microsoft.Testing.Platform.Logging.LogLevel -Microsoft.Testing.Platform.Logging.LogLevel.Error = 4 -> Microsoft.Testing.Platform.Logging.LogLevel -Microsoft.Testing.Platform.Logging.LogLevel.Information = 2 -> Microsoft.Testing.Platform.Logging.LogLevel -Microsoft.Testing.Platform.Logging.LogLevel.None = 6 -> Microsoft.Testing.Platform.Logging.LogLevel -Microsoft.Testing.Platform.Logging.LogLevel.Trace = 0 -> Microsoft.Testing.Platform.Logging.LogLevel -Microsoft.Testing.Platform.Logging.LogLevel.Warning = 3 -> Microsoft.Testing.Platform.Logging.LogLevel -Microsoft.Testing.Platform.Messages.IMessageBus -Microsoft.Testing.Platform.Messages.IMessageBus.PublishAsync(Microsoft.Testing.Platform.Extensions.Messages.IDataProducer! dataProducer, Microsoft.Testing.Platform.Extensions.Messages.IData! data) -> System.Threading.Tasks.Task! -Microsoft.Testing.Platform.OutputDevice.ExceptionOutputDeviceData -Microsoft.Testing.Platform.OutputDevice.ExceptionOutputDeviceData.Exception.get -> System.Exception! -Microsoft.Testing.Platform.OutputDevice.ExceptionOutputDeviceData.ExceptionOutputDeviceData(System.Exception! exception) -> void -Microsoft.Testing.Platform.OutputDevice.FormattedTextOutputDeviceData -Microsoft.Testing.Platform.OutputDevice.FormattedTextOutputDeviceData.BackgroundColor.get -> Microsoft.Testing.Platform.OutputDevice.IColor? -Microsoft.Testing.Platform.OutputDevice.FormattedTextOutputDeviceData.BackgroundColor.init -> void -Microsoft.Testing.Platform.OutputDevice.FormattedTextOutputDeviceData.ForegroundColor.get -> Microsoft.Testing.Platform.OutputDevice.IColor? -Microsoft.Testing.Platform.OutputDevice.FormattedTextOutputDeviceData.ForegroundColor.init -> void -Microsoft.Testing.Platform.OutputDevice.FormattedTextOutputDeviceData.FormattedTextOutputDeviceData(string! text) -> void -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.Tasks.Task! -Microsoft.Testing.Platform.OutputDevice.IOutputDeviceData -Microsoft.Testing.Platform.OutputDevice.SystemConsoleColor -Microsoft.Testing.Platform.OutputDevice.SystemConsoleColor.ConsoleColor.get -> System.ConsoleColor -Microsoft.Testing.Platform.OutputDevice.SystemConsoleColor.ConsoleColor.init -> void -Microsoft.Testing.Platform.OutputDevice.SystemConsoleColor.SystemConsoleColor() -> void -Microsoft.Testing.Platform.OutputDevice.TextOutputDeviceData -Microsoft.Testing.Platform.OutputDevice.TextOutputDeviceData.Text.get -> string! -Microsoft.Testing.Platform.OutputDevice.TextOutputDeviceData.TextOutputDeviceData(string! text) -> void -Microsoft.Testing.Platform.Requests.DiscoverTestExecutionRequest -Microsoft.Testing.Platform.Requests.DiscoverTestExecutionRequest.DiscoverTestExecutionRequest(Microsoft.Testing.Platform.TestHost.TestSessionContext! session) -> void -Microsoft.Testing.Platform.Requests.DiscoverTestExecutionRequest.DiscoverTestExecutionRequest(Microsoft.Testing.Platform.TestHost.TestSessionContext! session, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! executionFilter) -> void -Microsoft.Testing.Platform.Requests.IRequest -Microsoft.Testing.Platform.Requests.IRequest.Session.get -> Microsoft.Testing.Platform.TestHost.TestSessionContext! -Microsoft.Testing.Platform.Requests.ITestExecutionFilter -Microsoft.Testing.Platform.Requests.RunTestExecutionRequest -Microsoft.Testing.Platform.Requests.RunTestExecutionRequest.RunTestExecutionRequest(Microsoft.Testing.Platform.TestHost.TestSessionContext! session) -> void -Microsoft.Testing.Platform.Requests.RunTestExecutionRequest.RunTestExecutionRequest(Microsoft.Testing.Platform.TestHost.TestSessionContext! session, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! executionFilter) -> void -Microsoft.Testing.Platform.Requests.TestExecutionRequest -Microsoft.Testing.Platform.Requests.TestExecutionRequest.Filter.get -> Microsoft.Testing.Platform.Requests.ITestExecutionFilter! -Microsoft.Testing.Platform.Requests.TestExecutionRequest.Session.get -> Microsoft.Testing.Platform.TestHost.TestSessionContext! -Microsoft.Testing.Platform.Requests.TestExecutionRequest.TestExecutionRequest(Microsoft.Testing.Platform.TestHost.TestSessionContext! session, Microsoft.Testing.Platform.Requests.ITestExecutionFilter! filter) -> void -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.ServiceProviderExtensions -Microsoft.Testing.Platform.TestHost.ClientInfo -Microsoft.Testing.Platform.TestHost.ClientInfo.Id.get -> string! -Microsoft.Testing.Platform.TestHost.ClientInfo.Version.get -> string! -Microsoft.Testing.Platform.TestHost.ITestHostManager -Microsoft.Testing.Platform.TestHost.ITestHostManager.AddDataConsumer(System.Func! dataConsumerFactory) -> void -Microsoft.Testing.Platform.TestHost.ITestHostManager.AddDataConsumer(Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory! compositeServiceFactory) -> void -Microsoft.Testing.Platform.TestHost.ITestHostManager.AddTestApplicationLifecycleCallbacks(System.Func! testApplicationLifecycleCallbacks) -> void -Microsoft.Testing.Platform.TestHost.ITestHostManager.AddTestSessionLifetimeHandle(System.Func! testSessionLifetimeHandleFactory) -> void -Microsoft.Testing.Platform.TestHost.ITestHostManager.AddTestSessionLifetimeHandle(Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory! compositeServiceFactory) -> void -Microsoft.Testing.Platform.TestHost.SessionUid -Microsoft.Testing.Platform.TestHost.SessionUid.SessionUid() -> void -Microsoft.Testing.Platform.TestHost.SessionUid.SessionUid(string! value) -> void -Microsoft.Testing.Platform.TestHost.SessionUid.Value.get -> string! -Microsoft.Testing.Platform.TestHost.TestSessionContext -Microsoft.Testing.Platform.TestHost.TestSessionContext.Client.get -> Microsoft.Testing.Platform.TestHost.ClientInfo! -Microsoft.Testing.Platform.TestHost.TestSessionContext.SessionUid.get -> Microsoft.Testing.Platform.TestHost.SessionUid -Microsoft.Testing.Platform.TestHost.WellKnownClients -Microsoft.Testing.Platform.TestHostControllers.ITestHostControllersManager -Microsoft.Testing.Platform.TestHostControllers.ITestHostControllersManager.AddEnvironmentVariableProvider(System.Func! environmentVariableProviderFactory) -> void -Microsoft.Testing.Platform.TestHostControllers.ITestHostControllersManager.AddEnvironmentVariableProvider(Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory! compositeServiceFactory) -> void -Microsoft.Testing.Platform.TestHostControllers.ITestHostControllersManager.AddProcessLifetimeHandler(System.Func! lifetimeHandler) -> void -Microsoft.Testing.Platform.TestHostControllers.ITestHostControllersManager.AddProcessLifetimeHandler(Microsoft.Testing.Platform.Extensions.CompositeExtensionFactory! compositeServiceFactory) -> void -override Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.Equals(object? obj) -> bool -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.DataWithSessionUid.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.FileArtifact.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.PropertyBagData.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.SessionFileArtifact.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TestNode.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TestNodeFileArtifact.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TestNodeUpdateMessage.ToString() -> string! -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.Configurations.ConfigurationExtensions.GetCurrentWorkingDirectory(this Microsoft.Testing.Platform.Configurations.IConfiguration! configuration) -> string! -static Microsoft.Testing.Platform.Configurations.ConfigurationExtensions.GetTestHostWorkingDirectory(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.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.PassedTestNodeStateProperty.CachedInstance.get -> Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty! -static Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.CachedInstance.get -> Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty! -static Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.implicit operator Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid!(string! value) -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! -static Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.implicit operator string!(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! testNode) -> string! -static Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! left, Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! left, Microsoft.Testing.Platform.Extensions.Messages.TestNodeUid! right) -> bool -static Microsoft.Testing.Platform.Extensions.ValidationResult.Invalid(string! errorMessage) -> Microsoft.Testing.Platform.Extensions.ValidationResult -static Microsoft.Testing.Platform.Extensions.ValidationResult.InvalidTask(string! errorMessage) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Extensions.ValidationResult.Valid() -> Microsoft.Testing.Platform.Extensions.ValidationResult -static Microsoft.Testing.Platform.Extensions.ValidationResult.ValidTask.get -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Logging.LoggerFactoryExtensions.CreateLogger(this Microsoft.Testing.Platform.Logging.ILoggerFactory! factory) -> Microsoft.Testing.Platform.Logging.ILogger! -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogCritical(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> void -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogCriticalAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogDebug(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> void -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogDebugAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogError(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> void -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogError(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message, System.Exception! ex) -> void -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogError(this Microsoft.Testing.Platform.Logging.ILogger! logger, System.Exception! ex) -> void -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogErrorAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogErrorAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message, System.Exception! ex) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogErrorAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, System.Exception! ex) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogInformation(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> void -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogInformationAsync(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> System.Threading.Tasks.Task! -static Microsoft.Testing.Platform.Logging.LoggingExtensions.LogTrace(this Microsoft.Testing.Platform.Logging.ILogger! logger, string! message) -> void -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.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.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! -static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetRequiredService(this System.IServiceProvider! provider) -> TService -static Microsoft.Testing.Platform.Services.ServiceProviderExtensions.GetService(this System.IServiceProvider! provider) -> TService? -static readonly Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.ExactlyOne -> Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity -static readonly Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.OneOrMore -> Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity -static readonly Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.Zero -> Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity -static readonly Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.ZeroOrMore -> Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity -static readonly Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity.ZeroOrOne -> Microsoft.Testing.Platform.Extensions.CommandLine.ArgumentArity -static readonly Microsoft.Testing.Platform.TestHost.WellKnownClients.TestingPlatformConsole -> string! -static readonly Microsoft.Testing.Platform.TestHost.WellKnownClients.VisualStudio -> string! \ No newline at end of file +#nullable enable \ No newline at end of file diff --git a/src/Platform/Microsoft.Testing.Platform/PublicAPI/net/PublicAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Platform/PublicAPI/net/PublicAPI.Shipped.txt index 7dc5c58110..3cb55ad142 100644 --- a/src/Platform/Microsoft.Testing.Platform/PublicAPI/net/PublicAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/PublicAPI/net/PublicAPI.Shipped.txt @@ -1 +1,164 @@ #nullable enable +~override Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Equals(object obj) -> bool +~override Microsoft.Testing.Platform.Extensions.Messages.LinePosition.ToString() -> string +~override Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Equals(object obj) -> bool +~override Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.ToString() -> string +~override Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Equals(object obj) -> bool +~override Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.ToString() -> string +abstract Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty! +abstract Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! +Microsoft.Testing.Platform.Builder.TestApplication.DisposeAsync() -> System.Threading.Tasks.ValueTask +Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Deconstruct(out string? Explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.Deconstruct(out string! FilePath, out Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan LineSpan) -> void +Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.FileLocationProperty(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty! original) -> void +Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Deconstruct(out string? Explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Deconstruct(out string! Key, out string! Value) -> void +Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.KeyValuePairStringProperty(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty! original) -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Deconstruct(out int Line, out int Column) -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Equals(Microsoft.Testing.Platform.Extensions.Messages.LinePosition other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Deconstruct(out Microsoft.Testing.Platform.Extensions.Messages.LinePosition Start, out Microsoft.Testing.Platform.Extensions.Messages.LinePosition End) -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Equals(Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Deconstruct(out string? Explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Deconstruct(out string? Explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.$() -> Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo! +Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Deconstruct(out string! Id, out string! Description, out Microsoft.Testing.Platform.Extensions.Messages.TimingInfo Timing) -> void +Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Equals(Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Deconstruct(out string! FilePath, out Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan LineSpan) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty! +Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Deconstruct(out string! Key, out string! Value) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty! +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Deconstruct(out string! AssemblyFullName, out string! Namespace, out string! TypeName, out string! MethodName, out string![]! ParameterTypeFullNames, out string! ReturnTypeFullName) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Deconstruct(out string? Explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.TestNodeStateProperty(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! original) -> void +Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Deconstruct(out System.DateTimeOffset StartTime, out System.DateTimeOffset EndTime, out System.TimeSpan Duration) -> void +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Equals(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TimingProperty! +Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? other) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty! +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.DiscoveredTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.LinePosition.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty! +override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.ToString() -> string! +override sealed Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? left, Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? left, Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.LinePosition.operator !=(Microsoft.Testing.Platform.Extensions.Messages.LinePosition left, Microsoft.Testing.Platform.Extensions.Messages.LinePosition right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.LinePosition.operator ==(Microsoft.Testing.Platform.Extensions.Messages.LinePosition left, Microsoft.Testing.Platform.Extensions.Messages.LinePosition right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.operator !=(Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan left, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.operator ==(Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan left, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.operator !=(Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? left, Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.operator ==(Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? left, Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo left, Microsoft.Testing.Platform.Extensions.Messages.TimingInfo right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo left, Microsoft.Testing.Platform.Extensions.Messages.TimingInfo right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? right) -> bool +virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.EqualityContract.get -> System.Type! +virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? other) -> bool +virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.PrintMembers(System.Text.StringBuilder! builder) -> bool +virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty! +virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.EqualityContract.get -> System.Type! +virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? other) -> bool +virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.PrintMembers(System.Text.StringBuilder! builder) -> bool +virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.EqualityContract.get -> System.Type! +virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.PrintMembers(System.Text.StringBuilder! builder) -> bool diff --git a/src/Platform/Microsoft.Testing.Platform/PublicAPI/net/PublicAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Platform/PublicAPI/net/PublicAPI.Unshipped.txt index c54911fb42..815c92006a 100644 --- a/src/Platform/Microsoft.Testing.Platform/PublicAPI/net/PublicAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/PublicAPI/net/PublicAPI.Unshipped.txt @@ -1,164 +1 @@ -#nullable enable -~override Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Equals(object obj) -> bool -~override Microsoft.Testing.Platform.Extensions.Messages.LinePosition.ToString() -> string -~override Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Equals(object obj) -> bool -~override Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.ToString() -> string -~override Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Equals(object obj) -> bool -~override Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.ToString() -> string -abstract Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty! -abstract Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! -Microsoft.Testing.Platform.Builder.TestApplication.DisposeAsync() -> System.Threading.Tasks.ValueTask -Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Deconstruct(out string? Explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.Deconstruct(out string! FilePath, out Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan LineSpan) -> void -Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.FileLocationProperty(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty! original) -> void -Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Deconstruct(out string? Explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Deconstruct(out string! Key, out string! Value) -> void -Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.KeyValuePairStringProperty(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty! original) -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Deconstruct(out int Line, out int Column) -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Equals(Microsoft.Testing.Platform.Extensions.Messages.LinePosition other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Deconstruct(out Microsoft.Testing.Platform.Extensions.Messages.LinePosition Start, out Microsoft.Testing.Platform.Extensions.Messages.LinePosition End) -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Equals(Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Deconstruct(out string? Explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Deconstruct(out string? Explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.$() -> Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo! -Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Deconstruct(out string! Id, out string! Description, out Microsoft.Testing.Platform.Extensions.Messages.TimingInfo Timing) -> void -Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Equals(Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Deconstruct(out string! FilePath, out Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan LineSpan) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty! -Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Deconstruct(out string! Key, out string! Value) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty! -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Deconstruct(out string! AssemblyFullName, out string! Namespace, out string! TypeName, out string! MethodName, out string![]! ParameterTypeFullNames, out string! ReturnTypeFullName) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Deconstruct(out string? Explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.TestNodeStateProperty(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! original) -> void -Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Deconstruct(out System.DateTimeOffset StartTime, out System.DateTimeOffset EndTime, out System.TimeSpan Duration) -> void -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Equals(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TimingProperty! -Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? other) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty! -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.DiscoveredTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.LinePosition.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty! -override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.ToString() -> string! -override sealed Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? left, Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? left, Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.LinePosition.operator !=(Microsoft.Testing.Platform.Extensions.Messages.LinePosition left, Microsoft.Testing.Platform.Extensions.Messages.LinePosition right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.LinePosition.operator ==(Microsoft.Testing.Platform.Extensions.Messages.LinePosition left, Microsoft.Testing.Platform.Extensions.Messages.LinePosition right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.operator !=(Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan left, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.operator ==(Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan left, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.operator !=(Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? left, Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.operator ==(Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? left, Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo left, Microsoft.Testing.Platform.Extensions.Messages.TimingInfo right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo left, Microsoft.Testing.Platform.Extensions.Messages.TimingInfo right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? right) -> bool -virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.EqualityContract.get -> System.Type! -virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? other) -> bool -virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.PrintMembers(System.Text.StringBuilder! builder) -> bool -virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty! -virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.EqualityContract.get -> System.Type! -virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? other) -> bool -virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.PrintMembers(System.Text.StringBuilder! builder) -> bool -virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.EqualityContract.get -> System.Type! -virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.PrintMembers(System.Text.StringBuilder! builder) -> bool \ No newline at end of file +#nullable enable \ No newline at end of file diff --git a/src/Platform/Microsoft.Testing.Platform/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt b/src/Platform/Microsoft.Testing.Platform/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt index 7dc5c58110..2a894256ed 100644 --- a/src/Platform/Microsoft.Testing.Platform/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/PublicAPI/netstandard2.0/PublicAPI.Shipped.txt @@ -1 +1,163 @@ #nullable enable +abstract Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty! +abstract Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! +Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Deconstruct(out string? Explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.Deconstruct(out string! FilePath, out Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan LineSpan) -> void +Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.FileLocationProperty(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty! original) -> void +Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Deconstruct(out string? Explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Deconstruct(out string! Key, out string! Value) -> void +Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.KeyValuePairStringProperty(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty! original) -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Deconstruct(out int Line, out int Column) -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Equals(Microsoft.Testing.Platform.Extensions.Messages.LinePosition other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Deconstruct(out Microsoft.Testing.Platform.Extensions.Messages.LinePosition Start, out Microsoft.Testing.Platform.Extensions.Messages.LinePosition End) -> void +Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Equals(Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Deconstruct(out string? Explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Deconstruct(out string? Explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.$() -> Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo! +Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Deconstruct(out string! Id, out string! Description, out Microsoft.Testing.Platform.Extensions.Messages.TimingInfo Timing) -> void +Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Equals(Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Deconstruct(out string! FilePath, out Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan LineSpan) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty! +Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Deconstruct(out string! Key, out string! Value) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty! +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Deconstruct(out string! AssemblyFullName, out string! Namespace, out string! TypeName, out string! MethodName, out string![]! ParameterTypeFullNames, out string! ReturnTypeFullName) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Deconstruct(out string? Explanation) -> void +Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.TestNodeStateProperty(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! original) -> void +Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Deconstruct(out System.DateTimeOffset StartTime, out System.DateTimeOffset EndTime, out System.TimeSpan Duration) -> void +Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Equals(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo other) -> bool +Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TimingProperty! +Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? other) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! +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.DiscoveredTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.LinePosition.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty! +override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! +override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.ToString() -> string! +override Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.Equals(object? obj) -> bool +override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.GetHashCode() -> int +override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.ToString() -> string! +override sealed Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? other) -> bool +override sealed Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? left, Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? left, Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.LinePosition.operator !=(Microsoft.Testing.Platform.Extensions.Messages.LinePosition left, Microsoft.Testing.Platform.Extensions.Messages.LinePosition right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.LinePosition.operator ==(Microsoft.Testing.Platform.Extensions.Messages.LinePosition left, Microsoft.Testing.Platform.Extensions.Messages.LinePosition right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.operator !=(Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan left, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.operator ==(Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan left, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.operator !=(Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? left, Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.operator ==(Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? left, Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo left, Microsoft.Testing.Platform.Extensions.Messages.TimingInfo right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo left, Microsoft.Testing.Platform.Extensions.Messages.TimingInfo right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? right) -> bool +static Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? right) -> bool +virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.EqualityContract.get -> System.Type! +virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? other) -> bool +virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.PrintMembers(System.Text.StringBuilder! builder) -> bool +virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty! +virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.EqualityContract.get -> System.Type! +virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? other) -> bool +virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.PrintMembers(System.Text.StringBuilder! builder) -> bool +virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.EqualityContract.get -> System.Type! +virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool +virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.PrintMembers(System.Text.StringBuilder! builder) -> bool +~override Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Equals(object obj) -> bool +~override Microsoft.Testing.Platform.Extensions.Messages.LinePosition.ToString() -> string +~override Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Equals(object obj) -> bool +~override Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.ToString() -> string +~override Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Equals(object obj) -> bool +~override Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.ToString() -> string diff --git a/src/Platform/Microsoft.Testing.Platform/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt b/src/Platform/Microsoft.Testing.Platform/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt index 2a894256ed..7dc5c58110 100644 --- a/src/Platform/Microsoft.Testing.Platform/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt +++ b/src/Platform/Microsoft.Testing.Platform/PublicAPI/netstandard2.0/PublicAPI.Unshipped.txt @@ -1,163 +1 @@ #nullable enable -abstract Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty! -abstract Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! -Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Deconstruct(out string? Explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.Deconstruct(out string! FilePath, out Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan LineSpan) -> void -Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.FileLocationProperty(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty! original) -> void -Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Deconstruct(out string? Explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Deconstruct(out string! Key, out string! Value) -> void -Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.KeyValuePairStringProperty(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty! original) -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Deconstruct(out int Line, out int Column) -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Equals(Microsoft.Testing.Platform.Extensions.Messages.LinePosition other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Deconstruct(out Microsoft.Testing.Platform.Extensions.Messages.LinePosition Start, out Microsoft.Testing.Platform.Extensions.Messages.LinePosition End) -> void -Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Equals(Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Deconstruct(out string? Explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Deconstruct(out string? Explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.$() -> Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo! -Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Deconstruct(out string! Id, out string! Description, out Microsoft.Testing.Platform.Extensions.Messages.TimingInfo Timing) -> void -Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Equals(Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Deconstruct(out string! FilePath, out Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan LineSpan) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty! -Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Deconstruct(out string! Key, out string! Value) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty! -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Deconstruct(out string! AssemblyFullName, out string! Namespace, out string! TypeName, out string! MethodName, out string![]! ParameterTypeFullNames, out string! ReturnTypeFullName) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Deconstruct(out string? Explanation) -> void -Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.TestNodeStateProperty(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! original) -> void -Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Deconstruct(out System.DateTimeOffset StartTime, out System.DateTimeOffset EndTime, out System.TimeSpan Duration) -> void -Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Equals(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo other) -> bool -Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TimingProperty! -Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? other) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! -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.DiscoveredTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.LinePosition.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty! -override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty! -override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.ToString() -> string! -override Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.Equals(object? obj) -> bool -override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.GetHashCode() -> int -override Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.ToString() -> string! -override sealed Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? other) -> bool -override sealed Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.CancelledTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.DiscoveredTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.ErrorTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FailedTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.InProgressTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? left, Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? left, Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.LinePosition.operator !=(Microsoft.Testing.Platform.Extensions.Messages.LinePosition left, Microsoft.Testing.Platform.Extensions.Messages.LinePosition right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.LinePosition.operator ==(Microsoft.Testing.Platform.Extensions.Messages.LinePosition left, Microsoft.Testing.Platform.Extensions.Messages.LinePosition right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.operator !=(Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan left, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.operator ==(Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan left, Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.PassedTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.SkippedTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.operator !=(Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? left, Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo.operator ==(Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? left, Microsoft.Testing.Platform.Extensions.Messages.StepTimingInfo? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestFileLocationProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMetadataProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestMethodIdentifierProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimeoutTestNodeStateProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo left, Microsoft.Testing.Platform.Extensions.Messages.TimingInfo right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TimingInfo left, Microsoft.Testing.Platform.Extensions.Messages.TimingInfo right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.operator !=(Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? right) -> bool -static Microsoft.Testing.Platform.Extensions.Messages.TimingProperty.operator ==(Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? left, Microsoft.Testing.Platform.Extensions.Messages.TimingProperty? right) -> bool -virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.EqualityContract.get -> System.Type! -virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty? other) -> bool -virtual Microsoft.Testing.Platform.Extensions.Messages.FileLocationProperty.PrintMembers(System.Text.StringBuilder! builder) -> bool -virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.$() -> Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty! -virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.EqualityContract.get -> System.Type! -virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty? other) -> bool -virtual Microsoft.Testing.Platform.Extensions.Messages.KeyValuePairStringProperty.PrintMembers(System.Text.StringBuilder! builder) -> bool -virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.EqualityContract.get -> System.Type! -virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.Equals(Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty? other) -> bool -virtual Microsoft.Testing.Platform.Extensions.Messages.TestNodeStateProperty.PrintMembers(System.Text.StringBuilder! builder) -> bool -~override Microsoft.Testing.Platform.Extensions.Messages.LinePosition.Equals(object obj) -> bool -~override Microsoft.Testing.Platform.Extensions.Messages.LinePosition.ToString() -> string -~override Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.Equals(object obj) -> bool -~override Microsoft.Testing.Platform.Extensions.Messages.LinePositionSpan.ToString() -> string -~override Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.Equals(object obj) -> bool -~override Microsoft.Testing.Platform.Extensions.Messages.TimingInfo.ToString() -> string diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.Designer.cs b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.Designer.cs index 2d6fe1d5a3..2fc0142c42 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.Designer.cs +++ b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.Designer.cs @@ -931,7 +931,7 @@ internal static string TestApplicationBuilderTestFrameworkCapabilitiesAlreadyReg } /// - /// Looks up a localized string similar to The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it. + /// Looks up a localized string similar to The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it. /// internal static string TestApplicationBuilderTestFrameworkNotRegistered { get { diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx index c7c863ef23..5b68bc81e1 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx +++ b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx @@ -175,7 +175,7 @@ The test framework capabilities factory has already been registered - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it Determine the result of the test application execution 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 097788eaff..cf77f8001e 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf @@ -286,7 +286,7 @@ Enable the diagnostic logging. The default log level is 'Trace'. The file will be written in the output directory with the name log_[MMddHHssfff].diag - Enable the diagnostic logging. The default log level is 'Trace'. The file will be written in the output directory with the name log_[MMddHHssfff].diag + Umožňuje povolit protokolování diagnostiky. Výchozí úroveň protokolování je Trasování. Soubor se zapíše do výstupního adresáře s názvem log_[MMddHHssfff].diag. @@ -500,8 +500,8 @@ Přečtěte si další informace o telemetrii Microsoft Testing Platform: https: - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - Adaptér testovací architektury nebyl zaregistrován. K jeho registraci použijte RegisterTestFrameworkAdapter. + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + Adaptér testovací architektury nebyl zaregistrován. Zaregistrujte ho pomocí ITestApplicationBuilder.RegisterTestFramework. 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 f8cae9a40e..c60b3479fc 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf @@ -500,8 +500,8 @@ Weitere Informationen zu Microsoft Testing Platform-Telemetriedaten: https://aka - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - Der Testframework-Adapter wurde nicht registriert. Verwenden Sie "RegisterTestFrameworkAdapter", um ihn zu registrieren. + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + Der Testframework-Adapter wurde nicht registriert. Verwenden Sie „ITestApplicationBuilder.RegisterTestFramework“, um es zu registrieren. 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 65a47ee391..7185e2d6f9 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf @@ -500,8 +500,8 @@ Más información sobre la telemetría de la Plataforma de pruebas de Microsoft: - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - No se registró el adaptador de marco de pruebas. Usar 'RegisterTestFrameworkAdapter' para registrarlo + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + No se ha registrado el adaptador de marco de pruebas. Usar 'ITestApplicationBuilder.RegisterTestFramework' para registrarlo 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 308e52c9b6..d001fe6b60 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf @@ -500,8 +500,8 @@ En savoir plus sur la télémétrie de la plateforme de tests Microsoft : https: - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - L’adaptateur de l’infrastructure de tests n’a pas été inscrit. Utilisez « RegisterTestFrameworkAdapter » pour l’inscrire + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + L’adaptateur de l’infrastructure de tests n’a pas été inscrit. Utiliser « ITestApplicationBuilder.RegisterTestFramework » pour l’inscrire 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 045b14f289..9c740371fd 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf @@ -286,7 +286,7 @@ Enable the diagnostic logging. The default log level is 'Trace'. The file will be written in the output directory with the name log_[MMddHHssfff].diag - Enable the diagnostic logging. The default log level is 'Trace'. The file will be written in the output directory with the name log_[MMddHHssfff].diag + Abilita la registrazione diagnostica. Il livello di log predefinito è 'Trace'. Il file verrà scritto nella directory di output con il nome log_[MMddHHssfff].diag @@ -500,8 +500,8 @@ Altre informazioni sulla telemetria della piattaforma di test Microsoft: https:/ - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - L'adapter del framework di test non è stato registrato. Usa 'RegisterTestFrameworkAdapter' per registrarlo + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + L'adapter del framework di test non è stato registrato. Usa 'ITestApplicationBuilder.RegisterTestFramework' per registrarlo 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 fde8d7074e..99788bf1a8 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf @@ -286,7 +286,7 @@ Enable the diagnostic logging. The default log level is 'Trace'. The file will be written in the output directory with the name log_[MMddHHssfff].diag - Enable the diagnostic logging. The default log level is 'Trace'. The file will be written in the output directory with the name log_[MMddHHssfff].diag + 診断ログを有効にします。既定のログ レベルは 'Trace' です。ファイルは、出力ディレクトリに log_[MMddHHssfff].diag という名前で書き込まれます。 @@ -500,8 +500,8 @@ Microsoft Testing Platform テレメトリの詳細: https://aka.ms/testingplatf - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - テスト フレームワーク アダプターが登録されていません。'RegisterTestFrameworkAdapter' を使用して登録する + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + テスト フレームワーク アダプターが登録されていません。'ITestApplicationBuilder.RegisterTestFramework' を使用して登録してください 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 a19416117e..025648192e 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf @@ -500,8 +500,8 @@ Microsoft 테스트 플랫폼 원격 분석에 대해 자세히 알아보기: ht - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - 테스트 프레임워크 어댑터가 등록되지 않았습니다. 'RegisterTestFrameworkAdapter'를 사용하여 등록 + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + 테스트 프레임워크 어댑터가 등록되지 않았습니다. 'ITestApplicationBuilder.RegisterTestFramework'를 사용하여 등록합니다. 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 4eec112fbf..45719bb75d 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf @@ -286,7 +286,7 @@ Enable the diagnostic logging. The default log level is 'Trace'. The file will be written in the output directory with the name log_[MMddHHssfff].diag - Enable the diagnostic logging. The default log level is 'Trace'. The file will be written in the output directory with the name log_[MMddHHssfff].diag + Włącz rejestrowanie diagnostyczne. Domyślny poziom dziennika to „Śledzenie”. Plik zostanie zapisany w katalogu wyjściowym o nazwie log_[MMddHHssfff].diag @@ -500,8 +500,8 @@ Więcej informacji o telemetrii platformy testowej firmy Microsoft: https://aka. - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - Adapter struktury testowej nie został zarejestrowany. Użyj elementu „RegisterTestFrameworkAdapter”, aby go zarejestrować + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + Adapter struktury testowej nie został zarejestrowany. Użyj polecenia „ITestApplicationBuilder.RegisterTestFramework”, aby go zarejestrować 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 19ff3820b4..5465389cc0 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 @@ -286,7 +286,7 @@ Enable the diagnostic logging. The default log level is 'Trace'. The file will be written in the output directory with the name log_[MMddHHssfff].diag - Enable the diagnostic logging. The default log level is 'Trace'. The file will be written in the output directory with the name log_[MMddHHssfff].diag + Habilite o log de diagnóstico. O nível de log padrão é “Trace”. O arquivo será gravado no diretório de saída com o nome log_[MMddHHssfff].diag @@ -500,8 +500,8 @@ Leia mais sobre a telemetria da Plataforma de Testes da Microsoft: https://aka.m - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - O adaptador de estrutura de teste não foi registrado. Use "RegisterTestFrameworkAdapter" para registrá-lo + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + O adaptador da estrutura de teste não foi registrado. Use 'ITestApplicationBuilder.RegisterTestFramework' para registrá-lo 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 4a242eda6f..ff6b19b33a 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf @@ -500,8 +500,8 @@ Read more about Microsoft Testing Platform telemetry: https://aka.ms/testingplat - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - Адаптер платформы для тестирования не зарегистрирован. Для регистрации используйте "RegisterTestFrameworkAdapter" + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + Адаптер платформы для тестирования не зарегистрирован. Используйте "ITestApplicationBuilder.RegisterTestFramework" для его регистрации 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 89c3912b6c..8d21bd7079 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf @@ -500,8 +500,8 @@ Microsoft Test Platformu telemetrisi hakkında daha fazla bilgi edinin: https:// - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - Test çerçevesi bağdaştırıcısı kaydedilmedi. Kaydetmek için 'RegisterTestFrameworkAdapter' kullanın + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + Test çerçevesi bağdaştırıcısı kaydedilmedi. Kaydetmek için 'ITestApplicationBuilder.RegisterTestFramework' kullanın 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 05c2c178cb..4c177caa18 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 @@ -500,8 +500,8 @@ Microsoft 测试平台会收集使用数据,帮助我们改善体验。该数 - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - 尚未注册测试框架适配器。使用“RegisterTestFrameworkAdapter”进行注册 + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + 尚未注册测试框架适配器。使用“ITestApplicationBuilder.RegisterTestFramework”注册它 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 d08ccb1d24..a43ec5f318 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 @@ -500,8 +500,8 @@ Microsoft 測試平台會收集使用量資料,以協助我們改善您的體 - The test framework adapter has not been registered. Use 'RegisterTestFrameworkAdapter' to register it - 尚未註冊測試架構配接器。使用 'RegisterTestFrameworkAdapter' 來註冊 + The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it + 尚未註冊測試架構配接器。使用 'ITestApplicationBuilder.RegisterTestFramework' 以註冊它 diff --git a/src/Platform/Microsoft.Testing.Platform/ServerMode/PerRequestServerDataConsumerService.cs b/src/Platform/Microsoft.Testing.Platform/ServerMode/PerRequestServerDataConsumerService.cs index 5131e0183b..477ffe6bad 100644 --- a/src/Platform/Microsoft.Testing.Platform/ServerMode/PerRequestServerDataConsumerService.cs +++ b/src/Platform/Microsoft.Testing.Platform/ServerMode/PerRequestServerDataConsumerService.cs @@ -18,18 +18,19 @@ namespace Microsoft.Testing.Platform.ServerMode; /// /// This class converts the events send to the message bus and sends these back to the client. /// -internal sealed class PerRequestServerDataConsumer(IServiceProvider serviceProvider, Guid runId, ITask task) : IDataConsumer, ITestSessionLifetimeHandler, IDisposable +internal sealed class PerRequestServerDataConsumer(IServiceProvider serviceProvider, IServerTestHost serverTestHost, Guid runId, ITask task) : IDataConsumer, ITestSessionLifetimeHandler, IDisposable { private const int TestNodeUpdateDelayInMs = 200; private readonly ConcurrentDictionary _testNodeUidToStateStatistics = new(); private readonly ConcurrentDictionary _discoveredTestNodeUids = new(); - private readonly IServiceProvider _serviceProvider = serviceProvider; - private readonly ITask _task = task; private readonly SemaphoreSlim _nodeAggregatorSemaphore = new(1); private readonly SemaphoreSlim _nodeUpdateSemaphore = new(1); private readonly ITestSessionContext _testSessionContext = serviceProvider.GetTestSessionContext(); private readonly TaskCompletionSource _testSessionEnd = new(); + private readonly IServiceProvider _serviceProvider = serviceProvider; + private readonly IServerTestHost _serverTestHost = serverTestHost; + private readonly ITask _task = task; private Task? _idleUpdateTask; private TestNodeStateChangeAggregator _nodeUpdatesAggregator = new(runId); private bool _isDisposed; @@ -145,6 +146,7 @@ private async Task SendTestNodeUpdatesOnIdleAsync(Guid runId) using CancellationTokenRegistration registration = cancellationToken.Register(() => _testSessionEnd.SetCanceled()); // When batch timer expire or we're at the end of the session we can unblock the message drain + ArgumentGuard.IsNotNull(_task); await Task.WhenAny(_task.Delay(TimeSpan.FromMilliseconds(TestNodeUpdateDelayInMs), cancellationToken), _testSessionEnd.Task); if (cancellationToken.IsCancellationRequested) @@ -184,10 +186,9 @@ private async Task SendTestNodeUpdatesIfNecessaryAsync(Guid runId, CancellationT _nodeAggregatorSemaphore.Release(); } - ServerTestHost? server = _serviceProvider.GetService(); - if (change is not null && (server?.IsInitialized == true)) + if (change is not null) { - await server.SendTestUpdateAsync(change); + await _serverTestHost.SendTestUpdateAsync(change); } } finally diff --git a/src/Platform/Microsoft.Testing.Platform/Telemetry/ServerTelemetry.cs b/src/Platform/Microsoft.Testing.Platform/Telemetry/ServerTelemetry.cs index 37e86b4256..e6991abf41 100644 --- a/src/Platform/Microsoft.Testing.Platform/Telemetry/ServerTelemetry.cs +++ b/src/Platform/Microsoft.Testing.Platform/Telemetry/ServerTelemetry.cs @@ -3,13 +3,12 @@ using Microsoft.Testing.Platform.Hosts; using Microsoft.Testing.Platform.ServerMode; -using Microsoft.Testing.Platform.Services; namespace Microsoft.Testing.Platform.Telemetry; -internal sealed class ServerTelemetry(IServiceProvider services) : ITelemetryCollector +internal sealed class ServerTelemetry(IServerTestHost serverTestHost) : ITelemetryCollector { - private readonly IServiceProvider _services = services; + private readonly IServerTestHost _serverTestHost = serverTestHost; public async Task LogEventAsync(string eventName, IDictionary paramsMap) { @@ -18,11 +17,5 @@ public async Task LogEventAsync(string eventName, IDictionary pa } private async Task PushTelemetryToServerTestHostAsync(TelemetryEventArgs telemetryEvent) - { - IServerTestHost? server = _services.GetService(); - if (server?.IsInitialized == true) - { - await server.SendTelemetryEventUpdateAsync(telemetryEvent); - } - } + => await _serverTestHost.SendTelemetryEventUpdateAsync(telemetryEvent); } diff --git a/src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs b/src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs index 50eb9b44be..f2fece6699 100644 --- a/src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs +++ b/src/TestFramework/TestFramework/Assertions/Assert.AreEqual.cs @@ -201,6 +201,105 @@ public static void AreEqual(T? expected, T? actual, IEqualityComparer? com ThrowAssertFailed("Assert.AreEqual", finalMessage); } + /// + /// Tests whether the specified values are equal and throws an exception + /// if the two values are not equal. + /// The equality is computed using the default . + /// + /// + /// The type of values to compare. + /// + /// + /// The first value to compare. This is the value the tests expects. + /// + /// + /// The second value to compare. This is the value produced by the code under test. + /// + /// + /// Thrown if is not equal to . + /// + public static void AreEqual(IEquatable? expected, IEquatable? actual) + => AreEqual(expected, actual, string.Empty, null); + + /// + /// Tests whether the specified values are equal and throws an exception + /// if the two values are not equal. + /// The equality is computed using the default . + /// + /// + /// The type of values to compare. + /// + /// + /// The first value to compare. This is the value the tests expects. + /// + /// + /// The second value to compare. This is the value produced by the code under test. + /// + /// + /// The message to include in the exception when + /// is not equal to . The message is shown in + /// test results. + /// + /// + /// Thrown if is not equal to + /// . + /// + public static void AreEqual(IEquatable? expected, IEquatable? actual, string? message) + => AreEqual(expected, actual, message, null); + + /// + /// Tests whether the specified values are equal and throws an exception + /// if the two values are not equal. + /// The equality is computed using the default . + /// + /// + /// The type of values to compare. + /// + /// + /// The first value to compare. This is the value the tests expects. + /// + /// + /// The second value to compare. This is the value produced by the code under test. + /// + /// + /// The message to include in the exception when + /// is not equal to . The message is shown in + /// test results. + /// + /// + /// An array of parameters to use when formatting . + /// + /// + /// Thrown if is not equal to + /// . + /// + public static void AreEqual(IEquatable? expected, IEquatable? actual, string? message, params object?[]? parameters) + { + if (actual?.Equals(expected) == true) + { + return; + } + + string userMessage = BuildUserMessage(message, parameters); + string finalMessage = actual != null && expected != null && !actual.GetType().Equals(expected.GetType()) + ? string.Format( + CultureInfo.CurrentCulture, + FrameworkMessages.AreEqualDifferentTypesFailMsg, + userMessage, + ReplaceNulls(expected), + expected.GetType().FullName, + ReplaceNulls(actual), + actual.GetType().FullName) + : string.Format( + CultureInfo.CurrentCulture, + FrameworkMessages.AreEqualFailMsg, + userMessage, + ReplaceNulls(expected), + ReplaceNulls(actual)); + + ThrowAssertFailed("Assert.AreEqual", finalMessage); + } + /// /// Tests whether the specified values are unequal and throws an exception /// if the two values are equal. diff --git a/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Shipped.txt b/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Shipped.txt index f272ca2b38..82e656b659 100644 --- a/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Shipped.txt +++ b/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Shipped.txt @@ -45,6 +45,7 @@ Microsoft.VisualStudio.TestTools.UnitTesting.DataAccessMethod.Sequential = 0 -> Microsoft.VisualStudio.TestTools.UnitTesting.DataRowAttribute Microsoft.VisualStudio.TestTools.UnitTesting.DataRowAttribute.Data.get -> object?[]! Microsoft.VisualStudio.TestTools.UnitTesting.DataRowAttribute.DataRowAttribute() -> void +Microsoft.VisualStudio.TestTools.UnitTesting.DataRowAttribute.DataRowAttribute(object? data) -> void Microsoft.VisualStudio.TestTools.UnitTesting.DataRowAttribute.DataRowAttribute(params object?[]? data) -> void Microsoft.VisualStudio.TestTools.UnitTesting.DataRowAttribute.DataRowAttribute(string?[]? stringArrayData) -> void Microsoft.VisualStudio.TestTools.UnitTesting.DataRowAttribute.DisplayName.get -> string? @@ -61,6 +62,7 @@ Microsoft.VisualStudio.TestTools.UnitTesting.DataSourceAttribute.ProviderInvaria Microsoft.VisualStudio.TestTools.UnitTesting.DataSourceAttribute.TableName.get -> string? Microsoft.VisualStudio.TestTools.UnitTesting.DataTestMethodAttribute Microsoft.VisualStudio.TestTools.UnitTesting.DataTestMethodAttribute.DataTestMethodAttribute() -> void +Microsoft.VisualStudio.TestTools.UnitTesting.DataTestMethodAttribute.DataTestMethodAttribute(string? displayName) -> void Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute.Description.get -> string? Microsoft.VisualStudio.TestTools.UnitTesting.DescriptionAttribute.DescriptionAttribute(string? description) -> void @@ -219,6 +221,7 @@ Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.Error = 4 -> Micros Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.Failed = 0 -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.Inconclusive = 1 -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.InProgress = 3 -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome +Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.NotFound = 9 -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.NotRunnable = 8 -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.Passed = 2 -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.Timeout = 5 -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome @@ -247,6 +250,9 @@ static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(string? expe static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(string? expected, string? actual, bool ignoreCase, System.Globalization.CultureInfo? culture) -> void static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(string? expected, string? actual, bool ignoreCase, System.Globalization.CultureInfo? culture, string? message) -> void static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(string? expected, string? actual, bool ignoreCase, System.Globalization.CultureInfo? culture, string? message, params object?[]? parameters) -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(System.IEquatable? expected, System.IEquatable? actual) -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(System.IEquatable? expected, System.IEquatable? actual, string? message) -> void +static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(System.IEquatable? expected, System.IEquatable? actual, string? message, params object?[]? parameters) -> void static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(T? expected, T? actual) -> void static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(T? expected, T? actual, string? message) -> void static Microsoft.VisualStudio.TestTools.UnitTesting.Assert.AreEqual(T? expected, T? actual, string? message, params object?[]? parameters) -> void @@ -403,5 +409,6 @@ static readonly Microsoft.VisualStudio.TestTools.UnitTesting.DataSourceAttribute static readonly Microsoft.VisualStudio.TestTools.UnitTesting.DataSourceAttribute.DefaultProviderName -> string! virtual Microsoft.VisualStudio.TestTools.UnitTesting.DataRowAttribute.GetDisplayName(System.Reflection.MethodInfo! methodInfo, object?[]? data) -> string? virtual Microsoft.VisualStudio.TestTools.UnitTesting.ExpectedExceptionBaseAttribute.NoExceptionMessage.get -> string! +virtual Microsoft.VisualStudio.TestTools.UnitTesting.Logging.Logger.LogMessageHandler.Invoke(string! message) -> void virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestClassAttribute.GetTestMethodAttribute(Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute? testMethodAttribute) -> Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute? virtual Microsoft.VisualStudio.TestTools.UnitTesting.TestMethodAttribute.Execute(Microsoft.VisualStudio.TestTools.UnitTesting.ITestMethod! testMethod) -> Microsoft.VisualStudio.TestTools.UnitTesting.TestResult![]! diff --git a/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Unshipped.txt b/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Unshipped.txt index b6be4a4c1b..ab058de62d 100644 --- a/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Unshipped.txt +++ b/src/TestFramework/TestFramework/PublicAPI/PublicAPI.Unshipped.txt @@ -1,5 +1 @@ #nullable enable -Microsoft.VisualStudio.TestTools.UnitTesting.DataRowAttribute.DataRowAttribute(object? data) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.DataTestMethodAttribute.DataTestMethodAttribute(string? displayName) -> void -Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome.NotFound = 9 -> Microsoft.VisualStudio.TestTools.UnitTesting.UnitTestOutcome -virtual Microsoft.VisualStudio.TestTools.UnitTesting.Logging.Logger.LogMessageHandler.Invoke(string! message) -> void diff --git a/src/TestFramework/TestFramework/Resources/FrameworkMessages.Designer.cs b/src/TestFramework/TestFramework/Resources/FrameworkMessages.Designer.cs index 2ebbd11ede..b816404bb4 100644 --- a/src/TestFramework/TestFramework/Resources/FrameworkMessages.Designer.cs +++ b/src/TestFramework/TestFramework/Resources/FrameworkMessages.Designer.cs @@ -10,7 +10,6 @@ namespace Microsoft.VisualStudio.TestTools.UnitTesting { using System; - using System.Reflection; /// @@ -40,7 +39,7 @@ internal FrameworkMessages() { internal static global::System.Resources.ResourceManager ResourceManager { get { if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.VisualStudio.TestTools.UnitTesting.Resources.FrameworkMessages", typeof(FrameworkMessages).GetTypeInfo().Assembly); + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Microsoft.VisualStudio.TestTools.UnitTesting.Resources.FrameworkMessages", typeof(FrameworkMessages).Assembly); resourceMan = temp; } return resourceMan; @@ -340,15 +339,6 @@ internal static string ElementTypesAtIndexDontMatch { } } - /// - /// Looks up a localized string similar to Element at index {1} is (null). Expected type:<{2}>.{0}. - /// - internal static string ElementTypesAtIndexDontMatch2 { - get { - return ResourceManager.GetString("ElementTypesAtIndexDontMatch2", resourceCulture); - } - } - /// /// Looks up a localized string similar to String '{0}' does not end with string '{1}'. {2}.. /// @@ -358,42 +348,6 @@ internal static string EndsWithFail { } } - /// - /// Looks up a localized string similar to Invalid argument- EqualsTester can't use nulls.. - /// - internal static string EqualsTesterInvalidArgs { - get { - return ResourceManager.GetString("EqualsTesterInvalidArgs", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Cannot convert object of type {0} to {1}.. - /// - internal static string ErrorInvalidCast { - get { - return ResourceManager.GetString("ErrorInvalidCast", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The internal object referenced is no longer valid.. - /// - internal static string InternalObjectNotValid { - get { - return ResourceManager.GetString("InternalObjectNotValid", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to The parameter '{0}' is invalid. {1}.. - /// - internal static string InvalidParameterToAssert { - get { - return ResourceManager.GetString("InvalidParameterToAssert", resourceCulture); - } - } - /// /// Looks up a localized string similar to The property {0} has type {1}; expected type {2}.. /// @@ -439,15 +393,6 @@ internal static string IsNotMatchFail { } } - /// - /// Looks up a localized string similar to No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute.. - /// - internal static string NoDataRow { - get { - return ResourceManager.GetString("NoDataRow", resourceCulture); - } - } - /// /// Looks up a localized string similar to No exception thrown. {1} exception was expected. {0}. /// diff --git a/src/TestFramework/TestFramework/Resources/FrameworkMessages.resx b/src/TestFramework/TestFramework/Resources/FrameworkMessages.resx index decfc3df27..a0410ff83a 100644 --- a/src/TestFramework/TestFramework/Resources/FrameworkMessages.resx +++ b/src/TestFramework/TestFramework/Resources/FrameworkMessages.resx @@ -174,27 +174,12 @@ Element at index {1} is not of expected type. Expected type:<{2}>. Actual type:<{3}>.{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - String '{0}' does not end with string '{1}'. {2}. - - Invalid argument- EqualsTester can't use nulls. - - - Cannot convert object of type {0} to {1}. - {0} failed. {1} - - The internal object referenced is no longer valid. - - - The parameter '{0}' is invalid. {1}. - {0} Expected type:<{1}>. Actual type:<{2}>. @@ -268,9 +253,6 @@ Exception Message: {3} Stack Trace: {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - {0} ({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.cs.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.cs.xlf index 1d1999381e..4bf3a8891b 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.cs.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.cs.xlf @@ -97,41 +97,16 @@ Element na indexu {1} není očekávaného typu. Očekávaný typ:<{2}>. Aktuální typ:<{3}>.{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - Element na indexu {1} je (null). Předpokládaný typ:<{2}>.{0} - - String '{0}' does not end with string '{1}'. {2}. Řetězec '{0}' nekončí řetězcem '{1}'. {2}. - - Invalid argument- EqualsTester can't use nulls. - Neplatný argument- v EqualsTester nelze použít hodnotu null. - - - - Cannot convert object of type {0} to {1}. - Nelze převést objekt typu {0} na {1}. - - {0} failed. {1} {0} selhalo. {1} - - The internal object referenced is no longer valid. - Odkaz na vnitřní objekt už není platný. - - - - The parameter '{0}' is invalid. {1}. - Parametr '{0}' je neplatný. {1}. - - {0} Expected type:<{1}>. Actual type:<{2}>. {0} Očekávaný typ:<{1}>. Aktuální typ:<{2}>. @@ -257,11 +232,6 @@ Zpráva výjimky: {3} Trasování zásobníku: {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - Nebyl zadán žádný zdroj testovacích dat. Při použití atributu DataTestMethodAttribute je požadován alespoň jeden atribut TestDataSource. - - {0} ({1}) {0} ({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.de.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.de.xlf index 1e5ba1289e..83fc6c54ce 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.de.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.de.xlf @@ -97,41 +97,16 @@ Das Element bei Index "{1}" weist nicht den erwarteten Typ auf. Erwarteter Typ:<{2}>. Tatsächlicher Typ:<{3}>.{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - Das Element bei Index "{1}" ist (NULL). Erwarteter Typ:<{2}>.{0} - - String '{0}' does not end with string '{1}'. {2}. Die Zeichenfolge "{0}" endet nicht auf die Zeichenfolge "{1}". {2}. - - Invalid argument- EqualsTester can't use nulls. - Ungültiges Argument - EqualsTester kann NULL nicht verwenden. - - - - Cannot convert object of type {0} to {1}. - Ein Objekt vom Typ "{0}" kann nicht in "{1}" konvertiert werden. - - {0} failed. {1} Fehler bei "{0}". {1} - - The internal object referenced is no longer valid. - Das interne Objekt, auf das verwiesen wird, ist nicht mehr gültig. - - - - The parameter '{0}' is invalid. {1}. - Der {0}-Parameter ist ungültig. {1}. - - {0} Expected type:<{1}>. Actual type:<{2}>. {0}Erwarteter Typ:<{1}>. Tatsächlicher Typ:<{2}>. @@ -257,11 +232,6 @@ Ausnahmemeldung: {3} Stapelüberwachung: {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - Es wurde keine Testdatenquelle angegeben. Für DataTestMethodAttribute ist mindestens ein TestDataSource-Wert erforderlich. - - {0} ({1}) {0} ({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.es.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.es.xlf index e4a529c074..8149e78e58 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.es.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.es.xlf @@ -97,41 +97,16 @@ El elemento del índice {1} no es del tipo esperado. Tipo esperado:<{2}>, pero es el tipo:<{3}>.{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - El elemento del índice {1} es (null). Se esperaba el tipo:<{2}>.{0} - - String '{0}' does not end with string '{1}'. {2}. La cadena '{0}' no termina con la cadena '{1}'. {2}. - - Invalid argument- EqualsTester can't use nulls. - Argumento no válido: EqualsTester no puede utilizar valores null. - - - - Cannot convert object of type {0} to {1}. - No se puede convertir el objeto de tipo {0} en {1}. - - {0} failed. {1} Error de {0}. {1} - - The internal object referenced is no longer valid. - El objeto interno al que se hace referencia ya no es válido. - - - - The parameter '{0}' is invalid. {1}. - El parámetro '{0}' no es válido. {1}. - - {0} Expected type:<{1}>. Actual type:<{2}>. {0} Tipo esperado:<{1}>. Tipo real:<{2}>. @@ -257,11 +232,6 @@ Mensaje de excepción: {3} Seguimiento de la pila: {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - No se especificó ningún origen de datos de prueba. Se requiere al menos un valor de TestDataSource con DataTestMethodAttribute. - - {0} ({1}) {0} ({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.fr.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.fr.xlf index 41c8f040ce..15abd57d9d 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.fr.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.fr.xlf @@ -97,41 +97,16 @@ L'élément à l'index {1} n'est pas du type attendu. Type attendu : <{2}>, Type réel : <{3}>.{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - L'élément à l'index {1} est (null). Type attendu : <{2}>.{0} - - String '{0}' does not end with string '{1}'. {2}. La chaîne '{0}' ne se termine pas par la chaîne '{1}'. {2}. - - Invalid argument- EqualsTester can't use nulls. - Argument non valide - EqualsTester ne peut pas utiliser de valeur null. - - - - Cannot convert object of type {0} to {1}. - Impossible de convertir un objet de type {0} en {1}. - - {0} failed. {1} Échec de {0}. {1} - - The internal object referenced is no longer valid. - L'objet interne référencé n'est plus valide. - - - - The parameter '{0}' is invalid. {1}. - Le paramètre '{0}' n'est pas valide. {1}. - - {0} Expected type:<{1}>. Actual type:<{2}>. {0}Type attendu :<{1}>. Type réel :<{2}>. @@ -257,11 +232,6 @@ Message d'exception : {3} Trace de la pile : {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - Aucune source de données de test spécifiée. Au moins une TestDataSouce est obligatoire avec DataTestMethodAttribute. - - {0} ({1}) {0} ({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf index 8f1a1f2378..35f9822a9c 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.it.xlf @@ -97,41 +97,16 @@ L'elemento nell'indice {1} non è del tipo previsto. Tipo previsto:<{2}>. Tipo effettivo:<{3}>.{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - L'elemento nell'indice {1} è (null). Tipo previsto:<{2}>.{0} - - String '{0}' does not end with string '{1}'. {2}. La stringa '{0}' non termina con la stringa '{1}'. {2}. - - Invalid argument- EqualsTester can't use nulls. - Argomento non valido: EqualsTester non può usare valori Null. - - - - Cannot convert object of type {0} to {1}. - Non è possibile convertire un oggetto di tipo {0} in {1}. - - {0} failed. {1} {0} non riuscita. {1} - - The internal object referenced is no longer valid. - L'oggetto interno a cui si fa riferimento non è più valido. - - - - The parameter '{0}' is invalid. {1}. - Il parametro '{0}' non è valido. {1}. - - {0} Expected type:<{1}>. Actual type:<{2}>. {0} Tipo previsto:<{1}>. Tipo effettivo:<{2}>. @@ -257,11 +232,6 @@ Messaggio dell'eccezione: {3} Analisi dello stack: {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - Non è stata specificata alcuna origine dati di test. Con DataTestMethodAttribute è necessario almeno un elemento TestDataSource. - - {0} ({1}) {0} ({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ja.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ja.xlf index 5f43ecb193..1f28821aa7 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ja.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ja.xlf @@ -97,41 +97,16 @@ インデックス {1} の要素は、必要な型ではありません。<{2}> が必要ですが、<{3}> が指定されています。{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - インデックス {1} の要素は null です。必要な型:<{2}>.{0} - - String '{0}' does not end with string '{1}'. {2}. 文字列 '{0}' は文字列 '{1}' で終わりません。{2}。 - - Invalid argument- EqualsTester can't use nulls. - 無効な引数 - EqualsTester は null を使用することはできません。 - - - - Cannot convert object of type {0} to {1}. - 型 {0} のオブジェクトを {1} に変換できません。 - - {0} failed. {1} {0} に失敗しました。{1} - - The internal object referenced is no longer valid. - 参照された内部オブジェクトは、現在有効ではありません。 - - - - The parameter '{0}' is invalid. {1}. - パラメーター '{0}' は無効です。{1}。 - - {0} Expected type:<{1}>. Actual type:<{2}>. {0} には型 <{1}> が必要ですが、型 <{2}> が指定されました。 @@ -257,11 +232,6 @@ Stack Trace: {4} スタック トレース: {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - テスト データ ソースが指定されていません。DataTestMethodAttribute では少なくとも 1 つの TestDataSource が必要です。 - - {0} ({1}) {0} ({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ko.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ko.xlf index 62b4098db0..8af0f002e0 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ko.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ko.xlf @@ -97,41 +97,16 @@ 인덱스 {1}에 있는 요소가 필요한 형식이 아닙니다. 필요한 형식: <{2}>, 실제 형식: <{3}>.{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - 인덱스 {1}에 있는 요소가 (null)입니다. 필요한 형식: <{2}>.{0} - - String '{0}' does not end with string '{1}'. {2}. '{0}' 문자열이 '{1}' 문자열로 끝나지 않습니다. {2} - - Invalid argument- EqualsTester can't use nulls. - 잘못된 인수 - EqualsTester에는 null을 사용할 수 없습니다. - - - - Cannot convert object of type {0} to {1}. - {0} 형식의 개체를 {1}(으)로 변환할 수 없습니다. - - {0} failed. {1} {0}이(가) 실패했습니다. {1} - - The internal object referenced is no longer valid. - 참조된 내부 개체가 더 이상 유효하지 않습니다. - - - - The parameter '{0}' is invalid. {1}. - '{0}' 매개 변수가 잘못되었습니다. {1} - - {0} Expected type:<{1}>. Actual type:<{2}>. {0} 예상 형식: <{1}>, 실제 형식: <{2}>. @@ -257,11 +232,6 @@ Stack Trace: {4} 스택 추적: {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - 테스트 데이터 소스가 지정되지 않았습니다. DataTestMethodAttribute에는 하나 이상의 TestDataSource가 필요합니다. - - {0} ({1}) {0}({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pl.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pl.xlf index ef1c52132c..faddbc4b49 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pl.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pl.xlf @@ -97,41 +97,16 @@ Element o indeksie {1} jest innego typu niż oczekiwano. Oczekiwany typ:<{2}>. Rzeczywisty typ:<{3}>.{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - Element o indeksie {1} jest zerowy (null). Oczekiwany typ: <{2}>.{0} - - String '{0}' does not end with string '{1}'. {2}. Ciąg „{0}” nie kończy się ciągiem „{1}”. {2}. - - Invalid argument- EqualsTester can't use nulls. - Nieprawidłowy argument. Element EqualsTester nie może używać wartości null. - - - - Cannot convert object of type {0} to {1}. - Nie można przekonwertować obiektu typu {0} na typ {1}. - - {0} failed. {1} {0} — niepowodzenie. {1} - - The internal object referenced is no longer valid. - Przywoływany obiekt wewnętrzny nie jest już prawidłowy. - - - - The parameter '{0}' is invalid. {1}. - Parametr „{0}” jest nieprawidłowy. {1}. - - {0} Expected type:<{1}>. Actual type:<{2}>. {0} Oczekiwany typ:<{1}>. Rzeczywisty typ:<{2}>. @@ -257,11 +232,6 @@ Komunikat o wyjątku: {3} Ślad stosu: {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - Nie określono testowego źródła danych. Atrybut DataTestMethodAttribute wymaga co najmniej jednego atrybutu TestDataSource. - - {0} ({1}) {0} ({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pt-BR.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pt-BR.xlf index 93761b3c62..da397ebf29 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pt-BR.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.pt-BR.xlf @@ -97,41 +97,16 @@ Elemento de índice {1} não é de tipo esperado. Tipo esperado:<{2}>. Tipo real:<{3}>.{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - Elemento de índice {1} é (nulo). Tipo esperado:<{2}>.{0} - - String '{0}' does not end with string '{1}'. {2}. A cadeia de caracteres '{0}' não termina com a cadeia de caracteres '{1}'. {2}. - - Invalid argument- EqualsTester can't use nulls. - Argumento inválido - EqualsTester não pode usar valores nulos. - - - - Cannot convert object of type {0} to {1}. - Não é possível converter objeto do tipo {0} em {1}. - - {0} failed. {1} {0} falhou. {1} - - The internal object referenced is no longer valid. - O objeto interno referenciado não é mais válido. - - - - The parameter '{0}' is invalid. {1}. - O parâmetro '{0}' é inválido. {1}. - - {0} Expected type:<{1}>. Actual type:<{2}>. {0} Tipo esperado:<{1}>. Tipo real:<{2}>. @@ -257,11 +232,6 @@ Mensagem de Exceção: {3} Rastreamento de Pilha: {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - Nenhuma fonte de dados especificada. Ao menos um TestDataSource é necessário com DataTestMethodAttribute. - - {0} ({1}) {0} ({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ru.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ru.xlf index e07c5f34bb..2aa97b3e8b 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ru.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.ru.xlf @@ -97,41 +97,16 @@ Тип элемента по индексу {1} не соответствует ожидаемому. Ожидаемый тип: <{2}>. Фактический тип: <{3}>.{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - Элемент по индексу {1} имеет значение (null). Ожидаемый тип: <{2}>.{0} - - String '{0}' does not end with string '{1}'. {2}. Строка "{0}" не оканчивается строкой "{1}". {2}. - - Invalid argument- EqualsTester can't use nulls. - Недопустимый аргумент — EqualsTester не может использовать значения NULL. - - - - Cannot convert object of type {0} to {1}. - Невозможно преобразовать объект типа {0} в {1}. - - {0} failed. {1} Сбой {0}. {1} - - The internal object referenced is no longer valid. - Внутренний объект, на который есть ссылка, больше не является допустимым. - - - - The parameter '{0}' is invalid. {1}. - Параметр "{0}" является недопустимым. {1}. - - {0} Expected type:<{1}>. Actual type:<{2}>. {0}Ожидается тип: <{1}>. Фактический тип: <{2}>. @@ -257,11 +232,6 @@ Stack Trace: {4} Трассировка стека: {4}. - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - Не указан источник данных теста. Требуется по меньшей мере один элемент TestDataSource для DataTestMethodAttribute. - - {0} ({1}) {0} ({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.tr.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.tr.xlf index 49fc8bb87b..af0ac6179f 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.tr.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.tr.xlf @@ -97,41 +97,16 @@ {1} dizinindeki öğe, beklenen türde değil. Beklenen tür:<{2}>. Gerçek tür:<{3}>.{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - {1} dizinindeki öğe (null). Beklenen tür:<{2}>.{0} - - String '{0}' does not end with string '{1}'. {2}. '{0}' dizesi, '{1}' dizesi ile sonlanmıyor. {2}. - - Invalid argument- EqualsTester can't use nulls. - Geçersiz bağımsız değişken- EqualsTester, null değerleri kullanamaz. - - - - Cannot convert object of type {0} to {1}. - {0} türündeki nesne {1} türüne dönüştürülemez. - - {0} failed. {1} {0} başarısız. {1} - - The internal object referenced is no longer valid. - Başvurulan dahili nesne artık geçerli değil. - - - - The parameter '{0}' is invalid. {1}. - '{0}' parametresi geçersiz. {1}. - - {0} Expected type:<{1}>. Actual type:<{2}>. {0} Beklenen tür:<{1}>. Gerçek tür:<{2}>. @@ -257,11 +232,6 @@ Stack Trace: {4} Yığın İzleme: {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - Test verisi kaynağı belirtilmedi. DataTestMethodAttribute ile en az bir TestDataSource gereklidir. - - {0} ({1}) {0} ({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.xlf deleted file mode 100644 index d0ea016861..0000000000 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.xlf +++ /dev/null @@ -1,310 +0,0 @@ - - - - - - Access string has invalid syntax. - Access string has invalid syntax. - - - - The expected collection contains {1} occurrence(s) of <{2}>. The actual collection contains {3} occurrence(s). {0} - The expected collection contains {1} occurrence(s) of <{2}>. The actual collection contains {3} occurrence(s). {0} - - - - Duplicate item found:<{1}>. {0} - Duplicate item found:<{1}>. {0} - - - - Expected:<{1}>. Actual:<{2}>. {0} - Expected:<{1}>. Actual:<{2}>. {0} - - - - Expected a difference no greater than <{3}> between expected value <{1}> and actual value <{2}>. {0} - Expected a difference no greater than <{3}> between expected value <{1}> and actual value <{2}>. {0} - - - - Expected:<{1}>. Case is different for actual value:<{2}>. {0} - Expected:<{1}>. Case is different for actual value:<{2}>. {0} - - - - Expected:<{1} ({2})>. Actual:<{3} ({4})>. {0} - Expected:<{1} ({2})>. Actual:<{3} ({4})>. {0} - - - - Expected any value except:<{1}>. Actual:<{2}>. {0} - Expected any value except:<{1}>. Actual:<{2}>. {0} - - - - Expected a difference greater than <{3}> between expected value <{1}> and actual value <{2}>. {0} - Expected a difference greater than <{3}> between expected value <{1}> and actual value <{2}>. {0} - - - - Do not pass value types to AreSame(). Values converted to Object will never be the same. Consider using AreEqual(). {0} - Do not pass value types to AreSame(). Values converted to Object will never be the same. Consider using AreEqual(). {0} - - - - Both collections are empty. {0} - Both collections are empty. {0} - - - - Both collection contain same elements. - Both collection contain same elements. - - - - Both collection references point to the same collection object. {0} - Both collection references point to the same collection object. {0} - - - - Both collections contain the same elements. {0} - Both collections contain the same elements. {0} - - - - {0}({1}) - {0}({1}) - - - - String '{0}' does not contain string '{1}'. {2}. - String '{0}' does not contain string '{1}'. {2}. - - - - The number of elements in the collections do not match. Expected:<{1}>. Actual:<{2}>.{0} - The number of elements in the collections do not match. Expected:<{1}>. Actual:<{2}>.{0} - - - - Element at index {0} do not match. - Element at index {0} do not match. - - - - Element at index {1} is not of expected type. Expected type:<{2}>. Actual type:<{3}>.{0} - Element at index {1} is not of expected type. Expected type:<{2}>. Actual type:<{3}>.{0} - - - - Element at index {1} is (null). Expected type:<{2}>.{0} - Element at index {1} is (null). Expected type:<{2}>.{0} - - - - String '{0}' does not end with string '{1}'. {2}. - String '{0}' does not end with string '{1}'. {2}. - - - - Invalid argument- EqualsTester can't use nulls. - Invalid argument- EqualsTester can't use nulls. - - - - Cannot convert object of type {0} to {1}. - Cannot convert object of type {0} to {1}. - - - - {0} failed. {1} - {0} failed. {1} - - - - The internal object referenced is no longer valid. - The internal object referenced is no longer valid. - - - - The parameter '{0}' is invalid. {1}. - The parameter '{0}' is invalid. {1}. - - - - {0} Expected type:<{1}>. Actual type:<{2}>. - {0} Expected type:<{1}>. Actual type:<{2}>. - - - - String '{0}' does not match pattern '{1}'. {2}. - String '{0}' does not match pattern '{1}'. {2}. - - - - Wrong Type:<{1}>. Actual type:<{2}>. {0} - Wrong Type:<{1}>. Actual type:<{2}>. {0} - - - - String '{0}' matches pattern '{1}'. {2}. - String '{0}' matches pattern '{1}'. {2}. - - - - Assert.Equals should not be used for Assertions. Please use Assert.AreEqual & overloads instead. - Assert.Equals should not be used for Assertions. Please use Assert.AreEqual & overloads instead. - - - - - The member specified ({0}) could not be found. You might need to regenerate your private accessor, - or the member may be private and defined on a base class. If the latter is true, you need to pass the type - that defines the member into PrivateObject's constructor. - - - The member specified ({0}) could not be found. You might need to regenerate your private accessor, - or the member may be private and defined on a base class. If the latter is true, you need to pass the type - that defines the member into PrivateObject's constructor. - - - - - - The constructor with the specified signature could not be found. You might need to regenerate your private accessor, - or the member may be private and defined on a base class. If the latter is true, you need to pass the type - that defines the member into PrivateObject's constructor. - - - The constructor with the specified signature could not be found. You might need to regenerate your private accessor, - or the member may be private and defined on a base class. If the latter is true, you need to pass the type - that defines the member into PrivateObject's constructor. - - - - - The parameter '{0}' is invalid. The value cannot be null. {1}. - The parameter '{0}' is invalid. The value cannot be null. {1}. - - - - Different number of elements. - Different number of elements. - - - - String '{0}' does not start with string '{1}'. {2}. - String '{0}' does not start with string '{1}'. {2}. - - - - The property {0} has type {1}; expected type {2}. - The property {0} has type {1}; expected type {2}. - - - - (null) - (null) - - - - (object) - (object) - - - - The expected exception type must be System.Exception or a type derived from System.Exception. - The expected exception type must be System.Exception or a type derived from System.Exception. - - - - Test method did not throw an exception. An exception was expected by attribute {0} defined on the test method. - Test method did not throw an exception. An exception was expected by attribute {0} defined on the test method. - - - - Test method did not throw expected exception {0}. {1} - Test method did not throw expected exception {0}. {1} - - - - Test method threw exception {0}, but exception {1} was expected. Exception message: {2} - Test method threw exception {0}, but exception {1} was expected. Exception message: {2} - - - - Test method threw exception {0}, but exception {1} or a type derived from it was expected. Exception message: {2} - Test method threw exception {0}, but exception {1} or a type derived from it was expected. Exception message: {2} - - - - (Failed to get the message for an exception of type {0} due to an exception.) - (Failed to get the message for an exception of type {0} due to an exception.) - - - - No exception thrown. {1} exception was expected. {0} - No exception thrown. {1} exception was expected. {0} - - - - Threw exception {2}, but exception {1} was expected. {0} -Exception Message: {3} -Stack Trace: {4} - Threw exception {2}, but exception {1} was expected. {0} -Exception Message: {3} -Stack Trace: {4} - - - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - No DataRowAttribute specified. Atleast one DataRowAttribute is required with DataTestMethodAttribute. - - - - {0} ({1}) - {0} ({1}) - - - - async TestMethod with UITestMethodAttribute are not supported. Either remove async or use TestMethodAttribute. - async TestMethod with UITestMethodAttribute are not supported. Either remove async or use TestMethodAttribute. - - - - Property or method {0} on {1} does not return IEnumerable<object[]>. - Property or method {0} on {1} does not return IEnumerable<object[]>. - - - - Value returned by property or method {0} shouldn't be null. - Value returned by property or method {0} shouldn't be null. - - - - Method {0} must match the expected signature: public static {1} {0}({2}). - Method {0} must match the expected signature: {1} {0}({2}). - - - - Property or method {0} on {1} returns empty IEnumerable<object[]>. - Property or method {0} on {1} returns empty IEnumerable<object[]>. - - - - UITestMethodAttribute.DispatcherQueue should not be null. To use UITestMethodAttribute within a WinUI Desktop App, remember to set the static UITestMethodAttribute.DispatcherQueue during the test initialization. - UITestMethodAttribute.DispatcherQueue should not be null. To use UITestMethodAttribute within a WinUI Desktop App, remember to set the static UITestMethodAttribute.DispatcherQueue during the test initialization. - - - - Type '{0}' is not assignable to '{1}'. - Type '{0}' is not assignable to '{1}'. - - - {0} argument name like "applicationType" - - {1} fully qualified class name like "Microsoft.UI.Xaml.Application" - - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hans.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hans.xlf index 46b54d4457..9b32bd1cbe 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hans.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hans.xlf @@ -97,41 +97,16 @@ 索引 {1} 处的元素不是所需类型。所需类型为: <{2}>,实际类型为: <{3}>。{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - 索引 {1} 处的元素为(null)。所需类型为: <{2}>。{0} - - String '{0}' does not end with string '{1}'. {2}. 字符串“{0}”不以字符串“{1}”结尾。{2}。 - - Invalid argument- EqualsTester can't use nulls. - 参数无效 - EqualsTester 不能使用 NULL。 - - - - Cannot convert object of type {0} to {1}. - 无法将类型为 {0} 的对象转换为 {1}。 - - {0} failed. {1} {0} 失败。{1} - - The internal object referenced is no longer valid. - 所引用的内部对象不再有效。 - - - - The parameter '{0}' is invalid. {1}. - 参数“{0}”无效。{1}。 - - {0} Expected type:<{1}>. Actual type:<{2}>. {0} 类型应为: <{1}>。类型实为: <{2}>。 @@ -257,11 +232,6 @@ Stack Trace: {4} 堆栈跟踪: {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - 未指定测试数据源。使用 DataTestMethodAttribute 至少需要一个 TestDataSource。 - - {0} ({1}) {0} ({1}) diff --git a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hant.xlf b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hant.xlf index 7c836a88d2..5413d4ff2c 100644 --- a/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hant.xlf +++ b/src/TestFramework/TestFramework/Resources/xlf/FrameworkMessages.zh-Hant.xlf @@ -97,41 +97,16 @@ 位於索引 {1} 的項目不是預期的類型。預期的類型: <{2}>。實際的類型: <{3}>。{0} - - Element at index {1} is (null). Expected type:<{2}>.{0} - 位於索引 {1} 的項目是 (null)。預期的類型: <{2}>。{0} - - String '{0}' does not end with string '{1}'. {2}. 字串 '{0}' 不是以字串 '{1}' 結尾。{2}。 - - Invalid argument- EqualsTester can't use nulls. - 引數無效 - EqualsTester 不可使用 null。 - - - - Cannot convert object of type {0} to {1}. - 無法將 {0} 類型的物件轉換為 {1}。 - - {0} failed. {1} {0} 失敗。 {1} - - The internal object referenced is no longer valid. - 所參考的內部物件已不再有效。 - - - - The parameter '{0}' is invalid. {1}. - 參數 '{0}' 無效。{1}。 - - {0} Expected type:<{1}>. Actual type:<{2}>. {0} 預期的類型: <{1}>,實際的類型: <{2}>。 @@ -257,11 +232,6 @@ Stack Trace: {4} 堆疊追蹤: {4} - - No test data source specified. Atleast one TestDataSource is required with DataTestMethodAttribute. - 未指定任何測試資料來源。必須至少有一個具備 DataTestMethodAttribute 的 TestDataSource。 - - {0} ({1}) {0} ({1}) diff --git a/src/TestFramework/TestFramework/xlf/Resources.cs.xlf b/src/TestFramework/TestFramework/xlf/Resources.cs.xlf deleted file mode 100644 index 8dafb9c688..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.cs.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - Názvy typů mají být psané jen velkými písmeny. - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - Název typu {0} obsahuje malá písmena. - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - Název typu obsahuje malá písmena. - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/xlf/Resources.de.xlf b/src/TestFramework/TestFramework/xlf/Resources.de.xlf deleted file mode 100644 index 58d0fac6c6..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.de.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - Typennamen müssen komplett in Großbuchstaben vorliegen. - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - Der Typenname "{0}" enthält Kleinbuchstaben. - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - Typenname enthält Kleinbuchstaben - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/xlf/Resources.es.xlf b/src/TestFramework/TestFramework/xlf/Resources.es.xlf deleted file mode 100644 index 370f7283e5..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.es.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - Los nombres de tipo deben tener todas las letras mayúsculas. - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - El nombre de tipo “{0}” contiene letras minúsculas. - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - El nombre de tipo contiene letras minúsculas - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/xlf/Resources.fr.xlf b/src/TestFramework/TestFramework/xlf/Resources.fr.xlf deleted file mode 100644 index df278e41df..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.fr.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - Les noms de types doivent être en majuscules. - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - Le nom de type '{0}' contient des lettres minuscules - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - Le nom de type contient des lettres minuscules - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/xlf/Resources.it.xlf b/src/TestFramework/TestFramework/xlf/Resources.it.xlf deleted file mode 100644 index 1f700c10c0..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.it.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - I nomi di tipo devono essere composti solo da lettere maiuscole. - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - Il nome di tipo '{0}' contiene lettere minuscole - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - Il nome di tipo contiene lettere minuscole - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/xlf/Resources.ja.xlf b/src/TestFramework/TestFramework/xlf/Resources.ja.xlf deleted file mode 100644 index 9e2091795f..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.ja.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - 型名はすべて大文字にする必要があります。 - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - 型名 '{0}' には小文字が含まれています - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - 型名に小文字が含まれています - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/xlf/Resources.ko.xlf b/src/TestFramework/TestFramework/xlf/Resources.ko.xlf deleted file mode 100644 index 44a03a1baa..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.ko.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - 형식 이름은 모두 대문자여야 합니다. - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - 형식 이름 '{0}'에 소문자가 포함됩니다. - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - 형식 이름에 소문자가 포함됩니다. - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/xlf/Resources.pl.xlf b/src/TestFramework/TestFramework/xlf/Resources.pl.xlf deleted file mode 100644 index dc91fa407f..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.pl.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - Nazwy typów powinny być w całości pisane wielkimi literami. - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - Nazwa typu „{0}” zawiera małe litery - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - Nazwa typu zawiera małe litery - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/xlf/Resources.pt-BR.xlf b/src/TestFramework/TestFramework/xlf/Resources.pt-BR.xlf deleted file mode 100644 index c46d6603e8..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.pt-BR.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - Todos os nomes de tipo devem estar em maiúsculas. - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - O nome de tipo '{0}' contém letras minúsculas - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - O nome de tipo contém letras minúsculas - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/xlf/Resources.ru.xlf b/src/TestFramework/TestFramework/xlf/Resources.ru.xlf deleted file mode 100644 index 0eb74db13c..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.ru.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - Имена типов должны содержать только прописные буквы. - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - Имя типа "{0}" содержит строчные буквы - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - Имя типа содержит строчные буквы - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/xlf/Resources.tr.xlf b/src/TestFramework/TestFramework/xlf/Resources.tr.xlf deleted file mode 100644 index 18b65426a9..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.tr.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - Tür adlarının tüm harfleri büyük olmalıdır. - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - '{0}' tür adı küçük harfler içeriyor - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - Tür adı küçük harfler içeriyor - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/xlf/Resources.zh-Hans.xlf b/src/TestFramework/TestFramework/xlf/Resources.zh-Hans.xlf deleted file mode 100644 index 5c8e3ef3ad..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.zh-Hans.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - 类型名称应全部大写。 - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - 类型名称“{0}”包含小写字母 - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - 类型名称包含小写字母 - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/src/TestFramework/TestFramework/xlf/Resources.zh-Hant.xlf b/src/TestFramework/TestFramework/xlf/Resources.zh-Hant.xlf deleted file mode 100644 index 5fb6f2a0c8..0000000000 --- a/src/TestFramework/TestFramework/xlf/Resources.zh-Hant.xlf +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - Type names should be all uppercase. - 類型名稱應全部大寫。 - An optional longer localizable description of the diagnostic. - - - Type name '{0}' contains lowercase letters - 類型名稱 '{0}' 包含小寫字母 - The format-able message the diagnostic displays. - - - Type name contains lowercase letters - 類型名稱包含小寫字母 - The title of the diagnostic. - - - - \ No newline at end of file diff --git a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/Helpers/AcceptanceTestBase.cs b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/Helpers/AcceptanceTestBase.cs index 45ffe9b76b..e67286cbd7 100644 --- a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/Helpers/AcceptanceTestBase.cs +++ b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/Helpers/AcceptanceTestBase.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 System.Globalization; using System.Runtime.InteropServices; using System.Xml.Linq; @@ -143,8 +144,13 @@ private static string ExtractVersionFromPackage(string rootFolder, string packag // For some packages the find pattern will match multiple packages, for example: // Microsoft.Testing.Platform.1.0.0.nupkg // Microsoft.Testing.Platform.Extensions.1.0.0.nupkg - // Let's take shortest name which should be closest to the package we are looking for. - matches = [matches.OrderBy(x => x.Length).First()]; + // So we need to find the first package that contains a number after the prefix. + // Ideally, we would want to do a full validation to check this is a nuget version number, but that's too much work for now. + matches = + [ + matches.Select(path => (path, fileName: Path.GetFileName(path)[packagePrefixName.Length..])) + .First(tuple => int.TryParse(tuple.fileName[0].ToString(), CultureInfo.InvariantCulture, out _)).path + ]; } if (matches.Length != 1) diff --git a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/MSTestRunnerTests.cs b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/MSTestRunnerTests.cs index ad706dee91..4591320cda 100644 --- a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/MSTestRunnerTests.cs +++ b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/MSTestRunnerTests.cs @@ -1,8 +1,12 @@ // 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.Build.Logging.StructuredLogger; using Microsoft.Testing.Platform.Acceptance.IntegrationTests.Helpers; +using SL = Microsoft.Build.Logging.StructuredLogger; +using SystemTask = System.Threading.Tasks.Task; + namespace Microsoft.Testing.Platform.Acceptance.IntegrationTests; [TestGroup] @@ -19,7 +23,7 @@ public MSTestRunnerTests(ITestExecutionContext testExecutionContext, AcceptanceF } [ArgumentsProvider(nameof(GetBuildMatrixTfmBuildVerbConfiguration))] - public async Task EnableMSTestRunner_True_Will_Run_Standalone(string tfm, BuildConfiguration buildConfiguration, Verb verb) + public async SystemTask EnableMSTestRunner_True_Will_Run_Standalone(string tfm, BuildConfiguration buildConfiguration, Verb verb) { await Lock.WaitAsync(); try @@ -39,6 +43,12 @@ public async Task EnableMSTestRunner_True_Will_Run_Standalone(string tfm, BuildC compilationResult = await DotnetCli.RunAsync( $"{verb} -m:1 -nodeReuse:false {generator.TargetAssetPath} -c {buildConfiguration} -bl:{binlogFile} -r {RID}", _acceptanceFixture.NuGetGlobalPackagesFolder.Path); + + SL.Build binLog = SL.Serialization.Read(binlogFile); + Assert.IsNotEmpty(binLog.FindChildrenRecursive() + .Where(x => x.Title.Contains("ProjectCapability")) + .Where(x => x.Children.Any(c => ((Item)c).Name == "TestingPlatformServer"))); + var testHost = TestInfrastructure.TestHost.LocateFrom(generator.TargetAssetPath, AssetName, tfm, buildConfiguration: buildConfiguration, verb: verb); var testHostResult = await testHost.ExecuteAsync(); testHostResult.AssertOutputContains("Passed! - Failed: 0, Passed: 1, Skipped: 0, Total: 1"); @@ -50,7 +60,7 @@ public async Task EnableMSTestRunner_True_Will_Run_Standalone(string tfm, BuildC } [ArgumentsProvider(nameof(GetBuildMatrixTfmBuildVerbConfiguration))] - public async Task EnableMSTestRunner_True_WithCustomEntryPoint_Will_Run_Standalone(string tfm, BuildConfiguration buildConfiguration, Verb verb) + public async SystemTask EnableMSTestRunner_True_WithCustomEntryPoint_Will_Run_Standalone(string tfm, BuildConfiguration buildConfiguration, Verb verb) { await Lock.WaitAsync(); try @@ -94,21 +104,21 @@ public async Task EnableMSTestRunner_True_WithCustomEntryPoint_Will_Run_Standalo } [ArgumentsProvider(nameof(GetBuildMatrixTfmBuildVerbConfiguration))] - public async Task EnableMSTestRunner_False_Will_Run_Empty_Program_EntryPoint_From_Tpv2_SDK(string tfm, BuildConfiguration buildConfiguration, Verb verb) + public async SystemTask EnableMSTestRunner_False_Will_Run_Empty_Program_EntryPoint_From_Tpv2_SDK(string tfm, BuildConfiguration buildConfiguration, Verb verb) { await Lock.WaitAsync(); try { using TestAsset generator = await TestAsset.GenerateAssetAsync( - AssetName, - CurrentMSTestSourceCode - .PatchCodeWithReplace("$TargetFramework$", $"{tfm}") - .PatchCodeWithReplace("$MicrosoftNETTestSdkVersion$", MicrosoftNETTestSdkVersion) - .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion) - .PatchCodeWithReplace("$EnableMSTestRunner$", "false") - .PatchCodeWithReplace("$OutputType$", "Exe") - .PatchCodeWithReplace("$Extra$", string.Empty), - addPublicFeeds: true); + AssetName, + CurrentMSTestSourceCode + .PatchCodeWithReplace("$TargetFramework$", $"{tfm}") + .PatchCodeWithReplace("$MicrosoftNETTestSdkVersion$", MicrosoftNETTestSdkVersion) + .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion) + .PatchCodeWithReplace("$EnableMSTestRunner$", "false") + .PatchCodeWithReplace("$OutputType$", "Exe") + .PatchCodeWithReplace("$Extra$", string.Empty), + addPublicFeeds: true); string binlogFile = Path.Combine(generator.TargetAssetPath, "msbuild.binlog"); var compilationResult = await DotnetCli.RunAsync($"restore -m:1 -nodeReuse:false {generator.TargetAssetPath} -r {RID}", _acceptanceFixture.NuGetGlobalPackagesFolder.Path); try @@ -134,4 +144,36 @@ public async Task EnableMSTestRunner_False_Will_Run_Empty_Program_EntryPoint_Fro Lock.Release(); } } + + [ArgumentsProvider(nameof(GetBuildMatrixTfmBuildVerbConfiguration))] + public async SystemTask EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string tfm, BuildConfiguration buildConfiguration, Verb verb) + { + await Lock.WaitAsync(); + try + { + using TestAsset generator = await TestAsset.GenerateAssetAsync( + AssetName, + CurrentMSTestSourceCode + .PatchCodeWithReplace("$TargetFramework$", $"{tfm}") + .PatchCodeWithReplace("$MicrosoftNETTestSdkVersion$", MicrosoftNETTestSdkVersion) + .PatchCodeWithReplace("$MSTestVersion$", MSTestVersion) + .PatchCodeWithReplace("$EnableMSTestRunner$", string.Empty) + .PatchCodeWithReplace("$OutputType$", string.Empty) + .PatchCodeWithReplace("$Extra$", string.Empty), + addPublicFeeds: false); + + string binlogFile = Path.Combine(generator.TargetAssetPath, "msbuild.binlog"); + var compilationResult = await DotnetCli.RunAsync($"restore -m:1 -nodeReuse:false {generator.TargetAssetPath} -r {RID}", _acceptanceFixture.NuGetGlobalPackagesFolder.Path); + compilationResult = await DotnetCli.RunAsync($"{verb} -bl:{binlogFile} -m:1 -nodeReuse:false {generator.TargetAssetPath} -c {buildConfiguration} -r {RID} ", _acceptanceFixture.NuGetGlobalPackagesFolder.Path); + + SL.Build binLog = SL.Serialization.Read(binlogFile); + Assert.IsEmpty(binLog.FindChildrenRecursive() + .Where(x => x.Title.Contains("ProjectCapability")) + .Where(x => x.Children.Any(c => ((Item)c).Name == "TestingPlatformServer"))); + } + finally + { + Lock.Release(); + } + } } diff --git a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/testsbaseline.txt b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/testsbaseline.txt index 12e71e314d..29c6993bbe 100644 --- a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/testsbaseline.txt +++ b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/testsbaseline.txt @@ -170,6 +170,22 @@ Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platfor Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Will_Run_Empty_Program_EntryPoint_From_Tpv2_SDK(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net8.0,Debug,publish) Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Will_Run_Empty_Program_EntryPoint_From_Tpv2_SDK(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net8.0,Release,build) Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Will_Run_Empty_Program_EntryPoint_From_Tpv2_SDK(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net8.0,Release,publish) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net462,Debug,build) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net462,Debug,publish) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net462,Release,build) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net462,Release,publish) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net6.0,Debug,build) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net6.0,Debug,publish) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net6.0,Release,build) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net6.0,Release,publish) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net7.0,Debug,build) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net7.0,Debug,publish) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net7.0,Release,build) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net7.0,Release,publish) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net8.0,Debug,build) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net8.0,Debug,publish) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net8.0,Release,build) +Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_False_Wont_Flow_TestingPlatformServer_Capability(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net8.0,Release,publish) Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_True_Will_Run_Standalone(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net462,Debug,build) Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_True_Will_Run_Standalone(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net462,Debug,publish) Microsoft.Testing.Platform.Acceptance.IntegrationTests.Microsoft.Testing.Platform.Acceptance.IntegrationTests.MSTestRunnerTests.EnableMSTestRunner_True_Will_Run_Standalone(string, Microsoft.Testing.TestInfrastructure.BuildConfiguration, Microsoft.Testing.TestInfrastructure.Verb) (net462,Release,build) diff --git a/test/UnitTests/MSTest.Analyzers.UnitTests/TestClassShouldBeValidAnalyzerTests.cs b/test/UnitTests/MSTest.Analyzers.UnitTests/TestClassShouldBeValidAnalyzerTests.cs index 27a5dce651..8d2b28a361 100644 --- a/test/UnitTests/MSTest.Analyzers.UnitTests/TestClassShouldBeValidAnalyzerTests.cs +++ b/test/UnitTests/MSTest.Analyzers.UnitTests/TestClassShouldBeValidAnalyzerTests.cs @@ -102,32 +102,35 @@ await VerifyCS.VerifyAnalyzerAsync( .WithArguments("MyTestClass")); } - public async Task WhenClassIsStatic_Diagnostic() + public async Task WhenClassIsGeneric_Diagnostic() { var code = """ using Microsoft.VisualStudio.TestTools.UnitTesting; [TestClass] - public static class {|#0:MyTestClass|} + public class {|#0:MyTestClass|} { } """; await VerifyCS.VerifyAnalyzerAsync( code, - VerifyCS.Diagnostic(TestClassShouldBeValidAnalyzer.NotStaticRule) + VerifyCS.Diagnostic(TestClassShouldBeValidAnalyzer.NotGenericRule) .WithLocation(0) .WithArguments("MyTestClass")); } - public async Task WhenClassIsGeneric_Diagnostic() + public async Task WhenClassIsNotGenericButAsOuterGeneric_Diagnostic() { var code = """ using Microsoft.VisualStudio.TestTools.UnitTesting; - [TestClass] - public class {|#0:MyTestClass|} + public class MyClass { + [TestClass] + public class {|#0:MyTestClass|} + { + } } """; @@ -138,15 +141,33 @@ await VerifyCS.VerifyAnalyzerAsync( .WithArguments("MyTestClass")); } - public async Task WhenClassIsNotGenericButAsOuterGeneric_Diagnostic() + public async Task WhenDiscoverInternalsAndTypeIsInternal_NoDiagnostic() { var code = """ using Microsoft.VisualStudio.TestTools.UnitTesting; - public class MyClass + [assembly: DiscoverInternals] + + [TestClass] + internal class MyTestClass + { + } + """; + + await VerifyCS.VerifyAnalyzerAsync(code); + } + + public async Task WhenDiscoverInternalsAndTypeIsPrivate_Diagnostic() + { + var code = """ + using Microsoft.VisualStudio.TestTools.UnitTesting; + + [assembly: DiscoverInternals] + + public class A { [TestClass] - public class {|#0:MyTestClass|} + private class {|#0:MyTestClass|} { } } @@ -154,62 +175,159 @@ public class {|#0:MyTestClass|} await VerifyCS.VerifyAnalyzerAsync( code, - VerifyCS.Diagnostic(TestClassShouldBeValidAnalyzer.NotGenericRule) + VerifyCS.Diagnostic(TestClassShouldBeValidAnalyzer.PublicOrInternalRule) .WithLocation(0) .WithArguments("MyTestClass")); } - public async Task WhenMultipleViolations_MultipleDiagnostics() + public async Task WhenClassIsStaticAndEmpty_NoDiagnostic() + { + var code = """ + using Microsoft.VisualStudio.TestTools.UnitTesting; + + [TestClass] + public static class MyTestClass + { + } + """; + + await VerifyCS.VerifyAnalyzerAsync(code); + } + + public async Task WhenClassIsStaticAndContainsAssemblyInitialize_NoDiagnostic() + { + var code = """ + using Microsoft.VisualStudio.TestTools.UnitTesting; + + [TestClass] + public static class MyTestClass + { + [AssemblyInitialize] + public static void AssemblyInit(TestContext context) + { + } + } + """; + + await VerifyCS.VerifyAnalyzerAsync(code); + } + + public async Task WhenClassIsStaticAndContainsAssemblyCleanup_NoDiagnostic() + { + var code = """ + using Microsoft.VisualStudio.TestTools.UnitTesting; + + [TestClass] + public static class MyTestClass + { + [AssemblyCleanup] + public static void AssemblyCleanup() + { + } + } + """; + + await VerifyCS.VerifyAnalyzerAsync(code); + } + + public async Task WhenClassIsStaticAndContainsClassInitialize_Diagnostic() { var code = """ using Microsoft.VisualStudio.TestTools.UnitTesting; [TestClass] - internal static class {|#0:{|#1:{|#2:MyTestClass|}|}|} + public static class {|#0:MyTestClass|} { + [ClassInitialize] + public static void ClassInit(TestContext testContext) + { + } } """; await VerifyCS.VerifyAnalyzerAsync( code, - VerifyCS.Diagnostic(TestClassShouldBeValidAnalyzer.PublicRule) - .WithLocation(0) - .WithArguments("MyTestClass"), VerifyCS.Diagnostic(TestClassShouldBeValidAnalyzer.NotStaticRule) - .WithLocation(1) - .WithArguments("MyTestClass"), - VerifyCS.Diagnostic(TestClassShouldBeValidAnalyzer.NotGenericRule) - .WithLocation(2) + .WithLocation(0) .WithArguments("MyTestClass")); } - public async Task WhenDiscoverInternalsAndTypeIsInternal_NoDiagnostic() + public async Task WhenClassIsStaticAndContainsClassCleanup_Diagnostic() { var code = """ using Microsoft.VisualStudio.TestTools.UnitTesting; - [assembly: DiscoverInternals] + [TestClass] + public static class {|#0:MyTestClass|} + { + [ClassCleanup] + public static void ClassCleanup() + { + } + } + """; + + await VerifyCS.VerifyAnalyzerAsync( + code, + VerifyCS.Diagnostic(TestClassShouldBeValidAnalyzer.NotStaticRule) + .WithLocation(0) + .WithArguments("MyTestClass")); + } + + public async Task WhenClassIsStaticAndContainsTestInitialize_Diagnostic() + { + var code = """ + using Microsoft.VisualStudio.TestTools.UnitTesting; [TestClass] - internal class MyTestClass + public static class {|#0:MyTestClass|} { + [TestInitialize] + public static void TestInit() + { + } } """; - await VerifyCS.VerifyAnalyzerAsync(code); + await VerifyCS.VerifyAnalyzerAsync( + code, + VerifyCS.Diagnostic(TestClassShouldBeValidAnalyzer.NotStaticRule) + .WithLocation(0) + .WithArguments("MyTestClass")); } - public async Task WhenDiscoverInternalsAndTypeIsPrivate_Diagnostic() + public async Task WhenClassIsStaticAndContainsTestCleanup_Diagnostic() { var code = """ using Microsoft.VisualStudio.TestTools.UnitTesting; - [assembly: DiscoverInternals] + [TestClass] + public static class {|#0:MyTestClass|} + { + [TestCleanup] + public static void TestCleanup() + { + } + } + """; - public class A + await VerifyCS.VerifyAnalyzerAsync( + code, + VerifyCS.Diagnostic(TestClassShouldBeValidAnalyzer.NotStaticRule) + .WithLocation(0) + .WithArguments("MyTestClass")); + } + + public async Task WhenClassIsStaticAndContainsTestMethod_Diagnostic() + { + var code = """ + using Microsoft.VisualStudio.TestTools.UnitTesting; + + [TestClass] + public static class {|#0:MyTestClass|} { - [TestClass] - private class {|#0:MyTestClass|} + [TestMethod] + public static void TestMethod() { } } @@ -217,7 +335,7 @@ private class {|#0:MyTestClass|} await VerifyCS.VerifyAnalyzerAsync( code, - VerifyCS.Diagnostic(TestClassShouldBeValidAnalyzer.PublicOrInternalRule) + VerifyCS.Diagnostic(TestClassShouldBeValidAnalyzer.NotStaticRule) .WithLocation(0) .WithArguments("MyTestClass")); } diff --git a/test/UnitTests/MSTest.Analyzers.UnitTests/testsbaseline.txt b/test/UnitTests/MSTest.Analyzers.UnitTests/testsbaseline.txt index 29577241d7..f3b01b0b0c 100644 --- a/test/UnitTests/MSTest.Analyzers.UnitTests/testsbaseline.txt +++ b/test/UnitTests/MSTest.Analyzers.UnitTests/testsbaseline.txt @@ -9,37 +9,43 @@ MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerT MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenClassIsNotGenericButAsOuterGeneric_Diagnostic() MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenClassIsPublicAndTestClass_NoDiagnostic() MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenClassIsPublicAndTestClassAsInnerOfInternalClass_Diagnostic() -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenClassIsStatic_Diagnostic() +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenClassIsStaticAndContainsAssemblyCleanup_NoDiagnostic() +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenClassIsStaticAndContainsAssemblyInitialize_NoDiagnostic() +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenClassIsStaticAndContainsClassCleanup_Diagnostic() +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenClassIsStaticAndContainsClassInitialize_Diagnostic() +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenClassIsStaticAndContainsTestCleanup_Diagnostic() +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenClassIsStaticAndContainsTestInitialize_Diagnostic() +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenClassIsStaticAndContainsTestMethod_Diagnostic() +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenClassIsStaticAndEmpty_NoDiagnostic() MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenDiscoverInternalsAndTypeIsInternal_NoDiagnostic() MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenDiscoverInternalsAndTypeIsPrivate_Diagnostic() -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestClassShouldBeValidAnalyzerTests.WhenMultipleViolations_MultipleDiagnostics() MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenDiscoverInternalsTestContextPropertyIsPrivate_Diagnostic() MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenDiscoverInternalsTestContextPropertyIsPublicOrInternal_NoDiagnostic(string) (accessibility: "internal") MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenDiscoverInternalsTestContextPropertyIsPublicOrInternal_NoDiagnostic(string) (accessibility: "public") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "testcontext", accessibility: "internal") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TestContext", accessibility: "internal") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TeStCoNtExT", accessibility: "internal") MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TESTCONTEXT", accessibility: "internal") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "testcontext", accessibility: "private") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TestContext", accessibility: "private") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TeStCoNtExT", accessibility: "private") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TeStCoNtExT", accessibility: "internal") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TestContext", accessibility: "internal") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "testcontext", accessibility: "internal") MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TESTCONTEXT", accessibility: "private") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "testcontext", accessibility: "protected") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TestContext", accessibility: "protected") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TeStCoNtExT", accessibility: "protected") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TeStCoNtExT", accessibility: "private") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TestContext", accessibility: "private") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "testcontext", accessibility: "private") MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TESTCONTEXT", accessibility: "protected") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "testcontext", accessibility: "public") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TestContext", accessibility: "public") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TeStCoNtExT", accessibility: "public") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TeStCoNtExT", accessibility: "protected") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TestContext", accessibility: "protected") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "testcontext", accessibility: "protected") MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TESTCONTEXT", accessibility: "public") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "testcontext", accessibility: "internal") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "TestContext", accessibility: "internal") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "TeStCoNtExT", accessibility: "internal") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TeStCoNtExT", accessibility: "public") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "TestContext", accessibility: "public") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextCaseInsensitiveIsField_Diagnostic(string, string) (fieldName: "testcontext", accessibility: "public") MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "TESTCONTEXT", accessibility: "internal") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "testcontext", accessibility: "private") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "TestContext", accessibility: "private") -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "TeStCoNtExT", accessibility: "private") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "TeStCoNtExT", accessibility: "internal") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "TestContext", accessibility: "internal") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "testcontext", accessibility: "internal") MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "TESTCONTEXT", accessibility: "private") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "TeStCoNtExT", accessibility: "private") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "TestContext", accessibility: "private") +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsPrivateOrInternal_Diagnostic(string, string) (propertyName: "testcontext", accessibility: "private") MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsReadonly_Diagnostic() MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsStatic_Diagnostic() MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestContextShouldBeValidAnalyzerTests.WhenTestContextPropertyIsValid_NoDiagnostic() @@ -60,4 +66,4 @@ MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestMethodShouldBeValidAnalyzer MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.TestMethodShouldBeValidAnalyzerTests.WhenTestMethodReturnTypeIsValid_NoDiagnostic() MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.UseParallelizeAttributeAnalyzerTests.WhenDoNotParallelizeAttributeSet_NoDiagnostic() MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.UseParallelizeAttributeAnalyzerTests.WhenNoAttributeSpecified_Diagnostic() -MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.UseParallelizeAttributeAnalyzerTests.WhenParallelizeAttributeSet_NoDiagnostic() +MSTest.Analyzers.UnitTests.MSTest.Analyzers.Test.UseParallelizeAttributeAnalyzerTests.WhenParallelizeAttributeSet_NoDiagnostic() \ No newline at end of file diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/ArgumentArityTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/ArgumentArityTests.cs index f2633d4132..5e7cf0882d 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/ArgumentArityTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/ArgumentArityTests.cs @@ -51,11 +51,10 @@ public async Task ParseAndValidate_WhenOptionWithArityZeroIsCalledWithOneArgumen _extensionCommandLineOptionsProviders, _systemCommandLineOptionsProviders, _testApplicationModuleInfoMock.Object, _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - _outputDisplayMock.Verify(o => o.DisplayAsync(It.IsAny(), It.IsAny()), Times.Once); } public async Task ParseAndValidate_WhenOptionWithArityExactlyOneIsCalledWithTwoArguments_ReturnsFalse() @@ -63,19 +62,15 @@ public async Task ParseAndValidate_WhenOptionWithArityExactlyOneIsCalledWithTwoA // Arrange string[] args = ["--exactlyOneArgumentsOption arg1", "arg2"]; CommandLineParseResult parseResult = CommandLineParser.Parse(args, new SystemEnvironment()); - _outputDisplayMock.Setup(x => x.DisplayAsync(It.IsAny(), It.IsAny())) - .Callback((IOutputDeviceDataProducer message, IOutputDeviceData data) => - Assert.AreEqual($"Option '--exactlyOneArgumentsOption' from provider 'Microsoft Testing Platform command line provider' (UID: PlatformCommandLineProvider) expects at most 1 arguments{Environment.NewLine}", ((TextOutputDeviceData)data).Text, StringComparer.Ordinal)); var commandLineHandler = new CommandLineHandler(args, parseResult, _extensionCommandLineOptionsProviders, _systemCommandLineOptionsProviders, _testApplicationModuleInfoMock.Object, _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - _outputDisplayMock.Verify(o => o.DisplayAsync(It.IsAny(), It.IsAny()), Times.Once); } public async Task ParseAndValidate_WhenOptionWithArityExactlyOneIsCalledWithoutArguments_ReturnsFalse() @@ -91,11 +86,10 @@ public async Task ParseAndValidate_WhenOptionWithArityExactlyOneIsCalledWithoutA _extensionCommandLineOptionsProviders, _systemCommandLineOptionsProviders, _testApplicationModuleInfoMock.Object, _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - _outputDisplayMock.Verify(o => o.DisplayAsync(It.IsAny(), It.IsAny()), Times.Once); } public async Task ParseAndValidate_WhenOptionWithArityZeroOrOneIsCalledWithTwoArguments_ReturnsFalse() @@ -111,11 +105,10 @@ public async Task ParseAndValidate_WhenOptionWithArityZeroOrOneIsCalledWithTwoAr _extensionCommandLineOptionsProviders, _systemCommandLineOptionsProviders, _testApplicationModuleInfoMock.Object, _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - _outputDisplayMock.Verify(o => o.DisplayAsync(It.IsAny(), It.IsAny()), Times.Once); } public async Task ParseAndValidate_WhenOptionWithArityOneOrMoreIsCalledWithoutArguments_ReturnsFalse() @@ -131,11 +124,10 @@ public async Task ParseAndValidate_WhenOptionWithArityOneOrMoreIsCalledWithoutAr _extensionCommandLineOptionsProviders, _systemCommandLineOptionsProviders, _testApplicationModuleInfoMock.Object, _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - _outputDisplayMock.Verify(o => o.DisplayAsync(It.IsAny(), It.IsAny()), Times.Once); } public async Task ParseAndValidate_WhenOptionsGetsTheExpectedNumberOfArguments_ReturnsTrue() @@ -147,7 +139,7 @@ public async Task ParseAndValidate_WhenOptionsGetsTheExpectedNumberOfArguments_R _extensionCommandLineOptionsProviders, _systemCommandLineOptionsProviders, _testApplicationModuleInfoMock.Object, _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsTrue(result); diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/CommandLineHandlerTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/CommandLineHandlerTests.cs index b132857e3d..d76f87894d 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/CommandLineHandlerTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/CommandLineHandlerTests.cs @@ -51,11 +51,10 @@ public async Task ParseAndValidateAsync_InvalidCommandLineArguments_ReturnsFalse }); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - _outputDisplayMock.Verify(o => o.DisplayAsync(It.IsAny(), It.IsAny()), Times.Once); } public async Task ParseAndValidateAsync_EmptyCommandLineArguments_ReturnsTrue() @@ -67,7 +66,7 @@ public async Task ParseAndValidateAsync_EmptyCommandLineArguments_ReturnsTrue() _extensionCommandLineOptionsProviders, _systemCommandLineOptionsProviders, _testApplicationModuleInfoMock.Object, _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsTrue(result); @@ -186,11 +185,10 @@ public async Task ParseAndValidateAsync_DuplicateOption_ReturnsFalse() extensionCommandLineOptionsProviders, [], _testApplicationModuleInfoMock.Object, _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - _outputDisplayMock.Verify(o => o.DisplayAsync(It.IsAny(), It.IsAny()), Times.Once); } public async Task ParseAndValidateAsync_InvalidOption_ReturnsFalse() @@ -206,11 +204,10 @@ public async Task ParseAndValidateAsync_InvalidOption_ReturnsFalse() _extensionCommandLineOptionsProviders, _systemCommandLineOptionsProviders, _testApplicationModuleInfoMock.Object, _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - _outputDisplayMock.Verify(o => o.DisplayAsync(It.IsAny(), It.IsAny()), Times.Once); } public async Task ParseAndValidateAsync_InvalidArgumentArity_ReturnsFalse() @@ -226,11 +223,10 @@ public async Task ParseAndValidateAsync_InvalidArgumentArity_ReturnsFalse() _extensionCommandLineOptionsProviders, _systemCommandLineOptionsProviders, _testApplicationModuleInfoMock.Object, _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - _outputDisplayMock.Verify(o => o.DisplayAsync(It.IsAny(), It.IsAny()), Times.Once); } public async Task ParseAndValidateAsync_ReservedOptions_ReturnsFalse() @@ -250,11 +246,10 @@ public async Task ParseAndValidateAsync_ReservedOptions_ReturnsFalse() _systemCommandLineOptionsProviders, _testApplicationModuleInfoMock.Object, _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - _outputDisplayMock.Verify(o => o.DisplayAsync(It.IsAny(), It.IsAny()), Times.Once); } public async Task ParseAndValidateAsync_ReservedOptionsPrefix_ReturnsFalse() @@ -274,11 +269,10 @@ public async Task ParseAndValidateAsync_ReservedOptionsPrefix_ReturnsFalse() _systemCommandLineOptionsProviders, _testApplicationModuleInfoMock.Object, _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - _outputDisplayMock.Verify(o => o.DisplayAsync(It.IsAny(), It.IsAny()), Times.Once); } public async Task ParseAndValidateAsync_UnknownOption_ReturnsFalse() @@ -286,9 +280,6 @@ public async Task ParseAndValidateAsync_UnknownOption_ReturnsFalse() // Arrange string[] args = ["--x"]; CommandLineParseResult parseResult = CommandLineParser.Parse(args, new SystemEnvironment()); - var messages = new List(); - _outputDisplayMock.Setup(x => x.DisplayAsync(It.IsAny(), It.IsAny())) - .Callback((IOutputDeviceDataProducer message, IOutputDeviceData data) => messages.Add(((TextOutputDeviceData)data).Text)); ICommandLineOptionsProvider[] extensionCommandLineProvider = new[] { @@ -299,12 +290,11 @@ public async Task ParseAndValidateAsync_UnknownOption_ReturnsFalse() _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, string? errorMessage) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - Assert.IsTrue(messages.Count is 23); - Assert.IsTrue(messages[0].Equals($"Unknown option '--x'{Environment.NewLine}", StringComparison.Ordinal)); + Assert.IsTrue(errorMessage!.Equals($"Unknown option '--x'{Environment.NewLine}", StringComparison.Ordinal)); } public async Task ParseAndValidateAsync_InvalidValidConfiguration_ReturnsFalse() @@ -325,11 +315,10 @@ public async Task ParseAndValidateAsync_InvalidValidConfiguration_ReturnsFalse() _runtimeFeatureMock.Object, _outputDisplayMock.Object, _environmentMock.Object, _processHandlerMock.Object); // Act - bool result = await commandLineHandler.ParseAndValidateAsync(); + (bool result, _) = await commandLineHandler.TryParseAndValidateAsync(); // Assert Assert.IsFalse(result); - _outputDisplayMock.Verify(o => o.DisplayAsync(It.IsAny(), It.IsAny()), Times.Once); } private sealed class ExtensionCommandLineProviderMockReservedOptions : ICommandLineOptionsProvider diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Logging/ServerLoggerForwarderTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Logging/ServerLoggerForwarderTests.cs index 8edc3a1cc1..a779f83832 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Logging/ServerLoggerForwarderTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Logging/ServerLoggerForwarderTests.cs @@ -30,7 +30,6 @@ public class ServerLoggerForwarderTests : TestBase public ServerLoggerForwarderTests(ITestExecutionContext testExecutionContext) : base(testExecutionContext) { - _mockServerTestHost.Setup(x => x.IsInitialized).Returns(true); _mockServerTestHost.Setup(x => x.PushDataAsync(It.IsAny())).Returns(Task.CompletedTask); _serviceProvider.AddService(new SystemTask()); _serviceProvider.AddService(_mockServerTestHost.Object); diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/ServerMode/ServerDataConsumerServiceTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/ServerMode/ServerDataConsumerServiceTests.cs index 74c29ad754..7321d7e8e0 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/ServerMode/ServerDataConsumerServiceTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/ServerMode/ServerDataConsumerServiceTests.cs @@ -4,6 +4,7 @@ using Microsoft.Testing.Framework; using Microsoft.Testing.Platform.Extensions.Messages; using Microsoft.Testing.Platform.Helpers; +using Microsoft.Testing.Platform.Hosts; using Microsoft.Testing.Platform.ServerMode; using Microsoft.Testing.Platform.Services; using Microsoft.Testing.Platform.TestHost; @@ -22,6 +23,7 @@ public sealed class ServerDataConsumerServiceTests : TestBase, IAsyncCleanable, private readonly PerRequestServerDataConsumer _service; private readonly ServiceProvider _serviceProvider = new(); private readonly Mock _task = new(); + private readonly Mock _serverTestHost = new(); private readonly Guid _runId = Guid.NewGuid(); @@ -29,7 +31,7 @@ public ServerDataConsumerServiceTests(ITestExecutionContext testExecutionContext : base(testExecutionContext) { _serviceProvider.TryAddService(new PerRequestTestSessionContext(CancellationToken.None, CancellationToken.None)); - _service = new PerRequestServerDataConsumer(_serviceProvider, _runId, _task.Object); + _service = new PerRequestServerDataConsumer(_serviceProvider, _serverTestHost.Object, _runId, _task.Object); } public async Task ConsumeAsync_WithSessionFileArtifact() diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Telemetry/ServerTelemetryTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Telemetry/ServerTelemetryTests.cs index e2b16197dc..519e872edc 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Telemetry/ServerTelemetryTests.cs +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Telemetry/ServerTelemetryTests.cs @@ -4,7 +4,6 @@ using Microsoft.Testing.Framework; using Microsoft.Testing.Platform.Hosts; using Microsoft.Testing.Platform.ServerMode; -using Microsoft.Testing.Platform.Services; using Microsoft.Testing.Platform.Telemetry; using Microsoft.Testing.TestInfrastructure; @@ -21,10 +20,7 @@ public sealed class ServerTelemetryTests : TestBase public ServerTelemetryTests(ITestExecutionContext testExecutionContext) : base(testExecutionContext) { - var serviceProvider = new ServiceProvider(); - _serverTestHost.Setup(s => s.IsInitialized).Returns(true); - serviceProvider.AddService(_serverTestHost.Object); - _serverTelemetry = new(serviceProvider); + _serverTelemetry = new(_serverTestHost.Object); } public async Task LogEvent_ForDiscovery() diff --git a/test/UnitTests/TestFramework.UnitTests/Assertions/AssertTests.AreEqualTests.cs b/test/UnitTests/TestFramework.UnitTests/Assertions/AssertTests.AreEqualTests.cs index 56a3dd19dd..2f80745e1e 100644 --- a/test/UnitTests/TestFramework.UnitTests/Assertions/AssertTests.AreEqualTests.cs +++ b/test/UnitTests/TestFramework.UnitTests/Assertions/AssertTests.AreEqualTests.cs @@ -381,6 +381,18 @@ public void AreEqualStringIgnoreCaseCultureInfoMessageParametersNullabilityPostC _ = cultureInfo.Calendar; // no warning } + public void AreEqualUsingCustomIEquatable() + { + var instanceOfA = new A { Id = "SomeId" }; + var instanceOfB = new B { Id = "SomeId" }; + + // This call works because B implements IEquatable + Assert.AreEqual(instanceOfA, instanceOfB); + + // This one doesn't work + VerifyThrows(() => Assert.AreEqual(instanceOfB, instanceOfA)); + } + private CultureInfo? GetCultureInfo() => CultureInfo.CurrentCulture; private class TypeOverridesEquals @@ -426,4 +438,32 @@ public override int GetHashCode(TypeOverridesEquals obj) throw new NotImplementedException(); } } + + private class A : IEquatable + { + public string Id { get; set; } = string.Empty; + + public bool Equals(A? other) + => other?.Id == Id; + + public override bool Equals(object? obj) + => Equals(obj as A); + + public override int GetHashCode() + => Id.GetHashCode() + 123; + } + + private class B : IEquatable + { + public string Id { get; set; } = string.Empty; + + public override bool Equals(object? obj) + => Equals(obj as A); + + public bool Equals(A? other) + => other?.Id == Id; + + public override int GetHashCode() + => Id.GetHashCode() + 1234; + } }