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.
W .NET, framework testowy i platforma testowa to różne składniki, które współpracują ze sobą w celu odnajdywania i uruchamiania testów.
- Platforma testowa definiuje model testowy, względem którego piszesz, na przykład MSTest, NUnit, xUnit.net lub TUnit.
- Platforma testowa uruchamia testy, integruje się z środowiskami IDE i interfejsem wiersza polecenia oraz udostępnia współużytkowane punkty rozszerzenia.
Możesz wybrać między dwiema platformami testowymi:
- VSTest
- Microsoft.Testing.Platform (MTP)
Wskazówka
Aby uzyskać najprostszą konfigurację, wybierz jedną platformę dla repozytorium i skonfiguruj projekty testowe, ciągłą integrację i narzędzia spójne dla tej platformy. Nie mieszaj projektów testowych opartych na programie VSTest i Microsoft.Testing.Platform .NET w tej samej konfiguracji rozwiązania lub uruchamiania, ponieważ ten scenariusz nie jest obsługiwany. Jeśli uruchomisz również testy inne niż .NET, które zależą od testów VSTest (na przykład C++ lub JavaScript), uruchom te testy w oddzielnych konfiguracjach od testów .NET opartych na protokole MTP.
Jak wybrać platformę
Skorzystaj z poniższych scenariuszy, aby szybko wybrać.
| Przypadek użycia | Wybierz | Dlaczego |
|---|---|---|
| Potrzebujesz scenariuszy testów wykonywanych przy użyciu Native AOT lub scenariuszy związanych z optymalizacją kodu (trimming). | Microsoft.Testing.Platform | Protokół MTP obsługuje te nowoczesne scenariusze wdrażania, a program VSTest nie. |
| Kompilujesz spakowane projekty testowe WinUI lub UWP. | VSTest | Te typy projektów nie są obecnie obsługiwane przez MTP. |
| Należy mieszać testy .NET i adaptery testowe inne niż .NET (na przykład adaptery JavaScript lub C++). | VSTest | Program VSTest obsługuje scenariusze adapterów wielojęzycznych, podczas gdy protokół MTP jest specyficzny dla .NET. |
| Chcesz, aby projekty testowe zachowywały się jak zwykłe pliki wykonywalne (bezpośrednie uruchamianie plików wykonywalnych, i przepływy F5 projektu startowego). | Microsoft.Testing.Platform | MTP jest wykonywalny w pierwszej kolejności, dlatego aplikacje testowe działają jak standardowe aplikacje .NET w lokalnych i CI przepływach pracy. |
| Polegasz na utrwalonych integracjach z istniejącymi narzędziami. | VSTest | Program VSTest ma najdłuższy rekord śledzenia zgodności w istniejących produktach, zadaniach i potokach. Obsługa MTP rośnie w ekosystemie, ale niektóre integracje mogą pozostawać w tyle za VSTest. |
| Wolisz ścisłe wartości domyślne i jawne zachowanie. | Microsoft.Testing.Platform | MTP faworyzuje deterministyczne wykonywanie z lekkim modelem rozszerzeń typu opt-in i rejestracją w czasie budowy. Na przykład może zawieść, gdy nie są uruchamiane żadne testy, zmniejszyć zmienność zależną od środowiska i umożliwić wyłączenie poszczególnych rozszerzeń dla każdego środowiska. |
| Preferujesz bardziej miękkie, szerokie domyślne ustawienia zgodne z poprzednimi wersjami. | VSTest | Obie platformy dbają o zgodność z poprzednimi wersjami. Program VSTest ustala priorytety domyślnych ustawień zorientowanych na zgodność dla różnych, istniejących toolchainów, podczas gdy MTP zapewnia zgodność wsteczną w ramach własnego modelu rozszerzeń. |
| Jesteś zablokowany z powodu problemu lub zachowania specyficznego dla narzędzia VSTest w bieżącym przepływie pracy. | Microsoft.Testing.Platform | W wielu scenariuszach ten sam przepływ pracy nie ma wpływu na przeniesienie do MTP z powodu różnic w modelu środowiska uruchomieniowego i architekturze rozszerzenia. |
Jeśli konkretny przypadek użycia nie znajduje się na liście, obie platformy są prawidłowymi opcjami.
Obsługa integracji i narzędzi
| Obszar integracji | VSTest | Microsoft.Testing.Platform |
|---|---|---|
| Integracja środowiska IDE | Dojrzała integracja w obrębie Visual Studio i innych narzędzi, które zależą od protokołu VSTest i adapterów. | Obsługiwane w scenariuszach Visual Studio i Visual Studio Code z ciągłą integracją w częściach ekosystemu. |
| CI i narzędzia zewnętrzne | Szerokie wsparcie dla narzędzi i zadań zarówno firmy Microsoft, jak i innych firm. W Azure DevOps można użyć zadania VSTest (VSTest@3, vstest.console) lub zadania .NET (DotNetCoreCLI@2, dotnet test). |
Działa w przepływach pracy ciągłej integracji i nowoczesnych przepływów pracy .NET, ale niektóre integracje innych firm mogą nadal być słabsze w porównaniu do narzędzia VSTest. W Azure DevOps użyj zadania .NET (DotNetCoreCLI@2, dotnet test). |
| Zachowanie | Domyślny tryb VSTest. Mają zastosowanie argumenty i zachowanie narzędzia VSTest. | Natywny tryb MTP jest dostępny w .NET 10 SDK i nowszych wersjach. |
Aby uzyskać szczegółowe informacje na temat trybów i argumentów , zobacz Testowanie .
Rozpoczynanie od platformy testowej
W przypadku wybrania narzędzia VSTest
- MSTest: uruchamianie testów za pomocą narzędzia MSTest
- NUnit: NUnit i Microsoft.Testing.Platform
- xUnit.net: wprowadzenie do xUnit.net
- TUnit: nieobsługiwane przez VSTest. Użyj Microsoft.Testing.Platform.
Jeśli wybierzesz Microsoft.Testing.Platform
- MSTest: uruchamianie testów za pomocą narzędzia MSTest
- NUnit: Obsługa platformy Microsoft.Testing.Platform w NUnit (NUnit runner)
- xUnit.net: Microsoft Testing Platform (xUnit.net v3)
- TUnit: dokumentacja narzędzia TUnit
Dalsze kroki
- Omówienie pojęć dotyczących protokołu MTP: Microsoft.Testing.Platform — omówienie
- Omówienie opcji VSTest: opcje vsTest
- Migrowanie z programu VSTest: migrowanie z programu VSTest do witryny Microsoft.Testing.Platform
- Dodawanie możliwości: Funkcje Microsoft.Testing.Platform