Aracılığıyla paylaş


VSTest modunda Microsoft.Testing.Platform kullanımı dotnet test

Bu makalede, dotnet test'nin VSTest modunda çalışırken Microsoft.Testing.Platform.MSBuild tarafından sağlanan dotnet test için Microsoft.Testing.Platform tümleştirmesi açıklanmaktadır.

Bu makaleye girmeden önce, ilk olarak iki modunu (VSTest ve MTP modları) açıklayan Dotnet testi ile test etme makalesini dotnet test okumanız önerilir.

Varsayılan olarak, dotnet test testleri çalıştırmak için VSTest kullanır. Microsoft.Testing.Platform içinde dotnet test desteğini etkinleştirmek için iki seçeneğiniz var:

  1. VSTest modunda kullanın dotnet test ve proje dosyanızda MSBuild özelliğini belirtin <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> .
  2. MTP'nin daha yerel desteği için dotnet test öğesini dotnet test ile birlikte MTP modunda kullanın. Bu, yalnızca .NET 10 SDK'sı ile birlikte desteklenmektedir.

Her iki seçenek de dotnet test ile test etme makalesinde ayrıntılı olarak açıklanmıştır.

Önemli

Bu makalenin geri kalanı VSTest moduna özgüdür dotnet test.

Dikkat

.NET 10 SDK'sı ile başlayarak, Microsoft.Testing.Platform ile çalışırken VSTest modunun dotnet test kullanılmaması önerilir.

Test başına hatayı göster

Varsayılan olarak, test hataları bir .log dosyasında özetlenir ve test projesi başına tek bir hata MSBuild'e bildirilir.

Başarısız test başına hataları göstermek için komut satırında -p:TestingPlatformShowTestsFailure=true belirtin veya proje dosyanıza <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure> özelliğini ekleyin.

Komut satırında:

dotnet test -p:TestingPlatformShowTestsFailure=true

Veya proje dosyasında:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>

    <OutputType>Exe</OutputType>
    <EnableMSTestRunner>true</EnableMSTestRunner>

    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>

    <!-- Add this to your project file. -->
    <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure>

  </PropertyGroup>

  <!-- ... -->

</Project>

Tam platform çıkışını göster

Varsayılan olarak, temel alınan test yürütülebilir dosyanın yazdığı tüm konsol çıkışı yakalanır ve kullanıcıdan saklanır. Buna başlık, sürüm bilgileri ve biçimlendirilmiş test bilgileri dahildir.

Bu bilgileri MSBuild çıkışıyla birlikte göstermek için <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>kullanın.

Bu seçenek, test çerçevesinin Console.WriteLine tarafından yazılan kullanıcı çıkışını veya konsola yazmanın diğer benzer yollarını yakalama şeklini etkilemez.

Komut satırında:

dotnet test -p:TestingPlatformCaptureOutput=false

Veya proje dosyasında:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>

    <IsPackable>false</IsPackable>

    <OutputType>Exe</OutputType>
    <EnableMSTestRunner>true</EnableMSTestRunner>

    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>

    <!-- Add this to your project file. -->
    <TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>

  </PropertyGroup>

  <!-- ... -->

</Project>

Önemli

Yukarıdaki tüm örnekler csproj dosyasına EnableMSTestRunner, TestingPlatformDotnetTestSupportve TestingPlatformCaptureOutput gibi özellikler ekler. Ancak, bu özellikleri Directory.Build.propsiçinde ayarlamanız kesinlikle önerilir. Bu şekilde, bu özellikleri her test projesi dosyasına eklemeniz gerekmez ve bu özellikleri ayarlamayan bir projeyi başka bir projeye eklemek riskine girmezsiniz; böylece, bazı projelerin VSTest olduğu, diğerlerinin ise Microsoft.Testing.Platform olduğu ve bu nedenle doğru çalışmama ihtimali taşıyan ve desteklenmeyen bir senaryoya sahip olmazsınız.