From 03eb3e8941d0e029dd8d37b75463f79fd1c96581 Mon Sep 17 00:00:00 2001 From: fhnaseer Date: Mon, 13 May 2024 17:18:18 +0200 Subject: [PATCH] Cleaning command line validations and adding unit tests (#2842) (#2847) --- .../PlatformCommandLineProvider.cs | 54 +---- ...reeNodeFilterCommandLineOptionsProvider.cs | 12 +- .../Resources/PlatformResources.Designer.cs | 49 +---- .../Resources/PlatformResources.resx | 17 +- .../Resources/xlf/PlatformResources.cs.xlf | 29 +-- .../Resources/xlf/PlatformResources.de.xlf | 29 +-- .../Resources/xlf/PlatformResources.es.xlf | 29 +-- .../Resources/xlf/PlatformResources.fr.xlf | 29 +-- .../Resources/xlf/PlatformResources.it.xlf | 29 +-- .../Resources/xlf/PlatformResources.ja.xlf | 30 +-- .../Resources/xlf/PlatformResources.ko.xlf | 29 +-- .../Resources/xlf/PlatformResources.pl.xlf | 29 +-- .../Resources/xlf/PlatformResources.pt-BR.xlf | 29 +-- .../Resources/xlf/PlatformResources.ru.xlf | 29 +-- .../Resources/xlf/PlatformResources.tr.xlf | 29 +-- .../xlf/PlatformResources.zh-Hans.xlf | 29 +-- .../xlf/PlatformResources.zh-Hant.xlf | 29 +-- .../InfoTests.cs | 2 +- .../PlatformCommandLineProviderTests.cs | 204 ++++++++++++++++++ ...deFilterCommandLineOptionsProviderTests.cs | 37 ++++ .../Helpers/TestCommandLineOptions.cs | 19 ++ .../Helpers/TestExtension.cs | 19 ++ .../testsbaseline.netfx.txt | 27 +++ .../testsbaseline.txt | 27 +++ 24 files changed, 375 insertions(+), 470 deletions(-) create mode 100644 test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/PlatformCommandLineProviderTests.cs create mode 100644 test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/TreeNodeFilterCommandLineOptionsProviderTests.cs create mode 100644 test/UnitTests/Microsoft.Testing.Platform.UnitTests/Helpers/TestCommandLineOptions.cs create mode 100644 test/UnitTests/Microsoft.Testing.Platform.UnitTests/Helpers/TestExtension.cs diff --git a/src/Platform/Microsoft.Testing.Platform/CommandLine/PlatformCommandLineProvider.cs b/src/Platform/Microsoft.Testing.Platform/CommandLine/PlatformCommandLineProvider.cs index 648e25c179..1bc5c1f3c4 100644 --- a/src/Platform/Microsoft.Testing.Platform/CommandLine/PlatformCommandLineProvider.cs +++ b/src/Platform/Microsoft.Testing.Platform/CommandLine/PlatformCommandLineProvider.cs @@ -34,6 +34,8 @@ internal sealed class PlatformCommandLineProvider : ICommandLineOptionsProvider public const string TestHostControllerPIDOptionKey = "internal-testhostcontroller-pid"; public const string ExitOnProcessExitOptionKey = "exit-on-process-exit"; + private static readonly string[] VerbosityOptions = ["Trace", "Debug", "Information", "Warning", "Error", "Critical"]; + private static readonly CommandLineOption MinimumExpectedTests = new(MinimumExpectedTestsOptionKey, "Specifies the minimum number of tests that are expected to run.", ArgumentArity.ZeroOrOne, false, isBuiltIn: true); private static readonly IReadOnlyCollection PlatformCommandLineProviderCache = new[] @@ -83,61 +85,25 @@ public IReadOnlyCollection GetCommandLineOptions() public Task ValidateOptionArgumentsAsync(CommandLineOption commandOption, string[] arguments) { - if (commandOption.Name == HelpOptionKey && arguments.Length > 0) - { - return ValidationResult.InvalidTask(string.Format(CultureInfo.InvariantCulture, PlatformResources.PlatformCommandLineOptionExpectsNoArgumentErrorMessage, HelpOptionKey)); - } - - if (commandOption.Name == InfoOptionKey && arguments.Length > 0) - { - return ValidationResult.InvalidTask(string.Format(CultureInfo.InvariantCulture, PlatformResources.PlatformCommandLineOptionExpectsNoArgumentErrorMessage, InfoOptionKey)); - } - if (commandOption.Name == DiagnosticVerbosityOptionKey) { - if (arguments.Length != 1 - || (!arguments[0].Equals("Trace", StringComparison.OrdinalIgnoreCase) - && !arguments[0].Equals("Debug", StringComparison.OrdinalIgnoreCase) - && !arguments[0].Equals("Information", StringComparison.OrdinalIgnoreCase) - && !arguments[0].Equals("Warning", StringComparison.OrdinalIgnoreCase) - && !arguments[0].Equals("Error", StringComparison.OrdinalIgnoreCase) - && !arguments[0].Equals("Critical", StringComparison.OrdinalIgnoreCase))) + if (!VerbosityOptions.Contains(arguments[0], StringComparer.OrdinalIgnoreCase)) { return ValidationResult.InvalidTask(PlatformResources.PlatformCommandLineDiagnosticOptionExpectsSingleArgumentErrorMessage); } } - if (commandOption.Name == DiagnosticOutputDirectoryOptionKey && arguments.Length != 1) - { - return ValidationResult.InvalidTask(PlatformResources.PlatformCommandLineDiagnosticOutputDirectoryOptionSingleArgument); - } - - if (commandOption.Name == DiagnosticOutputFilePrefixOptionKey && arguments.Length != 1) - { - return ValidationResult.InvalidTask(PlatformResources.PlatformCommandLineDiagnosticFilePrefixOptionSingleArgument); - } - - if (commandOption.Name == ResultDirectoryOptionKey && arguments.Length != 1) - { - return ValidationResult.InvalidTask($"Invalid arguments for --{ResultDirectoryOptionKey}, expected usage: --results-directory ./CustomTestResultsFolder"); - } - - if (commandOption.Name == PortOptionKey && (arguments.Length != 1 || !int.TryParse(arguments[0], out int _))) + if (commandOption.Name == PortOptionKey && (!int.TryParse(arguments[0], out int _))) { return ValidationResult.InvalidTask(string.Format(CultureInfo.InvariantCulture, PlatformResources.PlatformCommandLinePortOptionSingleArgument, PortOptionKey)); } - if (commandOption.Name == ClientPortOptionKey && (arguments.Length != 1 || !int.TryParse(arguments[0], out int _))) + if (commandOption.Name == ClientPortOptionKey && (!int.TryParse(arguments[0], out int _))) { return ValidationResult.InvalidTask(string.Format(CultureInfo.InvariantCulture, PlatformResources.PlatformCommandLinePortOptionSingleArgument, ClientPortOptionKey)); } - if (commandOption.Name == ClientHostOptionKey && arguments.Length != 1) - { - return ValidationResult.InvalidTask(PlatformResources.PlatformCommandLineClientHostOptionSingleArgument); - } - - if (commandOption.Name == ExitOnProcessExitOptionKey && (arguments.Length != 1 || !int.TryParse(arguments[0], out int _))) + if (commandOption.Name == ExitOnProcessExitOptionKey && (!int.TryParse(arguments[0], out int _))) { return ValidationResult.InvalidTask(string.Format(CultureInfo.InvariantCulture, PlatformResources.PlatformCommandLineExitOnProcessExitSingleArgument, ExitOnProcessExitOptionKey)); } @@ -187,7 +153,7 @@ public Task ValidateCommandLineOptionsAsync(ICommandLineOption if (commandLineOptions.IsOptionSet(ExitOnProcessExitOptionKey)) { - commandLineOptions.TryGetOptionArgumentList(ExitOnProcessExitOptionKey, out string[]? pid); + _ = commandLineOptions.TryGetOptionArgumentList(ExitOnProcessExitOptionKey, out string[]? pid); ApplicationStateGuard.Ensure(pid is not null); RoslynDebug.Assert(pid.Length == 1); int parentProcessPid = int.Parse(pid[0], CultureInfo.InvariantCulture); @@ -195,11 +161,11 @@ public Task ValidateCommandLineOptionsAsync(ICommandLineOption { // We let the api to do the validity check before to go down the subscription path. // If we don't fail here but we fail below means that the parent process is not there anymore and we can take it as exited. - Process.GetProcessById(parentProcessPid); + _ = Process.GetProcessById(parentProcessPid); } - catch (Exception ex) + catch (ArgumentException ex) { - return ValidationResult.InvalidTask(string.Format(CultureInfo.InvariantCulture, PlatformResources.PlatformCommandLineExitOnProcessExitInvalidDependantProcess, parentProcessPid, ex)); + return ValidationResult.InvalidTask(string.Format(CultureInfo.InvariantCulture, PlatformResources.PlatformCommandLineExitOnProcessExitInvalidDependentProcess, parentProcessPid, ex)); } } diff --git a/src/Platform/Microsoft.Testing.Platform/CommandLine/TreeNodeFilterCommandLineOptionsProvider.cs b/src/Platform/Microsoft.Testing.Platform/CommandLine/TreeNodeFilterCommandLineOptionsProvider.cs index c4745273b2..c85f0eccab 100644 --- a/src/Platform/Microsoft.Testing.Platform/CommandLine/TreeNodeFilterCommandLineOptionsProvider.cs +++ b/src/Platform/Microsoft.Testing.Platform/CommandLine/TreeNodeFilterCommandLineOptionsProvider.cs @@ -30,19 +30,11 @@ internal sealed class TreeNodeFilterCommandLineOptionsProvider(IExtension extens public IReadOnlyCollection GetCommandLineOptions() => new CommandLineOption[] { - new(TreenodeFilter, PlatformResources.TreeNodeFilterDescription, ArgumentArity.ZeroOrOne, false), + new(TreenodeFilter, PlatformResources.TreeNodeFilterDescription, ArgumentArity.ExactlyOne, false), }; public Task ValidateOptionArgumentsAsync(CommandLineOption commandOption, string[] arguments) - { - if (commandOption.Name == TreenodeFilter && arguments.Length != 1) - { - return ValidationResult.InvalidTask(PlatformResources.TreeNodeFilterInvalidArgumentCount); - } - - // No problem found - return ValidationResult.ValidTask; - } + => ValidationResult.ValidTask; public Task ValidateCommandLineOptionsAsync(ICommandLineOptions commandLineOptions) => ValidationResult.ValidTask; diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.Designer.cs b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.Designer.cs index 665c8f9ba8..f02e5f076d 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.Designer.cs +++ b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.Designer.cs @@ -529,15 +529,6 @@ internal static string PlatformCommandLineClientHostOptionDescription { } } - /// - /// Looks up a localized string similar to '--client-host' expects a single host name as argument. - /// - internal static string PlatformCommandLineClientHostOptionSingleArgument { - get { - return ResourceManager.GetString("PlatformCommandLineClientHostOptionSingleArgument", resourceCulture); - } - } - /// /// Looks up a localized string similar to Specify the port of the client.. /// @@ -556,15 +547,6 @@ internal static string PlatformCommandLineDiagnosticFileLoggerSynchronousWriteOp } } - /// - /// Looks up a localized string similar to '--diagnostic-output-fileprefix' expects a single file name prefix argument. - /// - internal static string PlatformCommandLineDiagnosticFilePrefixOptionSingleArgument { - get { - return ResourceManager.GetString("PlatformCommandLineDiagnosticFilePrefixOptionSingleArgument", resourceCulture); - } - } - /// /// Looks up a localized string similar to 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. /// @@ -601,15 +583,6 @@ internal static string PlatformCommandLineDiagnosticOutputDirectoryOptionDescrip } } - /// - /// Looks up a localized string similar to '--diagnostic-output-directory' expects a single directory name argument. - /// - internal static string PlatformCommandLineDiagnosticOutputDirectoryOptionSingleArgument { - get { - return ResourceManager.GetString("PlatformCommandLineDiagnosticOutputDirectoryOptionSingleArgument", resourceCulture); - } - } - /// /// Looks up a localized string similar to Prefix for the log file name that will replace '[log]_.'. /// @@ -641,9 +614,9 @@ internal static string PlatformCommandLineDiscoverTestsOptionDescription { /// Looks up a localized string similar to Invalid PID '{0}' ///{1}. /// - internal static string PlatformCommandLineExitOnProcessExitInvalidDependantProcess { + internal static string PlatformCommandLineExitOnProcessExitInvalidDependentProcess { get { - return ResourceManager.GetString("PlatformCommandLineExitOnProcessExitInvalidDependantProcess", resourceCulture); + return ResourceManager.GetString("PlatformCommandLineExitOnProcessExitInvalidDependentProcess", resourceCulture); } } @@ -719,15 +692,6 @@ internal static string PlatformCommandLineNoBannerOptionDescription { } } - /// - /// Looks up a localized string similar to '--{0}' expects no argument. - /// - internal static string PlatformCommandLineOptionExpectsNoArgumentErrorMessage { - get { - return ResourceManager.GetString("PlatformCommandLineOptionExpectsNoArgumentErrorMessage", resourceCulture); - } - } - /// /// Looks up a localized string similar to Specify the port of the server.. /// @@ -1075,15 +1039,6 @@ internal static string TreeNodeFilterEscapeCharacterShouldNotBeLastErrorMessage } } - /// - /// Looks up a localized string similar to A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]'). - /// - internal static string TreeNodeFilterInvalidArgumentCount { - get { - return ResourceManager.GetString("TreeNodeFilterInvalidArgumentCount", resourceCulture); - } - } - /// /// Looks up a localized string similar to Only the final filter path can contain '**' wildcard. /// diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx index 0f8215ff6c..129f2c5b87 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx +++ b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx @@ -355,18 +355,12 @@ Specify the hostname of the client. - - '--client-host' expects a single host name as argument - Specify the port of the client. Force the built-in file logger to write the log synchronously. Useful for scenario where you don't want to lose any log (i.e. in case of crash). Note that this is slowing down the test execution. - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - 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 @@ -379,9 +373,6 @@ Output directory of the diagnostic logging, if not specified the file will be generated inside the default 'TestResults' directory. - - '--diagnostic-output-directory' expects a single directory name argument - Prefix for the log file name that will replace '[log]_.' @@ -406,9 +397,6 @@ Do not display the startup banner, the copyright message or the telemetry banner. - - '--{0}' expects no argument - Specify the port of the server. @@ -439,9 +427,6 @@ Use a tree filter to filter down the tests to execute - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - Connecting to client host '{0}' port '{1}' @@ -495,7 +480,7 @@ Read more about Microsoft Testing Platform telemetry: https://aka.ms/testingplat '--{0}' expects a single int PID argument - + Invalid PID '{0}' {1} 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 eb07bb307f..1d06349a16 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf @@ -264,11 +264,6 @@ Zadejte název hostitele klienta. - - '--client-host' expects a single host name as argument - --client-host očekává jako argument jeden název hostitele. - - Specify the port of the client. Zadejte port klienta. @@ -279,11 +274,6 @@ Umožňuje vynutit synchronní zápis do protokolu integrovaným protokolovacím nástrojem souborů. Užitečné pro scénář, kdy nechcete přijít o žádný protokol (například v případě chybového ukončení). Poznámka: Toto zpomaluje provádění testu. - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - --diagnostic-output-fileprefix očekává jeden argument předpony názvu souboru. - - 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. @@ -304,11 +294,6 @@ Výstupní adresář diagnostického protokolování. Pokud není zadaný, soubor se vygeneruje ve výchozím adresáři TestResults. - - '--diagnostic-output-directory' expects a single directory name argument - --diagnostic-output-directory očekává jeden argument názvu adresáře. - - Prefix for the log file name that will replace '[log]_.' Předpona pro název souboru protokolu, který nahradí [log]_ @@ -324,10 +309,10 @@ Umožňuje zobrazit seznam dostupných testů. - + Invalid PID '{0}' {1} - Neplatný identifikátor PID „{0}“ + Invalid PID '{0}' {1} @@ -371,11 +356,6 @@ Nezobrazovat úvodní banner, zprávu o autorských právech ani banner telemetrie - - '--{0}' expects no argument - --{0} neočekává žádný argument. - - Specify the port of the server. Zadejte port serveru. @@ -576,11 +556,6 @@ Přečtěte si další informace o telemetrii Microsoft Testing Platform: https: Řetězec filtru by neměl být ukončen řídicím znakem {0}. - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - Očekává se jeden argument (například /MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]). - - Only the final filter path can contain '**' wildcard Zástupný znak ** může obsahovat pouze konečná cesta filtru. 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 270e89782e..81ec082de5 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf @@ -264,11 +264,6 @@ Geben Sie den Hostnamen des Clients an. - - '--client-host' expects a single host name as argument - "--client-host" erwartet einen einzelnen Hostnamen als Argument. - - Specify the port of the client. Geben Sie den Port des Clients an. @@ -279,11 +274,6 @@ Erzwingen Sie, dass die integrierte Dateiprotokollierung das Protokoll synchron schreibt. Nützlich für Szenarien, in denen Sie keine Protokolle verlieren möchten (z. B. im Fall eines Absturzes). Beachten Sie, dass die Testausführung dadurch verlangsamt wird. - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - "--diagnostic-output-fileprefix" erwartet ein einzelnes Präfixargument für Dateinamen. - - 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 Aktivieren Sie die Diagnoseprotokollierung. Die Standardprotokollebene ist "Ablaufverfolgung". Die Datei wird im Ausgabeverzeichnis mit dem Namen log_[MMddHHSSFFF].diag geschrieben @@ -304,11 +294,6 @@ Das Ausgabeverzeichnis der Diagnoseprotokollierung, sofern nicht angegeben, wird die Datei im Standardverzeichnis "TestResults" generiert. - - '--diagnostic-output-directory' expects a single directory name argument - "--diagnostic-output-directory" erwartet ein einzelnes Verzeichnisnamenargument. - - Prefix for the log file name that will replace '[log]_.' Präfix für den Protokolldateinamen, durch den "[log]_" ersetzt wird. @@ -324,10 +309,10 @@ Listen Sie verfügbare Tests auf. - + Invalid PID '{0}' {1} - Ungültige PID "{0}" + Invalid PID '{0}' {1} @@ -371,11 +356,6 @@ Zeigen Sie das Startbanner, die Copyrightmeldung oder das Telemetriebanner nicht an. - - '--{0}' expects no argument - "--{0}" erwartet kein Argument - - Specify the port of the server. Geben Sie den Port des Servers an. @@ -576,11 +556,6 @@ Weitere Informationen zu Microsoft Testing Platform-Telemetriedaten: https://aka Ein Escapezeichen darf die Filterzeichenfolge "{0}" nicht beenden - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - Es wird ein einzelnes Argument erwartet (z. B. "/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]"). - - Only the final filter path can contain '**' wildcard Nur der endgültige Filterpfad darf den Platzhalter "**" enthalten 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 7975207755..bcbed57d54 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf @@ -264,11 +264,6 @@ Especifique el nombre de host del cliente. - - '--client-host' expects a single host name as argument - “--client-host” espera un único nombre de host como argumento - - Specify the port of the client. Especifique el puerto del cliente. @@ -279,11 +274,6 @@ Fuerce al registrador de archivos integrado a escribir el registro de forma sincrónica. Resulta útil para escenarios en los que no quiere perder ningún registro (es decir, en caso de bloqueo). Tenga en cuenta que esto ralentiza la ejecución de pruebas. - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - “--diagnostic-output-fileprefix” espera un único argumento de prefijo de nombre de archivo - - 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 el registro de diagnóstico. El nivel de registro predeterminado es "Seguimiento". El archivo se escribirá en el directorio de salida con el nombre log_[MMddHHssfff].diag @@ -304,11 +294,6 @@ Directorio de salida del registro de diagnóstico; si no se especifica, el archivo se generará dentro del directorio predeterminado “TestResults”. - - '--diagnostic-output-directory' expects a single directory name argument - “--diagnostic-output-directory” espera un único argumento de nombre de directorio - - Prefix for the log file name that will replace '[log]_.' Prefijo del nombre del archivo de registro que reemplazará a '[log]_.' @@ -324,10 +309,10 @@ Enumere las pruebas disponibles. - + Invalid PID '{0}' {1} - PID inválido '{0}' + Invalid PID '{0}' {1} @@ -371,11 +356,6 @@ No muestre el banner de inicio, el mensaje de copyright o el banner de telemetría. - - '--{0}' expects no argument - “--{0}” no espera ningún argumento - - Specify the port of the server. Especifique el puerto del servidor. @@ -576,11 +556,6 @@ Más información sobre la telemetría de la Plataforma de pruebas de Microsoft: Un carácter de escape no debe terminar la cadena de filtro "{0}" - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - Se espera un único argumento (por ejemplo, “/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]”) - - Only the final filter path can contain '**' wildcard Solo la ruta de acceso de filtro final puede contener el carácter comodín "**". 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 c428ec0fbc..b880ad9e8a 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf @@ -264,11 +264,6 @@ Spécifier le nom d’hôte du client. - - '--client-host' expects a single host name as argument - « --client-host » attend un nom d’hôte unique comme argument - - Specify the port of the client. Spécifier le port du client. @@ -279,11 +274,6 @@ Forcer l’enregistreur d’événements de fichiers intégré à écrire le journal de manière synchrone. Utile pour les scénarios où vous ne voulez pas perdre de journal (c’est-à-dire en cas d’incident). Notez que cela ralentit l’exécution du test. - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - « --diagnostic-output-fileprefix » attend un argument de préfixe de nom de fichier unique - - 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 Activez la journalisation des diagnostics. Le niveau de consignation par défaut est « Trace ». Le fichier sera écrit dans le répertoire de sortie avec le nom log_[MMddHHssfff].diag @@ -304,11 +294,6 @@ Répertoire de sortie de la journalisation des diagnostics. S’il n’est pas spécifié, le fichier est généré dans le répertoire ’TestResults’ par défaut. - - '--diagnostic-output-directory' expects a single directory name argument - « --diagnostic-output-directory » attend un argument de nom de répertoire unique - - Prefix for the log file name that will replace '[log]_.' Préfixe du nom du fichier journal qui remplacera « [log]_ ». @@ -324,10 +309,10 @@ Répertorier les tests disponibles. - + Invalid PID '{0}' {1} - PID incorrect « {0} » + Invalid PID '{0}' {1} @@ -371,11 +356,6 @@ Ne pas afficher la bannière de démarrage, le message de copyright ou la bannière de télémétrie. - - '--{0}' expects no argument - « --{0} » n’attend aucun argument - - Specify the port of the server. Spécifier le port du serveur. @@ -576,11 +556,6 @@ En savoir plus sur la télémétrie de la plateforme de tests Microsoft : https: Désolé, un caractère d’échappement ne doit pas terminer la chaîne de filtre « {0} » - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - Un seul argument est attendu (par ex., « /MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux] ») - - Only the final filter path can contain '**' wildcard Désolé, seul le chemin d’accès de filtre final peut contenir le caractère générique ’**’ 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 602e318c3f..d248c19880 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf @@ -264,11 +264,6 @@ Specifica il nome host del client. - - '--client-host' expects a single host name as argument - '--client-host' prevede un singolo nome host come argomento - - Specify the port of the client. Specifica la porta del client. @@ -279,11 +274,6 @@ Forza il logger di file predefinito per scrivere il log in modo sincrono. Utile per uno scenario in cui non si vuole perdere alcun log, ad esempio in caso di arresto anomalo del sistema. Si noti che l'esecuzione del test sta rallentando. - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - '--diagnostic-output-fileprefix' prevede un singolo argomento di prefisso del nome file - - 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 @@ -304,11 +294,6 @@ Directory di output della registrazione diagnostica, se non specificato, il file verrà generato all'interno della directory 'TestResults' predefinita. - - '--diagnostic-output-directory' expects a single directory name argument - '--diagnostic-output-directory' prevede un singolo argomento del nome della directory - - Prefix for the log file name that will replace '[log]_.' Prefisso per il nome del file di log che sostituirà '[log]_.' @@ -324,10 +309,10 @@ Elenca i test disponibili. - + Invalid PID '{0}' {1} - PID non valido '{0}' + Invalid PID '{0}' {1} @@ -371,11 +356,6 @@ Non visualizzare il banner di avvio, il messaggio di copyright o il banner di telemetria. - - '--{0}' expects no argument - '--{0}' non prevede alcun argomento - - Specify the port of the server. Specifica la porta del server. @@ -576,11 +556,6 @@ Altre informazioni sulla telemetria della piattaforma di test Microsoft: https:/ Un carattere di escape non deve terminare la stringa di filtro '{0}' - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - È previsto un singolo argomento, (ad esempio '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - - Only the final filter path can contain '**' wildcard Solo il percorso del filtro finale può contenere il carattere jolly '**' 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 17e99148f9..bf348d3778 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf @@ -264,11 +264,6 @@ クライアントのホスト名を指定します。 - - '--client-host' expects a single host name as argument - '--client-host' には、引数として 1 つのホスト名が必要です - - Specify the port of the client. クライアントのポートを指定します。 @@ -279,11 +274,6 @@ 組み込みのファイル ロガーでログを同期的に書き込むことを強制します。ログを失わないシナリオ (クラッシュした場合など) に役立ちます。これにより、テストの実行速度が低下していることに注意してください。 - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - '--diagnostic-output-fileprefix' には、1 つのファイル名プレフィックス引数が必要です - - 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 という名前で書き込まれます。 @@ -304,11 +294,6 @@ 診断ログの出力ディレクトリ。指定しない場合ファイルは既定の 'TestResults' ディレクトリ内に生成されます。 - - '--diagnostic-output-directory' expects a single directory name argument - '--diagnostic-output-directory' には単一のディレクトリ名引数が必要です - - Prefix for the log file name that will replace '[log]_.' '[log]_' を置き換えるログ ファイル名のプレフィックス。 @@ -324,11 +309,10 @@ 使用可能なテストを一覧表示します。 - + Invalid PID '{0}' {1} - PID '{0}' - が無効です + Invalid PID '{0}' {1} @@ -372,11 +356,6 @@ スタートアップ バナー、著作権メッセージ、テレメトリ バナーは表示しないでください。 - - '--{0}' expects no argument - '--{0}' には引数が必要ありません - - Specify the port of the server. サーバーのポートを指定します。 @@ -577,11 +556,6 @@ Microsoft Testing Platform テレメトリの詳細: https://aka.ms/testingplatf エスケープ文字はフィルター文字列 '{0}' を終了できません - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - 1 つの引数が必要です (例: '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - - Only the final filter path can contain '**' wildcard '**' ワイルドカードを含めることができるのは、最後のフィルター パスのみです 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 3d26ec9174..57d646d8d0 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf @@ -264,11 +264,6 @@ 클라이언트의 호스트 이름을 지정합니다. - - '--client-host' expects a single host name as argument - '--client-host'에는 단일 호스트 이름이 인수로 필요합니다. - - Specify the port of the client. 클라이언트의 포트를 지정합니다. @@ -279,11 +274,6 @@ 기본 제공 파일 로거가 로그를 동기적으로 기록하도록 강제합니다. 로그를 잃지 않으려는 시나리오(예: 충돌 시)에 유용합니다. 이로 인해 테스트 실행 속도가 느려집니다. - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - '--diagnostic-output-fileprefix'에는 단일 파일 이름 접두사 인수가 필요합니다. - - 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라는 이름으로 출력 디렉터리에 기록됩니다. @@ -304,11 +294,6 @@ 진단 로깅의 출력 디렉터리를 지정하지 않으면 기본 'TestResults' 디렉터리 내에 파일이 생성됩니다. - - '--diagnostic-output-directory' expects a single directory name argument - '--diagnostic-output-directory'에는 단일 디렉터리 이름 인수가 필요합니다. - - Prefix for the log file name that will replace '[log]_.' '[log]_'를 대체할 로그 파일 이름의 접두사입니다. @@ -324,10 +309,10 @@ 사용 가능한 테스트를 나열합니다. - + Invalid PID '{0}' {1} - 잘못된 PID '{0}' + Invalid PID '{0}' {1} @@ -371,11 +356,6 @@ 시작 배너, 저작권 메시지 또는 원격 분석 배너를 표시하지 마세요. - - '--{0}' expects no argument - '--{0}'에는 인수가 필요하지 않습니다. - - Specify the port of the server. 서버의 포트를 지정합니다. @@ -576,11 +556,6 @@ Microsoft 테스트 플랫폼 원격 분석에 대해 자세히 알아보기: ht 이스케이프 문자가 필터 문자열 '{0}'을(를) 종료하면 안 됨 - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - 단일 인수가 필요합니다(예: '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]'). - - Only the final filter path can contain '**' wildcard 최종 필터 경로만 '**' 와일드카드를 포함할 수 있음 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 52047ab4b5..bdc237c32e 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf @@ -264,11 +264,6 @@ Określ nazwę hosta klienta. - - '--client-host' expects a single host name as argument - Element „--client-host” oczekuje pojedynczej nazwy hosta jako argumentu - - Specify the port of the client. Określ port klienta. @@ -279,11 +274,6 @@ Wymuś synchroniczne zapisywanie dziennika przez wbudowany rejestrator plików. Przydatne w przypadku scenariusza, w którym nie chcesz utracić żadnego dziennika (tj. w przypadku awarii). Pamiętaj, że to spowalnia wykonywanie testu. - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - Element „--diagnostic-output-fileprefix” oczekuje pojedynczego argumentu prefiksu nazwy pliku - - 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 @@ -304,11 +294,6 @@ Katalog wyjściowy rejestrowania diagnostycznego, jeśli nie zostanie określony, plik zostanie wygenerowany w domyślnym katalogu „TestResults”. - - '--diagnostic-output-directory' expects a single directory name argument - Opcja „--diagnostic-output-directory” oczekuje pojedynczego argumentu nazwy katalogu - - Prefix for the log file name that will replace '[log]_.' Prefiks nazwy pliku dziennika, który zastąpi element „[log]_”. @@ -324,10 +309,10 @@ Wyświetl listę dostępnych testów. - + Invalid PID '{0}' {1} - Nieprawidłowy identyfikator PID „{0}” + Invalid PID '{0}' {1} @@ -371,11 +356,6 @@ Nie wyświetlaj baneru startowego, komunikatu o prawach autorskich ani transparentu telemetrii. - - '--{0}' expects no argument - Opcja „--{0}” nie oczekuje żadnego argumentu - - Specify the port of the server. Określ port serwera. @@ -576,11 +556,6 @@ Więcej informacji o telemetrii platformy testowej firmy Microsoft: https://aka. Znak ucieczki nie powinien kończyć ciągu filtru „{0}” - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - Oczekiwano pojedynczego argumentu (np. „/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]”) - - Only the final filter path can contain '**' wildcard Tylko końcowa ścieżka filtru może zawierać symbol wieloznaczny „**” 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 e644550f03..290781235e 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 @@ -264,11 +264,6 @@ Especifique o nome do host do cliente. - - '--client-host' expects a single host name as argument - '--client-host' espera um único nome de host como argumento - - Specify the port of the client. Especifique a porta do cliente. @@ -279,11 +274,6 @@ Force o agente de arquivo interno a gravar o log de forma síncrona. Útil para cenários em que você não deseja perder nenhum log (ou seja, em caso de falha). Observe que isso está diminuindo a execução do teste. - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - '--diagnostic-output-fileprefix' espera um único argumento de prefixo de nome de arquivo - - 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 @@ -304,11 +294,6 @@ Diretório de saída do log de diagnóstico, se não especificado, o arquivo será gerado dentro do diretório padrão 'TestResults'. - - '--diagnostic-output-directory' expects a single directory name argument - '--diagnostic-output-directory' espera um argumento de nome de diretório único - - Prefix for the log file name that will replace '[log]_.' Prefixo do nome do arquivo de log que substituirá '[log]_.' @@ -324,10 +309,10 @@ Listar testes disponíveis. - + Invalid PID '{0}' {1} - PID inválido "{0}" + Invalid PID '{0}' {1} @@ -371,11 +356,6 @@ Não exiba a faixa de inicialização, a mensagem de direitos autorais ou a faixa de telemetria. - - '--{0}' expects no argument - '--{0}' não espera nenhum argumento - - Specify the port of the server. Especifique a porta do servidor. @@ -576,11 +556,6 @@ Leia mais sobre a telemetria da Plataforma de Testes da Microsoft: https://aka.m Um caractere de escape não deve encerrar a cadeia de caracteres de filtro “{0}” - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - Um único argumento é esperado (por exemplo, '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - - Only the final filter path can contain '**' wildcard Somente o caminho do filtro final pode conter curinga “**” 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 5e9bb3da2d..291e50b3b2 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf @@ -264,11 +264,6 @@ Укажите имя узла клиента. - - '--client-host' expects a single host name as argument - "--client-host" ожидает в качестве аргумента одно имя узла - - Specify the port of the client. Укажите порт клиента. @@ -279,11 +274,6 @@ Принудительная синхронная запись журнала с помощью встроенного средства ведения журнала файла. Удобно для сценария, в котором вы не хотите потерять журнал (например, в случае сбоя). Обратите внимание, что это замедляет выполнение теста. - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - "--diagnostic-output-fileprefix" ожидает один аргумент в виде префикса имени файла - - 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 Включить ведение журнала диагностики. Уровень журнала по умолчанию — "Трассировка". Файл с именем log_[MMddHHssfff].diag будет записан в выходной каталог @@ -304,11 +294,6 @@ Выходной каталог журнала диагностики, если не указан, файл будет создан в каталоге "TestResults" по умолчанию. - - '--diagnostic-output-directory' expects a single directory name argument - "--diagnostic-output-directory" ожидает один аргумент в виде имени каталога - - Prefix for the log file name that will replace '[log]_.' Префикс для имени файла журнала, который заменит "[log]_." @@ -324,10 +309,10 @@ Список доступных тестов. - + Invalid PID '{0}' {1} - Недопустимый PID "{0}" + Invalid PID '{0}' {1} @@ -371,11 +356,6 @@ Не отображать баннер запуска, сообщение об авторских правах и баннер телеметрии. - - '--{0}' expects no argument - "--{0}" не ожидает никаких аргументов - - Specify the port of the server. Укажите порт сервера. @@ -576,11 +556,6 @@ Read more about Microsoft Testing Platform telemetry: https://aka.ms/testingplat Escape-символ не должен завершать строку фильтра "{0}" - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - Ожидается один аргумент (например, "/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]") - - Only the final filter path can contain '**' wildcard Только конечный путь фильтра может содержать подстановочный знак "**" 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 eec69238ed..892a68e68b 100644 --- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf +++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf @@ -264,11 +264,6 @@ İstemcinin ana bilgisayar adını belirtir. - - '--client-host' expects a single host name as argument - '--client-host' bağımsız değişken olarak tek bir ana bilgisayar adı bekler - - Specify the port of the client. İstemcinin bağlantı noktasını belirtir. @@ -279,11 +274,6 @@ Yerleşik dosya kaydediciyi günlüğü eşzamanlı olarak yazmaya zorlar. Herhangi bir günlüğü (kilitlenme durumunda) kaybetmek istemediğiniz senaryolar için faydalıdır. Bunun test yürütmesini yavaşlatacağını unutmayın. - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - '--diagnostic-output-fileprefix' tek bir dosya adı ön ek bağımsız değişkeni bekler - - 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 Tanılama günlük kaydını etkinleştirir. Varsayılan günlük düzeyi: 'İzleme'. Dosya, çıkış dizinine log_[MMddHHssfff].diag adıyla yazılır @@ -304,11 +294,6 @@ Tanılama günlüğüne kaydetme için çıkış dizini belirtilmezse dosya varsayılan 'TestResults' dizini içinde oluşturulur. - - '--diagnostic-output-directory' expects a single directory name argument - '--diagnostic-output-directory' tek bir dizin adı bağımsız değişkeni bekliyor - - Prefix for the log file name that will replace '[log]_.' '[log]_' öğesinin yerini alan günlük dosyası adına önek uygular. @@ -324,10 +309,10 @@ Kullanılabilir testleri listeler. - + Invalid PID '{0}' {1} - Geçersiz PID '{0}' + Invalid PID '{0}' {1} @@ -371,11 +356,6 @@ Başlangıç başlığını, telif hakkı iletisini veya telemetri başlığını görüntülemez. - - '--{0}' expects no argument - '--{0}' bağımsız değişken beklemiyor - - Specify the port of the server. Sunucunun bağlantı noktasını belirtir. @@ -576,11 +556,6 @@ Microsoft Test Platformu telemetrisi hakkında daha fazla bilgi edinin: https:// Kaçış karakteri, '{0}' filtre dizesini sonlandırmamalıdır - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - Tek bir bağımsız değişken bekleniyor (ör. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - - Only the final filter path can contain '**' wildcard Yalnızca son filtre yolu, '**' joker karakterlerini içerebilir 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 179b601a57..7ae7b9e529 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 @@ -264,11 +264,6 @@ 指定客户端的主机名。 - - '--client-host' expects a single host name as argument - “--client-host”应有单一主机名作为参数 - - Specify the port of the client. 指定客户端的端口。 @@ -279,11 +274,6 @@ 强制内置文件记录器同步写入日志。适用于不想丢失任何日志的情况 (即在故障的情况下)。请注意,这会减慢测试的执行速度。 - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - “--diagnostic-output-fileprefix”应有单一文件名前缀参数 - - 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 @@ -304,11 +294,6 @@ 诊断日志记录的输出目录,如果未指定,则文件将在默认的“TestResults”目录中生成。 - - '--diagnostic-output-directory' expects a single directory name argument - “--diagnostic-output-directory”应有单一目录名称参数 - - Prefix for the log file name that will replace '[log]_.' 将替换“[log]_”的日志文件名的前缀 @@ -324,10 +309,10 @@ 列出可用的测试。 - + Invalid PID '{0}' {1} - 无效的 PID“{0}” + Invalid PID '{0}' {1} @@ -371,11 +356,6 @@ 请勿显示启动横幅、版权信息或遥测横幅。 - - '--{0}' expects no argument - “--{0}”不应有参数 - - Specify the port of the server. 指定服务器的端口。 @@ -576,11 +556,6 @@ Microsoft 测试平台会收集使用数据,帮助我们改善体验。该数 转义字符不应终止筛选字符串“{0}” - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - 需要单一参数 (例如,'/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - - Only the final filter path can contain '**' wildcard 只有最终筛选路径可以包含“**”通配符 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 df46ce47fe..206510cc18 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 @@ -264,11 +264,6 @@ 指定用戶端的主機名稱。 - - '--client-host' expects a single host name as argument - '--client-host' 需要單一主機名稱做為引數 - - Specify the port of the client. 指定用戶端的連接埠。 @@ -279,11 +274,6 @@ 強制內建檔案記錄器以同步方式寫入記錄。適用於不想遺失任何記錄的案例 (例如損毀)。請注意,這會減慢測試執行的速度。 - - '--diagnostic-output-fileprefix' expects a single file name prefix argument - '--diagnostic-output-fileprefix' 需要單一檔案名稱前置詞引數 - - 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 名稱寫入輸出目錄中 @@ -304,11 +294,6 @@ 診斷記錄的輸出目錄,若未指定,則會在預設的 'TestResults' 目錄內產生檔案。 - - '--diagnostic-output-directory' expects a single directory name argument - '--diagnostic-output-directory' 需要單一目錄名稱引數 - - Prefix for the log file name that will replace '[log]_.' 將取代 '[log]_' 的記錄檔名稱前置詞 @@ -324,10 +309,10 @@ 列出可用的測試。 - + Invalid PID '{0}' {1} - 無效的 PID '{0}' + Invalid PID '{0}' {1} @@ -371,11 +356,6 @@ 不要顯示啟動橫幅、著作權訊息或遙測橫幅。 - - '--{0}' expects no argument - '--{0}' 不需要引數 - - Specify the port of the server. 指定伺服器的連接埠。 @@ -576,11 +556,6 @@ Microsoft 測試平台會收集使用量資料,以協助我們改善您的體 逸出字元不應終止篩選條件字串 '{0}' - - A single argument is expected (e.g. '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - 需要單一引數 (例如 '/MyAssembly/MyNamespace/MyClass/MyTestMethod*[OS=Linux]') - - Only the final filter path can contain '**' wildcard 只有最終篩選條件路徑可以包含 '**' 萬用字元 diff --git a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/InfoTests.cs b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/InfoTests.cs index 3fe5444cc8..72925fee37 100644 --- a/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/InfoTests.cs +++ b/test/IntegrationTests/Microsoft.Testing.Platform.Acceptance.IntegrationTests/InfoTests.cs @@ -125,7 +125,7 @@ .NET Testing Platform v.+ \[.+\] Description: Microsoft Testing Framework\. This framework allows you to test your code anywhere in any mode \(all OSes, all platforms, all configurations\.\.\.\)\. Options: --treenode-filter - Arity: 0\.\.1 + Arity: 1 Hidden: False Description: Use a tree filter to filter down the tests to execute Registered tools: diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/PlatformCommandLineProviderTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/PlatformCommandLineProviderTests.cs new file mode 100644 index 0000000000..1238d9f0af --- /dev/null +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/PlatformCommandLineProviderTests.cs @@ -0,0 +1,204 @@ +// 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 Microsoft.Testing.Internal.Framework; +using Microsoft.Testing.Platform.CommandLine; +using Microsoft.Testing.Platform.Extensions; +using Microsoft.Testing.Platform.Extensions.CommandLine; +using Microsoft.Testing.Platform.Resources; +using Microsoft.Testing.Platform.UnitTests.Helpers; +using Microsoft.Testing.TestInfrastructure; + +namespace Microsoft.Testing.Platform.UnitTests.CommandLine; + +[TestGroup] +public class PlatformCommandLineProviderTests : TestBase +{ + public PlatformCommandLineProviderTests(ITestExecutionContext testExecutionContext) + : base(testExecutionContext) + { + } + + [Arguments("Trace")] + [Arguments("Debug")] + [Arguments("Information")] + [Arguments("Warning")] + [Arguments("Error")] + [Arguments("Critical")] + public async Task IsValid_If_Verbosity_Has_CorrectValue(string dumpType) + { + var provider = new PlatformCommandLineProvider(); + CommandLineOption option = provider.GetCommandLineOptions().First(x => x.Name == PlatformCommandLineProvider.DiagnosticVerbosityOptionKey); + + ValidationResult validateOptionsResult = await provider.ValidateOptionArgumentsAsync(option, [dumpType]).ConfigureAwait(false); + Assert.IsTrue(validateOptionsResult.IsValid); + Assert.IsTrue(string.IsNullOrEmpty(validateOptionsResult.ErrorMessage)); + } + + public async Task IsInvalid_If_Verbosity_Has_IncorrectValue() + { + var provider = new PlatformCommandLineProvider(); + CommandLineOption option = provider.GetCommandLineOptions().First(x => x.Name == PlatformCommandLineProvider.DiagnosticVerbosityOptionKey); + + ValidationResult validateOptionsResult = await provider.ValidateOptionArgumentsAsync(option, ["invalid"]).ConfigureAwait(false); + Assert.IsFalse(validateOptionsResult.IsValid); + Assert.AreEqual(PlatformResources.PlatformCommandLineDiagnosticOptionExpectsSingleArgumentErrorMessage, validateOptionsResult.ErrorMessage); + } + + public async Task IsValid_If_Port_Is_Integer() + { + var provider = new PlatformCommandLineProvider(); + CommandLineOption option = provider.GetCommandLineOptions().First(x => x.Name == PlatformCommandLineProvider.PortOptionKey); + + ValidationResult validateOptionsResult = await provider.ValidateOptionArgumentsAsync(option, ["32"]).ConfigureAwait(false); + Assert.IsTrue(validateOptionsResult.IsValid); + Assert.IsTrue(string.IsNullOrEmpty(validateOptionsResult.ErrorMessage)); + } + + [Arguments("32.32")] + [Arguments("invalid")] + public async Task IsValid_If_Port_Is_Not_Integer(string port) + { + var provider = new PlatformCommandLineProvider(); + CommandLineOption option = provider.GetCommandLineOptions().First(x => x.Name == PlatformCommandLineProvider.PortOptionKey); + + ValidationResult validateOptionsResult = await provider.ValidateOptionArgumentsAsync(option, [port]).ConfigureAwait(false); + Assert.IsFalse(validateOptionsResult.IsValid); + Assert.AreEqual(string.Format(CultureInfo.InvariantCulture, PlatformResources.PlatformCommandLinePortOptionSingleArgument, PlatformCommandLineProvider.PortOptionKey), validateOptionsResult.ErrorMessage); + } + + public async Task IsValid_If_ClientPort_Is_Integer() + { + var provider = new PlatformCommandLineProvider(); + CommandLineOption option = provider.GetCommandLineOptions().First(x => x.Name == PlatformCommandLineProvider.ClientPortOptionKey); + + ValidationResult validateOptionsResult = await provider.ValidateOptionArgumentsAsync(option, ["32"]).ConfigureAwait(false); + Assert.IsTrue(validateOptionsResult.IsValid); + Assert.IsTrue(string.IsNullOrEmpty(validateOptionsResult.ErrorMessage)); + } + + [Arguments("32.32")] + [Arguments("invalid")] + public async Task IsInvalid_If_ClientPort_Is_Not_Integer(string clientPort) + { + var provider = new PlatformCommandLineProvider(); + CommandLineOption option = provider.GetCommandLineOptions().First(x => x.Name == PlatformCommandLineProvider.ClientPortOptionKey); + + ValidationResult validateOptionsResult = await provider.ValidateOptionArgumentsAsync(option, [clientPort]).ConfigureAwait(false); + Assert.IsFalse(validateOptionsResult.IsValid); + Assert.AreEqual(string.Format(CultureInfo.InvariantCulture, PlatformResources.PlatformCommandLinePortOptionSingleArgument, PlatformCommandLineProvider.ClientPortOptionKey), validateOptionsResult.ErrorMessage); + } + + public async Task IsValid_If_ExitOnProcessExit_Is_Integer() + { + var provider = new PlatformCommandLineProvider(); + CommandLineOption option = provider.GetCommandLineOptions().First(x => x.Name == PlatformCommandLineProvider.ExitOnProcessExitOptionKey); + + ValidationResult validateOptionsResult = await provider.ValidateOptionArgumentsAsync(option, ["32"]).ConfigureAwait(false); + Assert.IsTrue(validateOptionsResult.IsValid); + Assert.IsTrue(string.IsNullOrEmpty(validateOptionsResult.ErrorMessage)); + } + + [Arguments("32.32")] + [Arguments("invalid")] + public async Task IsInvalid_If_ExitOnProcessExit_Is_Not_Integer(string pid) + { + var provider = new PlatformCommandLineProvider(); + CommandLineOption option = provider.GetCommandLineOptions().First(x => x.Name == PlatformCommandLineProvider.ExitOnProcessExitOptionKey); + + ValidationResult validateOptionsResult = await provider.ValidateOptionArgumentsAsync(option, [pid]).ConfigureAwait(false); + Assert.IsFalse(validateOptionsResult.IsValid); + Assert.AreEqual(string.Format(CultureInfo.InvariantCulture, PlatformResources.PlatformCommandLineExitOnProcessExitSingleArgument, PlatformCommandLineProvider.ExitOnProcessExitOptionKey), validateOptionsResult.ErrorMessage); + } + + public async Task IsValid_If_Diagnostics_Provided_With_Other_Diagnostics_Provided() + { + var provider = new PlatformCommandLineProvider(); + var options = new Dictionary + { + { PlatformCommandLineProvider.DiagnosticOptionKey, [] }, + { PlatformCommandLineProvider.DiagnosticOutputDirectoryOptionKey, [] }, + { PlatformCommandLineProvider.DiagnosticOutputFilePrefixOptionKey, [] }, + }; + + ValidationResult validateOptionsResult = await provider.ValidateCommandLineOptionsAsync(new TestCommandLineOptions(options)).ConfigureAwait(false); + Assert.IsTrue(validateOptionsResult.IsValid); + Assert.IsTrue(string.IsNullOrEmpty(validateOptionsResult.ErrorMessage)); + } + + public async Task IsValid_When_NoOptionSpecified() + { + var provider = new PlatformCommandLineProvider(); + + ValidationResult validateOptionsResult = await provider.ValidateCommandLineOptionsAsync(new TestCommandLineOptions([])).ConfigureAwait(false); + Assert.IsTrue(validateOptionsResult.IsValid); + Assert.IsTrue(string.IsNullOrEmpty(validateOptionsResult.ErrorMessage)); + } + + [Arguments(PlatformCommandLineProvider.DiagnosticOutputDirectoryOptionKey)] + [Arguments(PlatformCommandLineProvider.DiagnosticOutputFilePrefixOptionKey)] + + public async Task IsNotValid_If_Diagnostics_Missing_When_OthersDiagnostics_Provided(string optionName) + { + var provider = new PlatformCommandLineProvider(); + var options = new Dictionary + { + { optionName, [] }, + }; + + ValidationResult validateOptionsResult = await provider.ValidateCommandLineOptionsAsync(new TestCommandLineOptions(options)).ConfigureAwait(false); + Assert.IsFalse(validateOptionsResult.IsValid); + Assert.AreEqual(string.Format(CultureInfo.InvariantCulture, PlatformResources.PlatformCommandLineDiagnosticOptionIsMissing, optionName), validateOptionsResult.ErrorMessage); + } + + [Arguments(true, false)] + [Arguments(false, true)] + [Arguments(false, false)] + public async Task IsValid_When_Both_DiscoverTests_MinimumExpectedTests_NotProvided(bool discoverTestsSet, bool minimumExpectedTestsSet) + { + var provider = new PlatformCommandLineProvider(); + var options = new Dictionary(); + if (discoverTestsSet) + { + options.Add(PlatformCommandLineProvider.DiscoverTestsOptionKey, []); + } + + if (minimumExpectedTestsSet) + { + options.Add(PlatformCommandLineProvider.MinimumExpectedTestsOptionKey, []); + } + + ValidationResult validateOptionsResult = await provider.ValidateCommandLineOptionsAsync(new TestCommandLineOptions(options)).ConfigureAwait(false); + Assert.IsTrue(validateOptionsResult.IsValid); + Assert.IsTrue(string.IsNullOrEmpty(validateOptionsResult.ErrorMessage)); + } + + public async Task IsInvalid_When_Both_DiscoverTests_MinimumExpectedTests_Provided() + { + var provider = new PlatformCommandLineProvider(); + var options = new Dictionary + { + { PlatformCommandLineProvider.DiscoverTestsOptionKey, [] }, + { PlatformCommandLineProvider.MinimumExpectedTestsOptionKey, [] }, + }; + + ValidationResult validateOptionsResult = await provider.ValidateCommandLineOptionsAsync(new TestCommandLineOptions(options)).ConfigureAwait(false); + Assert.IsFalse(validateOptionsResult.IsValid); + Assert.AreEqual(PlatformResources.PlatformCommandLineMinimumExpectedTestsIncompatibleDiscoverTests, validateOptionsResult.ErrorMessage); + } + + public async Task IsNotValid_If_ExitOnProcess_Not_Running() + { + var provider = new PlatformCommandLineProvider(); + var options = new Dictionary(); + string pid = "-32"; + string[]? args = [pid]; + options.Add(PlatformCommandLineProvider.ExitOnProcessExitOptionKey, args); + + ValidationResult validateOptionsResult = await provider.ValidateCommandLineOptionsAsync(new TestCommandLineOptions(options)).ConfigureAwait(false); + Assert.IsFalse(validateOptionsResult.IsValid); + Assert.IsTrue(validateOptionsResult.ErrorMessage.StartsWith($"Invalid PID '{pid}'", StringComparison.OrdinalIgnoreCase)); + } +} diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/TreeNodeFilterCommandLineOptionsProviderTests.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/TreeNodeFilterCommandLineOptionsProviderTests.cs new file mode 100644 index 0000000000..228eb17e40 --- /dev/null +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/CommandLine/TreeNodeFilterCommandLineOptionsProviderTests.cs @@ -0,0 +1,37 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using Microsoft.Testing.Internal.Framework; +using Microsoft.Testing.Platform.CommandLine; +using Microsoft.Testing.Platform.Extensions; +using Microsoft.Testing.Platform.Extensions.CommandLine; +using Microsoft.Testing.Platform.UnitTests.Helpers; +using Microsoft.Testing.TestInfrastructure; + +namespace Microsoft.Testing.Platform.UnitTests.CommandLine; + +[TestGroup] +public class TreeNodeFilterCommandLineOptionsProviderTests : TestBase +{ + public TreeNodeFilterCommandLineOptionsProviderTests(ITestExecutionContext testExecutionContext) + : base(testExecutionContext) + { + } + + public async Task TreenodeFilter_AlwaysValid() + { + var provider = new TreeNodeFilterCommandLineOptionsProvider(new TestExtension()); + CommandLineOption option = provider.GetCommandLineOptions().First(x => x.Name == TreeNodeFilterCommandLineOptionsProvider.TreenodeFilter); + + ValidationResult validateOptionsResult = await provider.ValidateOptionArgumentsAsync(option, []).ConfigureAwait(false); + Assert.IsTrue(validateOptionsResult.IsValid); + } + + public async Task CommandLineOptions_AlwaysValid() + { + var provider = new TreeNodeFilterCommandLineOptionsProvider(new TestExtension()); + + ValidationResult validateOptionsResult = await provider.ValidateCommandLineOptionsAsync(new TestCommandLineOptions([])).ConfigureAwait(false); + Assert.IsTrue(validateOptionsResult.IsValid); + } +} diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Helpers/TestCommandLineOptions.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Helpers/TestCommandLineOptions.cs new file mode 100644 index 0000000000..2020e0fbd4 --- /dev/null +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Helpers/TestCommandLineOptions.cs @@ -0,0 +1,19 @@ +// 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.Diagnostics.CodeAnalysis; + +using Microsoft.Testing.Platform.CommandLine; + +namespace Microsoft.Testing.Platform.UnitTests.Helpers; + +internal class TestCommandLineOptions : ICommandLineOptions +{ + private readonly Dictionary _options; + + public TestCommandLineOptions(Dictionary options) => _options = options; + + public bool IsOptionSet(string optionName) => _options.ContainsKey(optionName); + + public bool TryGetOptionArgumentList(string optionName, [NotNullWhen(true)] out string[]? arguments) => _options.TryGetValue(optionName, out arguments); +} diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Helpers/TestExtension.cs b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Helpers/TestExtension.cs new file mode 100644 index 0000000000..ae59e39364 --- /dev/null +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/Helpers/TestExtension.cs @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation. All rights reserved. +// Licensed under the MIT license. See LICENSE file in the project root for full license information. + +using Microsoft.Testing.Platform.Extensions; + +namespace Microsoft.Testing.Platform.UnitTests.Helpers; + +internal class TestExtension : IExtension +{ + public string Uid { get; } = "Uid"; + + public string Version { get; } = "Version"; + + public string DisplayName { get; } = "DisplayName"; + + public string Description { get; } = "Description"; + + public Task IsEnabledAsync() => Task.FromResult(true); +} diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/testsbaseline.netfx.txt b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/testsbaseline.netfx.txt index 639d1c8a8e..3674dcf768 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/testsbaseline.netfx.txt +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/testsbaseline.netfx.txt @@ -351,3 +351,30 @@ Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.TreeNo Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.TreeNodeFilterTests.TestNodeFilterNeedsUrlEncodingOfSlashes(string, string, bool) (filter: "/A%2FB", nodePath: "/A/B", isMatched: false) Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.TreeNodeFilterTests.TestNodeFilterNeedsUrlEncodingOfSlashes(string, string, bool) (filter: "/A/B", nodePath: "/A%2FB", isMatched: false) Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.TreeNodeFilterTests.TestNodeFilterNeedsUrlEncodingOfSlashes(string, string, bool) (filter: "/A/B", nodePath: "/A/B", isMatched: true) +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_When_Both_DiscoverTests_MinimumExpectedTests_NotProvided(bool, bool) (discoverTestsSet: false, minimumExpectedTestsSet: false) +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Verbosity_Has_CorrectValue(string) (dumpType: "Warning") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.TreeNodeFilterCommandLineOptionsProviderTests.TreenodeFilter_AlwaysValid() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.TreeNodeFilterCommandLineOptionsProviderTests.CommandLineOptions_AlwaysValid() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Port_Is_Integer() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsInvalid_If_Verbosity_Has_IncorrectValue() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsInvalid_If_ExitOnProcessExit_Is_Not_Integer(string) (pid: "32.32") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Port_Is_Not_Integer(string) (port: "invalid") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsNotValid_If_ExitOnProcess_Not_Running() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_When_Both_DiscoverTests_MinimumExpectedTests_NotProvided(bool, bool) (discoverTestsSet: false, minimumExpectedTestsSet: true) +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Verbosity_Has_CorrectValue(string) (dumpType: "Critical") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_ExitOnProcessExit_Is_Integer() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsInvalid_If_ClientPort_Is_Not_Integer(string) (clientPort: "32.32") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Verbosity_Has_CorrectValue(string) (dumpType: "Debug") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsInvalid_If_ClientPort_Is_Not_Integer(string) (clientPort: "invalid") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsInvalid_When_Both_DiscoverTests_MinimumExpectedTests_Provided() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Verbosity_Has_CorrectValue(string) (dumpType: "Information") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsNotValid_If_Diagnostics_Missing_When_OthersDiagnostics_Provided(string) (optionName: "diagnostic-output-directory") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsNotValid_If_Diagnostics_Missing_When_OthersDiagnostics_Provided(string) (optionName: "diagnostic-output-fileprefix") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_When_Both_DiscoverTests_MinimumExpectedTests_NotProvided(bool, bool) (discoverTestsSet: true, minimumExpectedTestsSet: false) +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Verbosity_Has_CorrectValue(string) (dumpType: "Error") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Diagnostics_Provided_With_Other_Diagnostics_Provided() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_When_NoOptionSpecified() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_ClientPort_Is_Integer() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Verbosity_Has_CorrectValue(string) (dumpType: "Trace") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Port_Is_Not_Integer(string) (port: "32.32") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsInvalid_If_ExitOnProcessExit_Is_Not_Integer(string) (pid: "invalid") diff --git a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/testsbaseline.txt b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/testsbaseline.txt index 0e8ff2271b..6f00047fd1 100644 --- a/test/UnitTests/Microsoft.Testing.Platform.UnitTests/testsbaseline.txt +++ b/test/UnitTests/Microsoft.Testing.Platform.UnitTests/testsbaseline.txt @@ -357,3 +357,30 @@ Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.TreeNo Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.TreeNodeFilterTests.TestNodeFilterNeedsUrlEncodingOfSlashes(string, string, bool) (filter: "/A/B", nodePath: "/A%2FB", isMatched: false) Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.TreeNodeFilterTests.TestNodeFilterNeedsUrlEncodingOfSlashes(string, string, bool) (filter: "/A%2FB", nodePath: "/A/B", isMatched: false) Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.TreeNodeFilterTests.TestNodeFilterNeedsUrlEncodingOfSlashes(string, string, bool) (filter: "/A%2FB", nodePath: "/A%2FB", isMatched: true) +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_When_Both_DiscoverTests_MinimumExpectedTests_NotProvided(bool, bool) (discoverTestsSet: false, minimumExpectedTestsSet: false) +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Verbosity_Has_CorrectValue(string) (dumpType: "Warning") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.TreeNodeFilterCommandLineOptionsProviderTests.TreenodeFilter_AlwaysValid() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.TreeNodeFilterCommandLineOptionsProviderTests.CommandLineOptions_AlwaysValid() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Port_Is_Integer() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsInvalid_If_Verbosity_Has_IncorrectValue() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsInvalid_If_ExitOnProcessExit_Is_Not_Integer(string) (pid: "32.32") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Port_Is_Not_Integer(string) (port: "invalid") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsNotValid_If_ExitOnProcess_Not_Running() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_When_Both_DiscoverTests_MinimumExpectedTests_NotProvided(bool, bool) (discoverTestsSet: false, minimumExpectedTestsSet: true) +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Verbosity_Has_CorrectValue(string) (dumpType: "Critical") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_ExitOnProcessExit_Is_Integer() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsInvalid_If_ClientPort_Is_Not_Integer(string) (clientPort: "32.32") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Verbosity_Has_CorrectValue(string) (dumpType: "Debug") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsInvalid_If_ClientPort_Is_Not_Integer(string) (clientPort: "invalid") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsInvalid_When_Both_DiscoverTests_MinimumExpectedTests_Provided() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Verbosity_Has_CorrectValue(string) (dumpType: "Information") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsNotValid_If_Diagnostics_Missing_When_OthersDiagnostics_Provided(string) (optionName: "diagnostic-output-directory") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsNotValid_If_Diagnostics_Missing_When_OthersDiagnostics_Provided(string) (optionName: "diagnostic-output-fileprefix") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_When_Both_DiscoverTests_MinimumExpectedTests_NotProvided(bool, bool) (discoverTestsSet: true, minimumExpectedTestsSet: false) +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Verbosity_Has_CorrectValue(string) (dumpType: "Error") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Diagnostics_Provided_With_Other_Diagnostics_Provided() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_When_NoOptionSpecified() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_ClientPort_Is_Integer() +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Verbosity_Has_CorrectValue(string) (dumpType: "Trace") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsValid_If_Port_Is_Not_Integer(string) (port: "32.32") +Microsoft.Testing.Platform.UnitTests.Microsoft.Testing.Platform.UnitTests.CommandLine.PlatformCommandLineProviderTests.IsInvalid_If_ExitOnProcessExit_Is_Not_Integer(string) (pid: "invalid")