diff --git a/TestFx.slnx b/TestFx.slnx
index 5d7f088626..a761d01781 100644
--- a/TestFx.slnx
+++ b/TestFx.slnx
@@ -136,6 +136,7 @@
+
diff --git a/src/Platform/Microsoft.Testing.Platform/Helpers/ApplicationStateGuard.cs b/src/Platform/Microsoft.Testing.Platform/Helpers/ApplicationStateGuard.cs
index e5c29e26d6..66d765cf20 100644
--- a/src/Platform/Microsoft.Testing.Platform/Helpers/ApplicationStateGuard.cs
+++ b/src/Platform/Microsoft.Testing.Platform/Helpers/ApplicationStateGuard.cs
@@ -2,13 +2,18 @@
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
using Microsoft.CodeAnalysis;
-using Microsoft.Testing.Platform.Resources;
namespace Microsoft.Testing.Platform.Helpers;
[Embedded]
internal static class ApplicationStateGuard
{
+ // These are internal invariant-violation diagnostics for "impossible" states; they are intentionally NOT
+ // localized (matching e.g. System.Diagnostics.UnreachableException) so that this foundational helper has no
+ // dependency on PlatformResources and can be shared as source (e.g. with dotnet/sdk's terminal reporter).
+ private const string UnexpectedStateErrorMessage = "Unexpected state in file '{0}' at line '{1}'";
+ private const string UnreachableLocationErrorMessage = "This program location is thought to be unreachable. File='{0}' Line={1}";
+
public static void Ensure([DoesNotReturnIf(false)] bool condition, string errorMessage)
{
if (!condition)
@@ -23,7 +28,7 @@ public static void Ensure([DoesNotReturnIf(false)] bool condition, [CallerFilePa
{
throw new InvalidOperationException(string.Format(
CultureInfo.InvariantCulture,
- PlatformResources.UnexpectedStateErrorMessage,
+ UnexpectedStateErrorMessage,
path, line));
}
}
@@ -31,6 +36,6 @@ public static void Ensure([DoesNotReturnIf(false)] bool condition, [CallerFilePa
public static InvalidOperationException Unreachable([CallerFilePath] string? path = null, [CallerLineNumber] int line = 0)
=> new(string.Format(
CultureInfo.InvariantCulture,
- PlatformResources.UnreachableLocationErrorMessage,
+ UnreachableLocationErrorMessage,
path, line));
}
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalReporterContract.props b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalReporterContract.props
new file mode 100644
index 0000000000..bd41933e6f
--- /dev/null
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalReporterContract.props
@@ -0,0 +1,79 @@
+
+
+
+
+
+ <_TerminalContractPlatform>$(MSBuildThisFileDirectory)..\..
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalResources.cs b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalResources.cs
index 80ca42eec7..e3fc923e8a 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalResources.cs
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalResources.cs
@@ -1,4 +1,4 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
+// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
#if !IS_CORE_MTP
@@ -15,11 +15,8 @@
namespace Microsoft.Testing.Platform.OutputDevice.Terminal;
-// Strongly-typed accessor for TerminalResources.resx. In core MTP the accessor is generated by Arcade
-// (GenerateSource). We add this [Embedded] partial so the type is embedded per-assembly when the terminal
-// reporter source is shared with external consumers (e.g. dotnet/sdk's 'dotnet test'). When linked into an
-// assembly that does NOT compile the resx (e.g. the unit-test project), the !IS_CORE_MTP block provides a
-// ResourceManager pointing at the core MTP assembly, mirroring the PlatformResources pattern.
+// Strongly-typed accessor for TerminalResources.resx; [Embedded] so it is per-assembly when shared. The
+// !IS_CORE_MTP branch points the ResourceManager at the core MTP assembly for in-repo linked consumers.
[Embedded]
internal static partial class TerminalResources
{
@@ -32,83 +29,91 @@ internal static partial class TerminalResources
internal static string @Aborted => GetResourceString("Aborted");
+ internal static string @ActiveTestsRunning_FullTestsCount => GetResourceString("ActiveTestsRunning_FullTestsCount");
+
+ internal static string @ActiveTestsRunning_MoreTestsCount => GetResourceString("ActiveTestsRunning_MoreTestsCount");
+
internal static string @Actual => GetResourceString("Actual");
internal static string @CancelledLowercase => GetResourceString("CancelledLowercase");
internal static string @CancellingTestSession => GetResourceString("CancellingTestSession");
- internal static string @PressCtrlCAgainToForceExit => GetResourceString("PressCtrlCAgainToForceExit");
+ internal static string @ConsoleIsAlreadyInBatchingMode => GetResourceString("ConsoleIsAlreadyInBatchingMode");
+
+ internal static string @DurationLowercase => GetResourceString("DurationLowercase");
internal static string @Expected => GetResourceString("Expected");
+ internal static string @Failed => GetResourceString("Failed");
+
internal static string @FailedLowercase => GetResourceString("FailedLowercase");
internal static string @ForTest => GetResourceString("ForTest");
internal static string @InProcessArtifactsProduced => GetResourceString("InProcessArtifactsProduced");
- internal static string @OutOfProcessArtifactsProduced => GetResourceString("OutOfProcessArtifactsProduced");
+ internal static string @MinimumExpectedTestsPolicyViolation => GetResourceString("MinimumExpectedTestsPolicyViolation");
- internal static string @PassedLowercase => GetResourceString("PassedLowercase");
-
- internal static string @SkippedLowercase => GetResourceString("SkippedLowercase");
+ internal static string @OutOfProcessArtifactsProduced => GetResourceString("OutOfProcessArtifactsProduced");
- internal static string @TotalLowercase => GetResourceString("TotalLowercase");
+ internal static string @Passed => GetResourceString("Passed");
- internal static string @ConsoleIsAlreadyInBatchingMode => GetResourceString("ConsoleIsAlreadyInBatchingMode");
+ internal static string @PassedLowercase => GetResourceString("PassedLowercase");
- internal static string @DurationLowercase => GetResourceString("DurationLowercase");
+ internal static string @PressCtrlCAgainToForceExit => GetResourceString("PressCtrlCAgainToForceExit");
- internal static string @TestRunSummary => GetResourceString("TestRunSummary");
+ internal static string @SkippedLowercase => GetResourceString("SkippedLowercase");
internal static string @StackFrameAt => GetResourceString("StackFrameAt");
internal static string @StackFrameIn => GetResourceString("StackFrameIn");
- internal static string @TerminalNoAnsiOptionDescription => GetResourceString("TerminalNoAnsiOptionDescription");
+ internal static string @StandardError => GetResourceString("StandardError");
+
+ internal static string @StandardOutput => GetResourceString("StandardOutput");
+
+ internal static string @SucceededLowercase => GetResourceString("SucceededLowercase");
internal static string @TerminalAnsiOptionDescription => GetResourceString("TerminalAnsiOptionDescription");
internal static string @TerminalAnsiOptionInvalidArgument => GetResourceString("TerminalAnsiOptionInvalidArgument");
+ internal static string @TerminalNoAnsiOptionDescription => GetResourceString("TerminalNoAnsiOptionDescription");
+
internal static string @TerminalNoProgressOptionDescription => GetResourceString("TerminalNoProgressOptionDescription");
- internal static string @TerminalProgressOptionDescription => GetResourceString("TerminalProgressOptionDescription");
+ internal static string @TerminalOutputOptionDescription => GetResourceString("TerminalOutputOptionDescription");
- internal static string @TerminalProgressOptionInvalidArgument => GetResourceString("TerminalProgressOptionInvalidArgument");
+ internal static string @TerminalOutputOptionInvalidArgument => GetResourceString("TerminalOutputOptionInvalidArgument");
internal static string @TerminalProgressHeartbeat => GetResourceString("TerminalProgressHeartbeat");
internal static string @TerminalProgressHeartbeatActiveSuffix => GetResourceString("TerminalProgressHeartbeatActiveSuffix");
- internal static string @TerminalProgressSlowTest => GetResourceString("TerminalProgressSlowTest");
-
- internal static string @TerminalTestReporterDescription => GetResourceString("TerminalTestReporterDescription");
-
- internal static string @TerminalTestReporterDisplayName => GetResourceString("TerminalTestReporterDisplayName");
+ internal static string @TerminalProgressOptionDescription => GetResourceString("TerminalProgressOptionDescription");
- internal static string @TerminalOutputOptionDescription => GetResourceString("TerminalOutputOptionDescription");
+ internal static string @TerminalProgressOptionInvalidArgument => GetResourceString("TerminalProgressOptionInvalidArgument");
- internal static string @TerminalOutputOptionInvalidArgument => GetResourceString("TerminalOutputOptionInvalidArgument");
+ internal static string @TerminalProgressSlowTest => GetResourceString("TerminalProgressSlowTest");
- internal static string @TerminalShowStdoutOptionDescription => GetResourceString("TerminalShowStdoutOptionDescription");
+ internal static string @TerminalShowOutputOptionInvalidArgument => GetResourceString("TerminalShowOutputOptionInvalidArgument");
internal static string @TerminalShowStderrOptionDescription => GetResourceString("TerminalShowStderrOptionDescription");
- internal static string @TerminalShowOutputOptionInvalidArgument => GetResourceString("TerminalShowOutputOptionInvalidArgument");
+ internal static string @TerminalShowStdoutOptionDescription => GetResourceString("TerminalShowStdoutOptionDescription");
- internal static string @StandardError => GetResourceString("StandardError");
+ internal static string @TerminalTestReporterDescription => GetResourceString("TerminalTestReporterDescription");
- internal static string @StandardOutput => GetResourceString("StandardOutput");
+ internal static string @TerminalTestReporterDisplayName => GetResourceString("TerminalTestReporterDisplayName");
internal static string @TestDiscoverySummarySingular => GetResourceString("TestDiscoverySummarySingular");
- internal static string @ActiveTestsRunning_MoreTestsCount => GetResourceString("ActiveTestsRunning_MoreTestsCount");
+ internal static string @TestRunSummary => GetResourceString("TestRunSummary");
- internal static string @ActiveTestsRunning_FullTestsCount => GetResourceString("ActiveTestsRunning_FullTestsCount");
+ internal static string @TotalLowercase => GetResourceString("TotalLowercase");
- internal static string @SucceededLowercase => GetResourceString("SucceededLowercase");
+ internal static string @ZeroTestsRan => GetResourceString("ZeroTestsRan");
#endif
}
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalResources.resx b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalResources.resx
index e917c2d321..f9a29f9686 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalResources.resx
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/TerminalResources.resx
@@ -136,6 +136,9 @@
Expected
+
+ Failed
+
failed
@@ -146,9 +149,16 @@
In process file artifacts produced:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+
Out of process file artifacts produced:
+
+ Passed
+
passed
@@ -158,6 +168,9 @@
total
+
+ Zero tests ran
+
Console is already in batching mode.Exception that is thrown when console is already collecting input into a batch (into a string builder), and code asks to enable batching mode again.
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf
index 71476aebb8..74fb91043d 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.cs.xlf
@@ -37,6 +37,11 @@
Očekáváno
+
+ Failed
+ Neúspěšné
+
+ failedselhalo
@@ -52,6 +57,11 @@
Vytvořené artefakty souboru v procesu:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ Minimální očekávané porušení zásad testů, spuštěné testy: {0}, očekávané minimum: {1}
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} morea ještě {0}
@@ -67,6 +77,11 @@
Vytvořené artefakty souboru mimo proces:
+
+ Passed
+ Úspěšné
+
+ passedúspěch
@@ -215,6 +230,11 @@ Platné hodnoty jsou All, Failed, None. Výchozí hodnota je All (nebo Failed, k
Souhrn testovacího běhu:
+
+ Zero tests ran
+ Spustila se nula testů
+
+ totalcelkem
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.de.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.de.xlf
index d0974c4a92..7862af3829 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.de.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.de.xlf
@@ -37,6 +37,11 @@
Erwartet
+
+ Failed
+ Fehler
+
+ failedfehlerhaft
@@ -52,6 +57,11 @@
In Bearbeitung Dateiartefakte erstellt:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ Mindestens erwartete Testrichtlinienverletzung, {0} Tests wurden ausgeführt, mindestens erwartet: {1}
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} moreund {0} weitere
@@ -67,6 +77,11 @@
Nicht verarbeitete Dateiartefakte erstellt:
+
+ Passed
+ Bestanden
+
+ passederfolgreich
@@ -215,6 +230,11 @@ Gültige Werte sind „All“, „Failed“ und „None“. Der Standardwert ist
Testlaufzusammenfassung:
+
+ Zero tests ran
+ Es wurden keine Tests ausgeführt.
+
+ totalgesamt
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.es.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.es.xlf
index 67a0ff5f7d..1abcbd5148 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.es.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.es.xlf
@@ -37,6 +37,11 @@
Se esperaba
+
+ Failed
+ Error
+
+ failedcon errores
@@ -52,6 +57,11 @@
Artefactos de archivo en proceso producidos:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ Infracción de directiva de pruebas mínimas esperadas, pruebas ejecutadas {0}, mínimas esperadas {1}
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} morey {0} más
@@ -67,6 +77,11 @@
Artefactos de archivo fuera de proceso producidos:
+
+ Passed
+ Correcta
+
+ passedcorrecto
@@ -215,6 +230,11 @@ Los valores válidos son "All", "Failed", "None". El valor predeterminado es "Al
Resumen de la serie de pruebas:
+
+ Zero tests ran
+ No se ejecutaron pruebas
+
+ totaltotal
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.fr.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.fr.xlf
index 75a6f42bf3..ed9ad88b58 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.fr.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.fr.xlf
@@ -37,6 +37,11 @@
Attendu
+
+ Failed
+ Échec
+
+ failedéchec
@@ -52,6 +57,11 @@
Artéfacts produits dans les dossiers en cours de traitement :
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ Violation de stratégie de tests minimale attendue, tests exécutés {0}, minimum attendu {1}
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} moreet {0} de plus
@@ -67,6 +77,11 @@
Artefacts de fichier hors processus produits :
+
+ Passed
+ Réussite
+
+ passedréussite
@@ -215,6 +230,11 @@ Les valeurs valides sont « All », « Failed » et « None ». La valeur
Résumé de série de tests :
+
+ Zero tests ran
+ Zéro tests exécutés
+
+ totaltotal
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.it.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.it.xlf
index 870691db61..4a27db74b8 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.it.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.it.xlf
@@ -37,6 +37,11 @@
Previsto
+
+ Failed
+ Errore
+
+ failedoperazione non riuscita
@@ -52,6 +57,11 @@
Artefatti file in fase di elaborazione prodotti:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ Violazione minima dei criteri di test previsti, test eseguiti {0}, minimo previsto {1}
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} moree altri {0}
@@ -67,6 +77,11 @@
Artefatti file non in elaborazione prodotti:
+
+ Passed
+ Superato
+
+ passedsuperato
@@ -215,6 +230,11 @@ I valori validi sono 'All', 'Failed', 'None'. L'impostazione predefinita è 'All
Riepilogo esecuzione test:
+
+ Zero tests ran
+ Nessun test eseguito
+
+ totaltotali
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ja.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ja.xlf
index 57b9cb667a..c51b657a25 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ja.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ja.xlf
@@ -37,6 +37,11 @@
予想
+
+ Failed
+ 失敗
+
+ failed失敗
@@ -52,6 +57,11 @@
インプロセスのファイル成果物が生成されました:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ 予想されるテストの最小ポリシー違反、テストの実行数 {0} 件、予想される最小数 {1} 件
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} moreその他 {0} 件
@@ -67,6 +77,11 @@
アウトプロセスのファイル成果物が生成されました:
+
+ Passed
+ 成功
+
+ passed合格しました
@@ -215,6 +230,11 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an
テストの実行の概要:
+
+ Zero tests ran
+ 0 件のテストが実行されました
+
+ total合計
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ko.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ko.xlf
index 3f75bd79af..6ad5ad3691 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ko.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ko.xlf
@@ -37,6 +37,11 @@
필요
+
+ Failed
+ 실패
+
+ failed실패
@@ -52,6 +57,11 @@
생성된 In process 파일 아티팩트:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ 예상되는 최소 테스트 정책 위반, 테스트 실행 {0}, 필요한 최소 {1}
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} more외 {0}개
@@ -67,6 +77,11 @@
생성된 Out of process 파일 아티팩트:
+
+ Passed
+ 통과
+
+ passed통과
@@ -215,6 +230,11 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an
테스트 실행 요약:
+
+ Zero tests ran
+ 테스트가 0개 실행됨
+
+ total합계
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pl.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pl.xlf
index 89e39e7552..d43df880e8 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pl.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pl.xlf
@@ -37,6 +37,11 @@
Oczekiwane
+
+ Failed
+ Niepowodzenie
+
+ failedzakończone niepowodzeniem
@@ -52,6 +57,11 @@
Wygenerowane artefakty pliku w trakcie procesu:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ Minimalne oczekiwane naruszenie zasad testów, uruchomione testy: {0}, oczekiwane minimum: {1}
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} morei {0} więcej
@@ -67,6 +77,11 @@
Wygenerowane artefakty pliku poza procesem:
+
+ Passed
+ Powodzenie
+
+ passedzakończone powodzeniem
@@ -215,6 +230,11 @@ Prawidłowe wartości to „All”, „Failed”, „None”. Wartość domyśln
Podsumowanie przebiegu testu:
+
+ Zero tests ran
+ Uruchomiono zero testów
+
+ totalłącznie
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pt-BR.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pt-BR.xlf
index 50a17cfe63..7b3cd8df4f 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pt-BR.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.pt-BR.xlf
@@ -37,6 +37,11 @@
Esperado
+
+ Failed
+ Falhou
+
+ failedcom falha
@@ -52,6 +57,11 @@
Artefatos de arquivo de processo produzidos:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ Violação de política de testes mínimos esperados, {0} testes executados, mínimo esperado {1}
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} moree mais {0}
@@ -67,6 +77,11 @@
Artefatos de arquivo fora do processo produzidos:
+
+ Passed
+ Aprovado
+
+ passedaprovado
@@ -215,6 +230,11 @@ Os valores válidos são 'All', 'Failed', 'None'. O padrão é 'All' (ou 'Failed
Resumo da execução de teste:
+
+ Zero tests ran
+ Zero testes executados
+
+ totaltotal
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf
index 537c1dd9e7..108d86c697 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.ru.xlf
@@ -37,6 +37,11 @@
Ожидалось
+
+ Failed
+ Сбой
+
+ failedсбой
@@ -52,6 +57,11 @@
Созданные в процессе артефакты файлов:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ Нарушение политики минимального ожидаемого числа тестов, тесты выполнено: {0}, ожидаемый минимум: {1}
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} moreи еще {0}
@@ -67,6 +77,11 @@
Созданные вне процесса артефакты файлов:
+
+ Passed
+ Пройден
+
+ passedпройдено
@@ -215,6 +230,11 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an
Сводка тестового запуска:
+
+ Zero tests ran
+ Запущено ноль тестов
+
+ totalвсего
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.tr.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.tr.xlf
index ecf9265e56..e507532f0d 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.tr.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.tr.xlf
@@ -37,6 +37,11 @@
Beklenen
+
+ Failed
+ Başarısız
+
+ failedbaşarısız
@@ -52,6 +57,11 @@
Üretilen işlem içi dosya yapıtları:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ Beklenen minimum test ilke ihlali, yürütülen test: {0}, beklenen minimum test: {1}
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} moreve {0} tane daha
@@ -67,6 +77,11 @@
Üretilen işlem dışı dosya yapıtları:
+
+ Passed
+ Başarılı
+
+ passedbaşarılı
@@ -215,6 +230,11 @@ Geçerli değerler: 'All', 'Failed', 'None'. Varsayılan değer 'All' (veya bir
Test çalıştırması özeti:
+
+ Zero tests ran
+ Sıfır test çalıştırıldı
+
+ totaltoplam
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hans.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hans.xlf
index 6c94f4aec6..d5c4f06e62 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hans.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hans.xlf
@@ -37,6 +37,11 @@
预期
+
+ Failed
+ 失败
+
+ failed失败
@@ -52,6 +57,11 @@
生成的进程内文件项目:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ 最低预期测试策略冲突,测试已运行 {0} 次,最低预期 {1} 次
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} more和其他 {0} 项
@@ -67,6 +77,11 @@
生成的进程外文件项目:
+
+ Passed
+ 已通过
+
+ passed已通过
@@ -215,6 +230,11 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an
测试运行摘要:
+
+ Zero tests ran
+ 运行了零个测试
+
+ total总计
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hant.xlf b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hant.xlf
index dcfe375665..929728208a 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hant.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/Terminal/xlf/TerminalResources.zh-Hant.xlf
@@ -37,6 +37,11 @@
預期
+
+ Failed
+ 失敗
+
+ failed已失敗
@@ -52,6 +57,11 @@
產生的流程内檔案成品:
+
+ Minimum expected tests policy violation, tests ran {0}, minimum expected {1}
+ 預期測試原則違反的最小值,{0} 個執行的測試,預期的最小值為 {1}
+ {0} is the number of tests that ran. {1} is the minimum expected number of tests.
+ and {0} more和其他 {0} 個
@@ -67,6 +77,11 @@
產生的流程外檔案成品:
+
+ Passed
+ 成功
+
+ passed已通過
@@ -215,6 +230,11 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an
測試回合摘要:
+
+ Zero tests ran
+ 已執行零項測試
+
+ total總計
diff --git a/src/Platform/Microsoft.Testing.Platform/OutputDevice/TestRunSummaryHelper.cs b/src/Platform/Microsoft.Testing.Platform/OutputDevice/TestRunSummaryHelper.cs
index e580d82320..0b6a29c1ec 100644
--- a/src/Platform/Microsoft.Testing.Platform/OutputDevice/TestRunSummaryHelper.cs
+++ b/src/Platform/Microsoft.Testing.Platform/OutputDevice/TestRunSummaryHelper.cs
@@ -1,7 +1,7 @@
// Copyright (c) Microsoft Corporation. All rights reserved.
// Licensed under the MIT license. See LICENSE file in the project root for full license information.
-using Microsoft.Testing.Platform.Resources;
+using Microsoft.Testing.Platform.OutputDevice.Terminal;
namespace Microsoft.Testing.Platform.OutputDevice;
@@ -30,11 +30,11 @@ internal static bool IsRunFailed(int totalTests, int failedTests, int skippedTes
internal static string GetVerdictText(int totalTests, int failedTests, int skippedTests, bool wasCancelled, int minimumExpectedTests)
=> true switch
{
- _ when wasCancelled => PlatformResources.Aborted,
- _ when totalTests < minimumExpectedTests => string.Format(CultureInfo.CurrentCulture, PlatformResources.MinimumExpectedTestsPolicyViolation, totalTests, minimumExpectedTests),
- _ when totalTests == 0 || totalTests == skippedTests => PlatformResources.ZeroTestsRan,
- _ when failedTests > 0 => $"{PlatformResources.Failed}!",
- _ => $"{PlatformResources.Passed}!",
+ _ when wasCancelled => TerminalResources.Aborted,
+ _ when totalTests < minimumExpectedTests => string.Format(CultureInfo.CurrentCulture, TerminalResources.MinimumExpectedTestsPolicyViolation, totalTests, minimumExpectedTests),
+ _ when totalTests == 0 || totalTests == skippedTests => TerminalResources.ZeroTestsRan,
+ _ when failedTests > 0 => $"{TerminalResources.Failed}!",
+ _ => $"{TerminalResources.Passed}!",
};
///
@@ -47,11 +47,11 @@ internal static string FormatSummaryText(int totalTests, int failedTests, int pa
string verdict = GetVerdictText(totalTests, failedTests, skippedTests, wasCancelled, minimumExpectedTests);
return $"""
- {PlatformResources.TestRunSummary} {verdict}
- {PlatformResources.TotalLowercase}: {totalTests}
- {PlatformResources.FailedLowercase}: {failedTests}
- {PlatformResources.SucceededLowercase}: {passedTests}
- {PlatformResources.SkippedLowercase}: {skippedTests}
+ {TerminalResources.TestRunSummary} {verdict}
+ {TerminalResources.TotalLowercase}: {totalTests}
+ {TerminalResources.FailedLowercase}: {failedTests}
+ {TerminalResources.SucceededLowercase}: {passedTests}
+ {TerminalResources.SkippedLowercase}: {skippedTests}
""";
}
}
diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.cs b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.cs
index 9a558bf456..5357fec186 100644
--- a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.cs
+++ b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.cs
@@ -30,10 +30,6 @@ internal static partial class PlatformResources
[MethodImpl(MethodImplOptions.AggressiveInlining)]
internal static string GetResourceString(string resourceKey) => ResourceManager.GetString(resourceKey, null)!;
- internal static string @UnexpectedStateErrorMessage => GetResourceString("UnexpectedStateErrorMessage");
-
- internal static string @UnreachableLocationErrorMessage => GetResourceString("UnreachableLocationErrorMessage");
-
internal static string @InternalLoopAsyncDidNotExitSuccessfullyErrorMessage => GetResourceString("InternalLoopAsyncDidNotExitSuccessfullyErrorMessage");
#if IS_MTP_UNIT_TESTS
diff --git a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx
index e759f4adaa..ac60ca5070 100644
--- a/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx
+++ b/src/Platform/Microsoft.Testing.Platform/Resources/PlatformResources.resx
@@ -342,14 +342,6 @@
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- {0} is the source file path. {1} is the source line number.
-
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- {0} is the source file path. {1} is the source line number.
-
Retry failed after {0} times{0} is the retry count.
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 f2d57113bb..91b21d9658 100644
--- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf
@@ -1133,21 +1133,11 @@ Platné hodnoty jsou All, Failed, None. Výchozí hodnota je All (nebo Failed, k
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- Neočekávaný stav v souboru {0} na řádku {1}
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}[ServerTestHost.OnTaskSchedulerUnobservedTaskException] Neošetřená výjimka: {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- Toto umístění programu se považuje za nedostupné. File={0}, Line={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.Čekání na připojení ladicího programu (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) se v prostředích prohlížeče nepodporuje.
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 362910e343..3e0746dc3e 100644
--- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf
@@ -1133,21 +1133,11 @@ Gültige Werte sind „All“, „Failed“ und „None“. Der Standardwert ist
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- Unerwarteter Status in Datei "{0}" in Zeile "{1}"
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}[ServerTestHost.OnTaskSchedulerUnobservedTaskException] Ausnahmefehler: {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- Dieser Programmspeicherort wird als nicht erreichbar betrachtet. File='{0}' Line={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.Das Warten auf das Anfügen des Debuggers (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) wird in Browserumgebungen nicht unterstützt.
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 48cb18c211..60dd4f4688 100644
--- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf
@@ -1133,21 +1133,11 @@ Los valores válidos son "All", "Failed", "None". El valor predeterminado es "Al
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- Estado inesperado en el archivo “{0}” en la línea “{1}”
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}[ServerTestHost.OnTaskSchedulerUnobservedTaskException] excepción no controlada: {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- Se considera que esta ubicación del programa es inaccesible. Archivo=''{0}'' Línea={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.La espera para que se adjunte el depurador (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) no es compatible con los entornos de explorador.
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 c49c40a09e..6510539a9d 100644
--- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf
@@ -1133,21 +1133,11 @@ Les valeurs valides sont « All », « Failed » et « None ». La valeur
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- État inattendu dans le fichier « {0} » à la ligne « {1} »
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}[ServerTestHost.OnTaskSchedulerUnobservedTaskException] exception non prise en charge : {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- Cet emplacement du programme est considéré comme inaccessible. File=« {0} », Ligne={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.L’attente de la connexion du débogueur (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) n’est pas prise en charge dans les environnements navigateur.
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 6351dd23f3..4689cea623 100644
--- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf
@@ -1133,21 +1133,11 @@ I valori validi sono 'All', 'Failed', 'None'. L'impostazione predefinita è 'All
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- Stato imprevisto nel file '{0}' alla riga '{1}'
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}[ServerTestHost.OnTaskSchedulerUnobservedTaskException] eccezione non gestita: {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- La posizione del programma è ritenuta non raggiungibile. File='{0}', Riga={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.L'attesa per il collegamento di (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) non è supportata negli ambienti browser.
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 7c7af24390..a7525a03d9 100644
--- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf
@@ -1134,21 +1134,11 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- ファイル '{0}' の行 '{1}' の予期しない状態
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}ハンドルされない例外 [ServerTestHost.OnTaskSchedulerUnobservedTaskException]: {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- このプログラムの場所に到達できないと考えられます。ファイル='{0}'、行={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.デバッガーのアタッチの待機 (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) は、ブラウザー環境ではサポートされていません。
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 4ba1e76eae..53885ac085 100644
--- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf
@@ -1133,21 +1133,11 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- '{1}' 줄의 '{0}' 파일에 예기치 않은 상태가 있습니다.
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}처리되지 않은 예외 [ServerTestHost.OnTaskSchedulerUnobservedTaskException]: {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- 이 프로그램 위치에 연결할 수 없는 것으로 생각됩니다. File='{0}' Line={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.디버거 연결 대기(TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1)는 브라우저 환경에서 지원되지 않습니다.
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 6f4046a478..7578d479bf 100644
--- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf
@@ -1133,21 +1133,11 @@ Prawidłowe wartości to „All”, „Failed”, „None”. Wartość domyśln
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- Nieoczekiwany stan w pliku „{0}” w wierszu „{1}”
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}[ServerTestHost.OnTaskSchedulerUnobservedTaskException] Nieobsługiwany wyjątek: {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- Ta lokalizacja programu jest uważana za nieosiągalną. Plik=„{0}”, Wiersz={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.Oczekiwanie na dołączenie debugera (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) nie jest obsługiwane w środowiskach przeglądarki.
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 cb0a3dbd93..560d44c4a5 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
@@ -1133,21 +1133,11 @@ Os valores válidos são 'All', 'Failed', 'None'. O padrão é 'All' (ou 'Failed
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- Estado inesperado no arquivo '{0}' na linha '{1}'
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}[ServerTestHost.OnTaskSchedulerUnobservedTaskException] exceção sem tratamento: {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- Este local do programa é considerado inacessível. Arquivo='{0}' Linha={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.Não há suporte para aguardar a anexação do depurador (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) em ambientes de navegador.
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 971f075b17..5259d386e5 100644
--- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf
@@ -1133,21 +1133,11 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- Непредвиденное состояние в файле "{0}" в строке "{1}"
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}[ServerTestHost.OnTaskSchedulerUnobservedTaskException] необработанное исключение: {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- Похоже, что это расположение программы является недоступным. Файл="{0}", строка={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.Ожидание подключения отладчика (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) не поддерживается в браузерных средах.
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 7010b11d68..22ad8839cf 100644
--- a/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf
+++ b/src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf
@@ -1133,21 +1133,11 @@ Geçerli değerler: 'All', 'Failed', 'None'. Varsayılan değer 'All' (veya bir
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- '{0}' dosyasında '{1}' satırındaki durum beklenmiyordu
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}[ServerTestHost.OnTaskSchedulerUnobservedTaskException] özel durum: {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- Bu program konumu erişilemez olarak görülüyor. Dosya='{0}', Satır={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.Hata ayıklayıcısının eklenmesini bekleme (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) tarayıcı ortamlarında desteklenmez.
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 f47b0679f9..7346a20001 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
@@ -1133,21 +1133,11 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- 文件“{0}”中第“{1}”行出现意外状态
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}[ServerTestHost.OnTaskSchedulerUnobservedTaskException] 未经处理的异常: {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- 此程序位置被视为无法访问。文件='{0}',行={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.浏览器环境不支持等待调试器附加(TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1)。
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 32912ad50d..4ba7e39a22 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
@@ -1133,21 +1133,11 @@ Valid values are 'All', 'Failed', 'None'. Default is 'All' (or 'Failed' when an
{0}
{0} is the exception ToString output. {Locked="FileLogger.WriteLogToFileAsync"}
-
- Unexpected state in file '{0}' at line '{1}'
- 檔案 '{0}' 的第 '{1}' 行出現未預期的狀態
- {0} is the source file path. {1} is the source line number.
- [ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}[ServerTestHost.OnTaskSchedulerUnobservedTaskException] 未處理的例外狀況: {0}{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}
-
- This program location is thought to be unreachable. File='{0}' Line={1}
- 此程式位置被認為無法連線。File='{0}' Line={1}
- {0} is the source file path. {1} is the source line number.
- Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.瀏覽器環境不支援等待除錯器附加 (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1)。
diff --git a/test/UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests/BannedSymbols.txt b/test/UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests/BannedSymbols.txt
new file mode 100644
index 0000000000..ab9946cf24
--- /dev/null
+++ b/test/UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests/BannedSymbols.txt
@@ -0,0 +1 @@
+N:AwesomeAssertions; Use MSTest assertions instead.
diff --git a/test/UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests.csproj b/test/UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests.csproj
new file mode 100644
index 0000000000..7c37a1af53
--- /dev/null
+++ b/test/UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests.csproj
@@ -0,0 +1,38 @@
+
+
+
+ $(SupportedNetFrameworks)
+ true
+ Exe
+
+ $(NoWarn);CS0436
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test/UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests/Program.cs b/test/UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests/Program.cs
new file mode 100644
index 0000000000..87d438ae64
--- /dev/null
+++ b/test/UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests/Program.cs
@@ -0,0 +1,42 @@
+// Copyright (c) Microsoft Corporation. All rights reserved.
+// Licensed under the MIT license. See LICENSE file in the project root for full license information.
+
+using Microsoft.Testing.Extensions;
+
+using OpenTelemetry.Metrics;
+using OpenTelemetry.Trace;
+
+using ExecutionScope = Microsoft.VisualStudio.TestTools.UnitTesting.ExecutionScope;
+
+[assembly: Parallelize(Scope = ExecutionScope.MethodLevel, Workers = 0)]
+
+// Opt-out telemetry
+Environment.SetEnvironmentVariable("DOTNET_CLI_TELEMETRY_OPTOUT", "1");
+
+ITestApplicationBuilder builder = await TestApplication.CreateBuilderAsync(args);
+
+builder.AddMSTest(() => [Assembly.GetEntryAssembly()!]);
+
+#if ENABLE_CODECOVERAGE
+builder.AddCodeCoverageProvider();
+#endif
+builder.AddCrashDumpProvider();
+
+#if !NETFRAMEWORK
+if (!OperatingSystem.IsBrowser())
+#endif
+{
+ builder.AddHangDumpProvider();
+}
+
+builder.AddTrxReportProvider();
+builder.AddJUnitReportProvider();
+builder.AddAzureDevOpsProvider();
+builder.AddCtrfReportProvider();
+
+builder.AddOpenTelemetryProvider(
+ tracing => tracing.AddTestingPlatformInstrumentation(),
+ metrics => metrics.AddTestingPlatformInstrumentation());
+
+ITestApplication app = await builder.BuildAsync();
+return await app.RunAsync();
diff --git a/test/UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests/TerminalReporterContractTests.cs b/test/UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests/TerminalReporterContractTests.cs
new file mode 100644
index 0000000000..7e5263c102
--- /dev/null
+++ b/test/UnitTests/Microsoft.Testing.Platform.TerminalReporterContract.UnitTests/TerminalReporterContractTests.cs
@@ -0,0 +1,39 @@
+// 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.OutputDevice.Terminal;
+
+namespace Microsoft.Testing.Platform.TerminalReporterContract.UnitTests;
+
+///
+/// Verifies the shared terminal-reporter source, compiled into this independent assembly via
+/// TerminalReporterContract.props.
+///
+///
+/// This project does not reference Microsoft.Testing.Platform's terminal reporter types; it compiles the same
+/// source files (reporter + rendering + state + the small platform abstractions) and the TerminalResources
+/// resx into its own assembly. The fact that this assembly compiles at all is the proof that the reporter is
+/// self-contained and consumable with a single source of truth (the same way dotnet/sdk's 'dotnet test' will
+/// consume it), instead of being hard-forked.
+///
+[TestClass]
+public sealed class TerminalReporterContractTests
+{
+ [TestMethod]
+ public void TerminalResources_AreCompiledIntoThisAssembly()
+ {
+ // Resolves from TerminalResources.resx GenerateSource'd into THIS assembly, not from
+ // Microsoft.Testing.Platform. A missing/renamed string would fail the build, not just this test.
+ Assert.IsFalse(string.IsNullOrEmpty(TerminalResources.TestRunSummary));
+ Assert.IsFalse(string.IsNullOrEmpty(TerminalResources.Passed));
+ }
+
+ [TestMethod]
+ public void SharedTerminalTypes_AreUsable()
+ {
+ Assert.IsNotEmpty(Enum.GetValues());
+
+ string rendered = HumanReadableDurationFormatter.Render(TimeSpan.FromSeconds(1));
+ Assert.Contains("1s", rendered);
+ }
+}