Uaktualnianie z msTestV1 do MSTestV2
Projekt testowy można uaktualnić, przywracając wersję MSTest przywołyną w pliku csproj z msTestV1 do MSTestV2. Nie wszystkie funkcje w msTestV1 zostały wprowadzone do MSTestV2, więc niektóre zmiany mogą być wymagane do usunięcia błędów. Zobacz funkcje MSTestV1, które nie są obsługiwane w msTestV2 , aby dowiedzieć się, jakie funkcje już nie działają. Niektóre z tych funkcji mogą wymagać usunięcia z testów.
Usuń odwołanie do zestawu Microsoft.VisualStudio.QualityTools.UnitTestFramework z projektu testów jednostkowych.
Dodaj odwołania do pakietu NuGet do msTestV2, w tym msTest.TestFramework i pakiety MSTest.TestAdapter w nuget.org. Pakiety można zainstalować w konsoli Menedżer pakietów NuGet za pomocą następujących poleceń:
PM> Install-Package MSTest.TestAdapter -Version 3.1.1 PM> Install-Package MSTest.TestFramework -Version 3.1.1
Przykład starego stylu csproj
Przykładowy plik csproj przeznaczony dla msTestV1:
<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<Private>False</Private>
</Reference>
Przykładowy plik csproj jest teraz przeznaczony dla msTestV2:
<Reference Include="Microsoft.VisualStudio.TestPlatform.TestFramework, Version=14.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\packages\MSTest.TestFramework.2.1.2\lib\net45\Microsoft.VisualStudio.TestPlatform.TestFramework.dll</HintPath>
</Reference>
Uwaga
Projekty testowe, które są kodowanymi testami interfejsu użytkownika lub internetowymi testami obciążeniowymi, nie są zgodne z msTestV2. Te typy projektów zostały przestarzałe. Przeczytaj więcej na temat wycofywania kodowanego testu interfejsu użytkownika i wycofywania testu obciążeniowego sieci Web.
Csproj w stylu zestawu SDK (.NET Core i .NET 5 lub nowszy)
Jeśli twój plik csproj jest nowszym plikiem .csproj w stylu zestawu SDK, najprawdopodobniej używasz już msTestV2. Pakiety NuGet dla msTestV2 i karty MSTestV2 można znaleźć w narzędziu NuGet.
Przykład:
<ItemGroup>
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="16.7.1" />
<PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
<PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
</ItemGroup>
Dlaczego warto przeprowadzić uaktualnienie do msTestV2?
W 2016 r. opublikowaliśmy kolejny krok w rozwoju platformy MSTest za pomocą msTestV2. Więcej informacji na temat tej zmiany można przeczytać we wpisie w blogu z ogłoszeniem.
MsTestV2 jest łatwiej uzyskiwany i aktualizowany, ponieważ jest dostarczany jako pakiet NuGet.
MSTestV2 to open source.
Jednolita obsługa platformy aplikacji — MSTestV2 to konwergentna implementacja, która oferuje jednolitą obsługę platformy aplikacji na platformie .NET Framework, .NET Core, ASP.NET Core i uwP. Dowiedz się więcej.
Implementacja jest w pełni międzyplatformowa (Windows, Linux, Mac). Dowiedz się więcej.
Program MSTestV2 obsługuje platformę .NET Framework 4.5.0 lub nowszą, platformę .NET Core 1.0 lub nowszą (aplikacje uniwersalne systemu Windows 10 lub nowsze), ASP.NET Core 1.0 i nowsze oraz .NET 5 i nowsze.
Zapewnia jednolity mechanizm rozszerzalności pojedynczego użytkownika końcowego. Dowiedz się więcej.
Zapewnia jednolitą
DataRow
obsługę wszystkich projektów testowych opartych na msTest. Dowiedz się więcej.Umożliwia umieszczenie atrybutu
TestCategory
na poziomie klasy lub zestawu. Dowiedz się więcej.Metody testowania z klas bazowych zdefiniowanych w innym zestawie są teraz odnajdywane i uruchamiane z pochodnej klasy testowej. Ta zmiana powoduje spójne zachowanie z typami klas testów pochodnych. Jeśli to zachowanie nie jest wymagane ze względów zgodności, można je zmienić z powrotem przy użyciu następujących ustawień uruchamiania:
<RunSettings> <MSTest> <EnableBaseClassTestMethodsFromOtherAssemblies>false</EnableBaseClassTestMethodsFromOtherAssemblies> </MSTest> </RunSettings>
Zapewnia bardziej szczegółową kontrolę nad wykonywaniem równoległym za pomocą równoległego wykonywania testów w zestawie. Ta funkcja umożliwia równoległe uruchamianie testów w zestawie.
Metoda
TestCleanup
na obiekcieTestClass
jest wywoływana nawet wtedy, gdy odpowiedniaTestInitialize
metoda zakończy się niepowodzeniem. Szczegóły problemu.Czas potrzebny
AssemblyInitialize
iClassInitialize
nie jest liczone do czasu trwania testu. Ta zmiana ogranicza ich wpływ na przekroczenie limitu czasu testu.Testy, które nie można uruchomić, można skonfigurować tak, aby były oznaczone jako nieudane za pośrednictwem tagu
MapNotRunnableToFailed
, który jest częścią węzła adaptera.runsettings
w pliku.<RunSettings> <MSTest> <MapNotRunnableToFailed>true</MapNotRunnableToFailed> </MSTest> </RunSettings>
Funkcje MSTestV1, które nie są obsługiwane w msTestV2
- Nie można uwzględnić testów w "uporządkowanym teście".
- Zmiany w
.testsettings
pliku:- Nie można już używać do konfigurowania karty.
- Nie obsługuje
<LegacySettings>
już sekcji, co oznacza, że nie można jej używać do ustawiania atrybutów. Na przykładDeploymentItem
. Użyj nowego pliku .runsettings na potrzeby konfiguracji przebiegu testowego.
- Karta nie obsługuje list testowych określonych jako plik vsmdi .
- Typy "Projekt kodowanego testu interfejsu użytkownika" i "Projekt testu wydajności i obciążenia sieci Web" nie są obsługiwane. Przeczytaj więcej na temat wycofywania kodowanego testu interfejsu użytkownika i wycofywania testu obciążeniowego sieci Web.
- Skojarzenie z elementem testowym w programie TFS nie jest obsługiwane.
Powiązana zawartość
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla