Aracılığıyla paylaş


MSTestV1'den MSTestV2'ye yükseltme

.csproj'unuzda başvuruda bulunulmuş MSTest sürümünü MSTestV1'den MSTestV2'ye yeniden hedefleyerek test projenizi yükseltebilirsiniz. MSTestV1'deki tüm özellikler MSTestV2'ye getirilmediğinden, hataları çözmek için bazı değişiklikler gerekebilir. Hangi özelliklerin artık çalışmadığını anlamak için bkz . MSTestV2'de desteklenmeyen MSTestV1 özellikleri. Bu özelliklerden bazılarının testlerinizden kaldırılması gerekebilir.

  1. Birim testi projenizden Microsoft.VisualStudio.QualityTools.UnitTestFramework derleme başvurularını kaldırın.

  2. MSTest.TestFramework ve nuget.org MSTest.TestAdapter paketleri de dahil olmak üzere MSTestV2'ye NuGet paket başvuruları ekleyin. NuGet Paket Yöneticisi Konsolu'na paketleri aşağıdaki komutlarla yükleyebilirsiniz:

    PM> Install-Package MSTest.TestAdapter -Version 3.1.1
    PM> Install-Package MSTest.TestFramework -Version 3.1.1
    

Eski stil csproj örneği

MSTestV1'i hedefleyen örnek .csproj :

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

Örnek .csproj artık MSTestV2'yi hedefledi:

<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>

Not

Kodlanmış UI testleri veya Web Yük Testleri olan test projeleri MSTestV2 ile uyumlu değildir. Bu proje türleri kullanım dışı bırakıldı. Kodlanmış UI Testi'nin kullanımdan kaldırılması ve Web Yük Testi'nin kullanımdan kaldırılması hakkında daha fazla bilgi edinin.

SDK stili csproj (.NET Core ve .NET 5 veya üzeri)

.csproj'unuz daha yeni SDK stili .csproj ise, büyük olasılıkla ZATEN MSTestV2 kullanıyorsunuz demektir. MSTestV2 ve MSTestV2 Bağdaştırıcısı için NuGet paketlerini NuGet üzerinde bulabilirsiniz.

Örnek:

<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>

Neden MSTestV2'ye Yükseltin?

2016'da, MSTestV2 ile MSTest çerçevesini geliştirmenin bir sonraki adımını yayımladık. Duyuru blog gönderisinde bu değişiklik hakkında daha fazla bilgi edinebilirsiniz.

  • MSTestV2, NuGet Paketi olarak teslim edildiğinden daha kolay edinilir ve güncelleştirilir.

  • MSTestV2 açık kaynak.

  • Tekdüzen uygulama platformu desteği – MSTestV2 .NET Framework, .NET Core, ASP.NET Core ve UWP genelinde tekdüzen uygulama platformu desteği sunan yakınsanmış bir uygulamadır. Daha fazla bilgi edinin.

  • Uygulama tamamen platformlar arasıdır (Windows, Linux, Mac). Daha fazla bilgi edinin.

  • MSTestV2; .NET Framework 4.5.0 ve üzeri, .NET Core 1.0 ve üzeri (Evrensel Windows Apps 10+), ASP.NET Core 1.0 ve üzeri ile .NET 5 ve üzerini hedeflemeyi destekler.

  • Tekdüzen, tek bir son kullanıcı genişletilebilirlik mekanizması sağlar. Daha fazla bilgi edinin.

  • Tüm MSTest tabanlı test projeleri için tekdüzen DataRow destek sağlar. Daha fazla bilgi edinin.

  • Özniteliğin TestCategory bir sınıf veya derleme düzeyinde yerleştirilmesini sağlar. Daha fazla bilgi edinin.

  • Başka bir derlemede tanımlanan temel sınıflardan test yöntemleri şimdi keşfedilir ve türetilmiş Test sınıfından çalıştırılır. Bu değişiklik, türetilmiş test sınıfı türleriyle tutarlı bir davranış getirir. Uyumluluk nedeniyle bu davranış gerekli değilse, aşağıdaki çalıştırma ayarları kullanılarak yeniden değiştirilebilir:

    <RunSettings>    
    <MSTest> 
      <EnableBaseClassTestMethodsFromOtherAssemblies>false</EnableBaseClassTestMethodsFromOtherAssemblies> 
    </MSTest> 
    </RunSettings>
    
  • Testleri derleme içi paralel yürütme yoluyla paralel yürütme üzerinde daha ayrıntılı denetim sağlar. Bu özellik, testleri bir derleme içinde paralel olarak çalıştırmaya olanak tanır.

  • üzerindeki TestCleanup yöntemi, karşılık gelen TestInitialize yöntemi TestClass başarısız olsa bile çağrılır. Sorun ayrıntıları.

  • ve ClassInitialize tarafından AssemblyInitialize geçen süre, test süresine göre sayılmaz. Bu değişiklik, test zaman aşımı üzerindeki etkilerini sınırlar.

  • Çalıştırılamayan testler, dosyadaki bağdaştırıcı düğümünün MapNotRunnableToFailed.runsettings bir parçası olan etiket aracılığıyla başarısız olarak işaretlenecek şekilde yapılandırılabilir.

    <RunSettings>    
    <MSTest> 
      <MapNotRunnableToFailed>true</MapNotRunnableToFailed> 
    </MSTest> 
    </RunSettings>
    

MSTestV2'de desteklenmeyen MSTestV1 özellikleri

  • Testler "Sıralı Test"e eklenemez.
  • Dosyada yapılan .testsettings değişiklikler:
    • Bağdaştırıcıyı yapılandırmak için artık kullanılamaz.
    • Artık bölümü desteklemez <LegacySettings> , yani öznitelikleri ayarlamak için kullanamazsınız. Örneğin, DeploymentItem. Test çalıştırması yapılandırması için yeni .runsettings dosyasını kullanın.
  • Bağdaştırıcı, .vsmdi dosyası olarak belirtilen test listelerini desteklemez.
  • "Kodlanmış UI Test Projesi" ve "Web Performansı ve Yük Testi Projesi" türleri desteklenmez. Kodlanmış UI Testi'nin kullanımdan kaldırılması ve Web Yük Testi'nin kullanımdan kaldırılması hakkında daha fazla bilgi edinin.
  • TFS'de bir testkase öğesiyle ilişkilendirme desteklenmez.