Udostępnij za pośrednictwem


Microsoft.Testing.Platform — omówienie

Microsoft.Testing.Platform to uproszczona i przenośna alternatywa dla programu VSTest do uruchamiania testów we wszystkich kontekstach, w tym potoków ciągłej integracji, interfejsu wiersza polecenia, Eksploratora testów programu Visual Studio i Eksploratora tekstu programu VS Code. Platforma Microsoft.Testing.Platform jest osadzona bezpośrednio w projektach testowych i nie ma żadnych innych zależności aplikacji, takich jak vstest.console lub dotnet test potrzebne do uruchamiania testów.

Microsoft.Testing.Platform jest oprogramowaniem open source. Kod można znaleźć Microsoft.Testing.Platform w repozytorium Microsoft/testfx w witrynie GitHub.

Obsługiwane platformy testowe

Uruchamianie i debugowanie testów

Microsoft.Testing.Platform projekty testowe są tworzone jako pliki wykonywalne, które można uruchamiać (lub debugować) bezpośrednio. Nie ma dodatkowego testu z uruchomioną konsolą lub poleceniem. Aplikacja kończy działanie z kodem zakończenia niezerowym, jeśli występuje błąd, jak zwykle w przypadku większości plików wykonywalnych. Aby uzyskać więcej informacji na temat znanych kodów zakończenia, zobacz Microsoft.Testing.Platform exit codes (Kody zakończenia platformy Microsoft.Testing.Platform).

Ważne

Domyślnie Microsoft.Testing.Platform zbiera dane telemetryczne. Aby uzyskać więcej informacji i opcji rezygnacji, zobacz Microsoft.Testing.Platform telemetria.

Publikowanie projektu testowego przy użyciu aplikacji dotnet publish i uruchamianie jej bezpośrednio jest innym sposobem uruchamiania testów. Na przykład wykonanie polecenia ./Contoso.MyTests.exe. W niektórych scenariuszach można go również użyć dotnet build do utworzenia pliku wykonywalnego, ale mogą istnieć przypadki brzegowe, takie jak natywna AOT.

Korzystanie z polecenia dotnet run

Polecenie dotnet run może służyć do kompilowania i uruchamiania projektu testowego. Jest to najprostszy, choć czasami najwolniejszy sposób uruchamiania testów. Użycie dotnet run jest praktyczne podczas edytowania i uruchamiania testów lokalnie, ponieważ gwarantuje, że projekt testowy zostanie ponownie skompilowany w razie potrzeby. dotnet run program automatycznie znajdzie również projekt w bieżącym folderze.

dotnet run --project Contoso.MyTests

Aby uzyskać więcej informacji na temat dotnet runprogramu , zobacz dotnet run.

Korzystanie z polecenia dotnet exec

Polecenie dotnet exec or dotnet służy do wykonywania (lub uruchamiania) już skompilowany projekt testowy. Jest to alternatywa dla bezpośredniego uruchamiania aplikacji. dotnet exec wymaga ścieżki do skompilowanych bibliotek dll projektu testowego.

dotnet exec Contoso.MyTests.dll

or

dotnet Contoso.MyTests.dll

Uwaga

Podanie ścieżki do pliku wykonywalnego projektu testowego (*.exe) powoduje wystąpienie błędu:

Error:
  An assembly specified in the application dependencies manifest
  (Contoso.MyTests.deps.json) has already been found but with a different
  file extension:
    package: 'Contoso.MyTests', version: '1.0.0'
    path: 'Contoso.MyTests.dll'
    previously found assembly: 'S:\t\Contoso.MyTests\bin\Debug\net8.0\Contoso.MyTests.exe'

Aby uzyskać więcej informacji na temat dotnet execprogramu , zobacz dotnet exec.

Korzystanie z polecenia dotnet test

Microsoft.Testing.Platform oferuje warstwę zgodności i vstest.console.exe dotnet test zapewnia możliwość uruchamiania testów tak jak wcześniej podczas włączania nowego scenariusza wykonywania.

dotnet test Contoso.MyTests.dll

Opcje

Poniższa lista zawiera tylko opcje platformy. Aby wyświetlić określone opcje wprowadzone przez każde rozszerzenie, zapoznaj się ze stroną dokumentacji rozszerzenia lub użyj --help opcji .

  • --diagnostic

Włącza rejestrowanie diagnostyczne. Domyślnym poziomem dziennika jest Trace. Plik jest zapisywany w katalogu wyjściowym o następującym formacie nazwy: log_[MMddHHssfff].diag.

  • --diagnostic-filelogger-synchronouswrite

Wymusza wbudowany rejestrator plików w celu synchronicznego zapisywania dzienników. Przydatne w scenariuszach, w których nie chcesz utracić żadnych wpisów dziennika (jeśli proces ulegnie awarii). Spowoduje to spowolnienie wykonywania testu.

  • --diagnostic-output-directory

Katalog wyjściowy rejestrowania diagnostycznego, jeśli nie określono pliku, jest generowany w domyślnym katalogu TestResults .

  • --diagnostic-output-fileprefix

Prefiks nazwy pliku dziennika. Wartość domyślna to "log_".

  • --diagnostic-verbosity

Definiuje poziom szczegółowości, gdy --diagnostic jest używany przełącznik. Dostępne wartości to Trace, , Debug, InformationWarning, , Errorlub Critical.

  • --help

Wyświetla opis sposobu używania polecenia .

  • -ignore-exit-code

Zezwala na ignorowanie niektórych kodów zakończenia innych niż zero, a zamiast tego zwracane jako 0. Aby uzyskać więcej informacji, zobacz Ignoruj określone kody zakończenia.

  • --info

Wyświetla zaawansowane informacje o aplikacji testowej .NET, takie jak:

  • Platforma.
  • Środowisko.
  • Każdy zarejestrowany dostawca wiersza polecenia, taki jak jego, name, versiondescription i options.
  • Każde zarejestrowane narzędzie, takie jak jego, command, name, version, descriptioni wszystkich dostawców wiersza polecenia.

Ta funkcja służy do zrozumienia rozszerzeń, które będą rejestrować tę samą opcję wiersza polecenia lub zmiany dostępnych opcji między wieloma wersjami rozszerzenia (lub platformy).

  • --list-tests

Wyświetl listę dostępnych testów. Testy nie zostaną wykonane.

  • --minimum-expected-tests

Określa minimalną liczbę testów, które mają zostać uruchomione. Domyślnie oczekuje się, że co najmniej jeden test zostanie uruchomiony.

  • --results-directory

Katalog, w którym zostaną umieszczone wyniki testu. Jeśli określony katalog nie istnieje, zostanie utworzony. Wartość domyślna znajduje TestResults się w katalogu zawierającym aplikację testową.

Integracja z programem MSBuild

Pakiet NuGet Microsoft.Testing.Platform.MSBuild zapewnia różne integracje z Microsoft.Testing.Platform programem MSBuild:

  • dotnet testAby uzyskać więcej informacji, zobacz obsługa systemu , zobacz dotnet test integration (Integracja z testem dotnet).
  • Obsługa wymagana ProjectCapability przez Visual Studio eksploratory testów i Visual Studio Code .
  • Automatyczne generowanie punktu wejścia (Main metoda)
  • Automatyczne generowanie pliku konfiguracji

Uwaga

Ta integracja działa w sposób przejściowy (projekt odwołujący się do innego projektu odwołującego się do tego pakietu będzie zachowywał się tak, jakby odwołuje się do pakietu) i można go wyłączyć za pomocą IsTestingPlatformApplication właściwości MSBuild.

Zobacz też