Udostępnij za pośrednictwem


Uaktualnianie z msTestV1 do MSTestV2

Można uaktualnić projekt testowy, zmieniając wersję MSTest, do której odwołuje się .csproj z MSTestV1 na 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 zrozumieć, które funkcje już nie działają. Niektóre z tych funkcji mogą wymagać usunięcia z testów.

  1. Usuń odwołanie do zestawu Microsoft.VisualStudio.QualityTools.UnitTestFramework z projektu testów jednostkowych.

  2. Dodaj odwołania do pakietów NuGet do MSTestV2, w tym do pakietów MSTest.TestFramework oraz MSTest.TestAdapter dostępnych na nuget.org. Pakiety można zainstalować w konsoli Menedżera pakietów NuGet, używając 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 .csproj skierowany na MSTestV1:

<Reference Include="Microsoft.VisualStudio.QualityTools.UnitTestFramework, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
  <Private>False</Private>
</Reference>

Przykładowy .csproj jest teraz skierowany do 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>

Notatka

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 testu kodowanego interfejsu użytkownika oraz wycofywania testu obciążenia sieci Web .

Csproj w stylu SDK (.NET Core i .NET 5 lub nowsze)

Jeśli .csproj jest nowszym stylem zestawu SDK .csproj najprawdopodobniej używasz już msTestV2. Pakiety NuGet dla MSTestV2 i adaptera MSTestV2 można znaleźć w 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ć w ogłoszeniu na blogu w wpisie .

  • Pakiet MSTestV2 można łatwiej uzyskać i zaktualizować, ponieważ jest dostarczany jako pakiet NuGet.

  • MSTestV2 jest oprogramowaniemtypu 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. Przeczytaj więcej.

  • Implementacja jest w pełni międzyplatformowa (Windows, Linux, Mac). Przeczytaj 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. Przeczytaj więcej.

  • Zapewnia jednolitą obsługę DataRow dla wszystkich projektów testowych opartych na msTest. Przeczytaj więcej.

  • Umożliwia umieszczenie atrybutu TestCategory na poziomie klasy lub zestawu. Przeczytaj więcej.

  • Metody testowania z klas bazowych zdefiniowanych w innym zestawie są teraz odnajdywane i uruchamiane z pochodnej klasy testowej. Ta zmiana wprowadza spójność w zachowaniu z typami klas testowych 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 równoległym wykonywaniem za pośrednictwem równoległego wykonywania w zestawie testów. Ta funkcja umożliwia równoległe uruchamianie testów w zestawie.

  • Metoda TestCleanup w TestClass jest wywoływana, nawet jeśli odpowiednia metoda TestInitialize zakończy się niepowodzeniem. detale problemu.

  • Czas AssemblyInitialize i ClassInitialize nie jest liczony 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 w pliku .runsettings.

    <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 "Planie wybranych testów".
  • Zmiany w pliku .testsettings:
    • Nie można już używać do konfigurowania adaptera.
    • Nie obsługuje już sekcji <LegacySettings>, co oznacza, że nie można jej używać do ustawiania atrybutów. Na przykład DeploymentItem. Użyj nowego pliku .runsettings do konfiguracji przebiegu testu.
  • Adapter 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 wycofania kodowanego testu interfejsu użytkownika i oraz wycofania Web Load Test i.
  • Skojarzenie z elementem testowym w programie TFS nie jest obsługiwane.