Rozszerzenie programu VSTest Bridge

To rozszerzenie dostarcza warstwę zgodności z programem VSTest, co umożliwia użycie platform testowych, które już zostały zaimplementowane z wykorzystaniem narzędzia VSTest do:

  • Łatwe uruchamianie przy użyciu Microsoft. Testing.Platform (MTP) bez konieczności ponownego zapisywania.
  • Obsługa zarówno programu VSTest, jak i MTP przy użyciu tej samej implementacji platformy testowej.

To rozszerzenie jest dostarczane w ramach pakietu NuGet Microsoft.Testing.Extensions.VSTestBridge .

Zgodność z programem VSTest

Głównym celem tego rozszerzenia jest oferowanie łatwego i płynnego środowiska uaktualniania dla użytkowników VSTest, umożliwiając tryb podwójny, w którym nowa platforma jest włączona i równolegle oferowany jest tryb zgodności, aby umożliwić kontynuowanie pracy zwykłych przepływów pracy.

Obsługa ustawień uruchamiania

To rozszerzenie umożliwia dostarczenie pliku VSTest .runsettings, ale nie wszystkie opcje w tym pliku są rozpoznawane przez platformę. Poniżej opisano obsługiwane i nieobsługiwane ustawienia, opcje konfiguracji i alternatywy dla najczęściej używanych opcji konfiguracji VSTest.

Po aktywowaniu przez środowisko testowe można użyć --settings <SETTINGS_FILE>, aby podać plik .runsettings.

Element konfiguracji uruchamiania

Następujące elementy RunConfiguration nie są obsługiwane przez MTP:

Node Opis Przyczyna/obejście problemu
MaxCpuCount To ustawienie kontroluje poziom równoległości na poziomie procesu. Użyj wartości 0, aby włączyć maksymalną równoległość na poziomie procesów. Jeśli protokół MTP jest używany z programem MSBuild, ta opcja jest odciążona do programu MSBuild. Po uruchomieniu pojedynczego pliku wykonywalnego ta opcja nie ma znaczenia dla protokołu MTP.
ResultsDirectory Katalog, w którym są umieszczane wyniki testów. Ścieżka jest względna względem katalogu zawierającego plik .runsettings. Użyj opcji wiersza polecenia --results-directory, aby określić katalog, w którym zostaną umieszczone wyniki testu. Jeśli określony katalog nie istnieje, zostanie utworzony. Wartość domyślna to TestResults w katalogu zawierającym aplikację testową.
TargetFrameworkVersion To ustawienie definiuje wersję platformy lub rodzinę platform do użycia do uruchamiania testów. Ta opcja jest ignorowana. Właściwości <TargetFramework> lub <TargetFrameworks> MSBuild określają platformę docelową aplikacji. Testy są hostowane w końcowej aplikacji.
TargetPlatform To ustawienie definiuje architekturę używaną do uruchamiania testów. <RuntimeIdentifier> określa architekturę ostatecznej aplikacji, która hostuje testy.
TreatTestAdapterErrorsAsWarnings (Traktuj błędy adaptera testów jako ostrzeżenia) Tłumi błędy adaptera testowego, przekształcając je w ostrzeżenia. Protokół MTP umożliwia uruchamianie tylko jednego typu testów z jednego zgromadzenia, a niepowodzenie w załadowaniu platformy testowej lub innych części infrastruktury stanie się błędem, którego nie można pominąć, ponieważ oznacza to, że niektóre testy nie mogą zostać odnalezione lub uruchomione.
TestAdaptersPaths Co najmniej jedna ścieżka do katalogu, w którym znajdują się TestAdapters Protokół MTP nie korzysta z koncepcji adapterów testowych i nie zezwala na dynamiczne ładowanie rozszerzeń, chyba że są one częścią kompilacji i są rejestrowane w Program.cs, automatycznie za pośrednictwem celów kompilacji lub ręcznie.
TestCaseFilter Filtr ograniczający testy, które będą uruchamiane. Począwszy od wersji 1.6, ten wpis runsettings jest teraz obsługiwany. Przed tą wersją należy zamiast tego użyć opcji wiersza polecenia --filter.
TestSessionTimeout Umożliwia użytkownikom zakończenie sesji testowej po przekroczeniu limitu czasu. Nie ma alternatywnej opcji.
dotnetHostPath Określ niestandardową ścieżkę do hosta dotnet, który jest używany do uruchamiania hosta testowego. MTP nie wykonuje żadnego dodatkowego rozpoznawania .NET. Zależy to w pełni od sposobu, w jaki dotnet się konfiguruje, co może być sterowane przez zmienne środowiskowe, takie jak DOTNET_HOST_PATH.
TreatNoTestsAsError (Traktuj brak testów jako błąd) Zakończ z kodem zakończenia innym niż zero, gdy nie zostaną znalezione żadne testy. Błąd wystąpi domyślnie w MTP, gdy nie odnaleziono ani nie uruchomiono testów w aplikacji testowej. Liczbę testów, które można znaleźć w zestawie, można ustawić przy użyciu --minimum-expected-tests parametru wiersza polecenia, który domyślnie to 1.

Element kolekcjonerów danych

MTP nie korzysta z modułów zbierających dane. Zamiast tego istnieje koncepcja rozszerzeń wewnątrzprocesowych i zewnątrzprocesowych. Każde rozszerzenie jest konfigurowane przez odpowiedni plik konfiguracji lub za pośrednictwem wiersza polecenia.

Co najważniejsze, rozszerzenia zawieszanie i zawieszanie, a także rozszerzenie pokrycia kodu .

LoggerRunSettings, element

Rejestratory w MTP są konfigurowane za pomocą parametrów wiersza polecenia lub ustawień w kodzie.

Obsługa filtru VSTest

To rozszerzenie oferuje również możliwość używania mechanizmu filtrowania VSTest do odnajdywania lub uruchamiania tylko testów, które są zgodne z wyrażeniem filtru. Aby uzyskać więcej informacji, zobacz sekcję szczegóły opcji filtru lub aby uzyskać szczegółowe informacje dotyczące platformy, zobacz stronę Uruchamianie selektywnych testów jednostkowych.

Po włączeniu przez platformę testową można użyć --filter <FILTER_EXPRESSION>.

Parametry przebiegu testu

Parametry do przebiegu testu można przekazać przy użyciu opcji wiersza polecenia --test-parameter w formacie key=value. Tę opcję można określić wiele razy, po jednym dla każdego parametru do ustawienia.

Dostęp do tych parametrów można uzyskać za pomocą platformy testowej w przebiegu testu: