Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł zawiera wskazówki dotyczące rozwiązywania problemów z programem Microsoft.Testing.Platform.
Kody zakończenia
Microsoft.Testing.Platform używa znanych kodów wyjścia do przekazywania błędów testu lub błędów aplikacji. Kody zakończenia zaczynają się od 0 i nie są ujemne.
| Kod zakończenia | Szczegóły |
|---|---|
0 |
Kod 0 zakończenia wskazuje powodzenie. Wszystkie testy wybrane do uruchomienia zostały uruchomione do ukończenia i nie wystąpiły żadne błędy. |
1 |
Kod 1 zakończenia wskazuje na błędy o nieznanym charakterze i działa jako ogarnianie wszelkich przypadków. Aby znaleźć dodatkowe informacje o błędzie i szczegóły, poszukaj w danych wyjściowych. |
2 |
Kod wyjścia 2 służy do wskazania, że wystąpiła co najmniej jedna awaria testu. |
3 |
Kod 3 zakończenia wskazuje, że sesja testowa została przerwana. Sesję można przerwać przy użyciu klawiszy Ctrl+C, na przykład. |
4 |
Kod 4 zakończenia wskazuje, że konfiguracja używanych rozszerzeń jest nieprawidłowa, a sesja testów nie może zostać uruchomiona. |
5 |
Kod 5 zakończenia wskazuje na to, że argumenty wiersza polecenia przekazane do aplikacji testowej są nieprawidłowe. |
6 (nie jest już używane) |
Kod 6 zakończenia nie jest już generowany przez platformę; wcześniej wskazywał na to, że sesja testowa używa funkcji niezaimplementowanej. |
7 |
Kod 7 zakończenia wskazuje, że sesja testowa nie mogła zakończyć się pomyślnie i prawdopodobnie uległa awarii. Możliwe, że jest to spowodowane przez sesję testową, która została uruchomiona za pośrednictwem punktu rozszerzenia kontrolera testów. |
8 |
Kod 8 zakończenia wskazuje, że sesja testowa nie zawierała żadnych testów. |
9 |
Kod 9 zakończenia wskazuje, że zostały naruszone minimalne zasady wykonywania dla wykonanych testów. |
10 |
Kod 10 zakończenia wskazuje, że adapter testowy, Testing.Platform Test Framework, MSTest, NUnit lub xUnit, nie może uruchomić testów z powodu infrastruktury niepowiązanej z własnym testem. Przykład polega na tym, że nie można utworzyć urządzenia wymaganego przez testy. |
11 |
Kod zakończenia 11 wskazuje, że proces testowy zakończy swoje działanie, jeśli proces zależny zakończy działanie. |
12 |
Kod 12 zakończenia wskazuje, że sesja testowa nie może zostać uruchomiona, ponieważ klient nie obsługuje żadnej z obsługiwanych wersji protokołu. |
13 |
Kod 13 zakończenia wskazuje, że sesja testowa została zatrzymana z powodu osiągnięcia określonej liczby maksymalnych testów zakończonych niepowodzeniem przy użyciu --maximum-failed-tests opcji wiersza polecenia. Aby uzyskać więcej informacji, zobacz sekcję Opcje w odniesieniu do opcji interfejsu wiersza polecenia Microsoft.Testing.Platform |
Aby włączyć szczegółowe rejestrowanie i rozwiązać problemy, zobacz Rejestrowanie diagnostyczne.
Ignoruj określone kody zakończenia
Microsoft.Testing.Platform jest ścisły domyślnie, ale pozwala na konfigurację. W związku z tym użytkownicy mogą zdecydować, które kody zakończenia powinny być ignorowane (kod 0 zostanie zwrócony zamiast oryginalnego kodu zakończenia).
Aby zignorować określone kody zakończenia, użyj --ignore-exit-code opcji wiersza polecenia lub zmiennej środowiskowej TESTINGPLATFORM_EXITCODE_IGNORE . Akceptowany prawidłowy format to rozdzielana średnikami lista kodów zakończenia do zignorowania (na przykład --ignore-exit-code 2;3;8). Typowym scenariuszem jest rozważenie, że błędy testowe nie powinny skutkować kodem zakończenia niezerowym (co odpowiada ignorowaniu kodu 2zakończenia).
Rejestrowanie diagnostyczne
Platforma udostępnia wbudowane rejestrowanie diagnostyczne, które ułatwia rozwiązywanie problemów z wykonywaniem testów. Rejestrowanie diagnostyczne można włączyć za pomocą opcji wiersza polecenia lub zmiennych środowiskowych.
Opcje wiersza polecenia
Następujące opcje platformy zawierają przydatne informacje dotyczące rozwiązywania problemów z aplikacjami testowymi:
--info--diagnostic--diagnostic-synchronous-write--diagnostic-verbosity--diagnostic-file-prefix--diagnostic-output-directory
Zmienne środowiskowe
Dzienniki diagnostyczne można również włączyć przy użyciu zmiennych środowiskowych:
| Nazwa zmiennej środowiskowej | Opis |
|---|---|
TESTINGPLATFORM_DIAGNOSTIC |
Jeśli ustawiono wartość 1, włącza rejestrowanie diagnostyczne. |
TESTINGPLATFORM_DIAGNOSTIC_VERBOSITY |
Definiuje poziom szczegółowości. Dostępne wartości to Trace, Debug, Information, Warning, Errorlub Critical. |
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_DIRECTORY |
Katalog wyjściowy dla rejestrowania diagnostycznego; jeśli katalog nie został określony, plik jest generowany w domyślnym katalogu TestResults. |
TESTINGPLATFORM_DIAGNOSTIC_OUTPUT_FILEPREFIX |
Prefiks nazwy pliku dziennika. Wartość domyślna to "log_". |
TESTINGPLATFORM_DIAGNOSTIC_FILELOGGER_SYNCHRONOUSWRITE |
Wymusza synchroniczne zapisywanie logów przez wbudowany rejestrator plików. Przydatne w scenariuszach, w których nie chcesz utracić żadnych wpisów dziennika (jeśli proces ulegnie awarii). Spowoduje to spowolnienie wykonywania testu. |
Uwaga / Notatka
Zmienne środowiskowe mają pierwszeństwo przed argumentami wiersza polecenia.
Rozwiązywanie problemów z błędami konfiguracji
Microsoft.Testing.Platform.MSBuild
Poniżej przedstawiono typowe błędy konfiguracji związane z programem Microsoft.Testing.Platform.MSBuild.
błąd CS8892: Metoda 'TestingPlatformEntryPoint.Main(string[])' nie będzie używana jako punkt wejścia, ponieważ znaleziono synchroniczny punkt wejścia 'Program.Main(string[])'
Ręczne definiowanie punktu wejścia (Main) w projekcie testowym lub odwoływanie się do projektu testowego z aplikacji, która ma już punkt wejścia, powoduje konflikt z punktem wejścia wygenerowanym przez Microsoft.Testing.Platform. Aby uniknąć tego problemu, wykonaj jedną z następujących czynności:
Usuń ręcznie zdefiniowany punkt wejścia, zazwyczaj metodę
Mainw pliku Program.cs, i pozwól, aby platforma testowa wygenerowała go za Ciebie.Wyłącz generowanie punktu wejścia, ustawiając właściwość
<GenerateTestingPlatformEntryPoint>false</GenerateTestingPlatformEntryPoint>MSBuild.Aby całkowicie wyłączyć zależność przechodnią do
Microsoft.Testing.Platform.MSBuild, ustaw właściwość<IsTestingPlatformApplication>false</IsTestingPlatformApplication>MSBuild w projekcie, który odwołuje się do projektu testowego. Jest to konieczne, gdy odwołujesz się do projektu testowego z projektu nietestowego, na przykład aplikacji konsolowej, która odwołuje się do aplikacji testowej.
Microsoft.Testing.Extensions.Fakes
Nie udało się ustalić ścieżki profilera z zmiennych środowiskowych COR_PROFILER_PATH i COR_PROFILER.
Ten błąd może wystąpić, jeśli nie wszystkie zestawy Fakes są obecne w folderze bin.
- Upewnij się, że projekt używa MSTest.SDK lub odwołań Microsoft.Testing.Extensions.Fakes.
- W przypadku projektów .NET Framework należy unikać ustawienia
<PlatformTarget>AnyCPU</PlatformTarget>, ponieważ powoduje to, że program NuGet nie kopiuje wszystkich plików do folderu bin.