Share via


Microsoft.Testing.Platform'u dotnet test

Bu makalede, kullanırken Microsoft.Testing.Platformtestleri çalıştırmak için nasıl kullanılacağı dotnet test ve Testleri Microsoft.Testing.Platform üzerinden çalıştırırken üretilen MSBuild çıkışını yapılandırmak için kullanılabilen çeşitli seçenekler açıklanmaktadır.

Bu makalede, kullanan Microsoft.Testing.Platformbir çözümde (*.sln) tüm testleri çalıştırmak için nasıl kullanılacağı dotnet test gösterilmektedir.

dotnet test Entegrasyon

dotnet test komutu çözümlerden, projelerden veya önceden oluşturulmuş derlemelerden testleri çalıştırmanın bir yoludur. Microsoft.Testing.Platform , özellikle VSTest'ten öğesine geçiş yaparken testleri çalıştırmak için birleşik bir yol sağlamak için bu altyapıya Microsoft.Testing.Platformbağlanıyor.

dotnet test tümleştirme - VSTest modu

Microsoft.Testing.Platformsorunsuz bir şekilde çalışmak dotnet test için bir uyumluluk katmanı (VSTest Köprüsü) sağlar.

Testler çalıştırılarak çalıştırılabilir:

dotnet test

Bu katman VSTest üzerinden test çalıştırır ve VSTest Test Çerçevesi Bağdaştırıcısı düzeyinde onunla tümleşir.

dotnet test - Microsoft.Testing.Platform modu

Varsayılan olarak, VSTest testleri çalıştırmak Microsoft.Testing.Platform için kullanılır. Projenizde ayarı belirterek bir tam Microsoft.Testing.Platform değeri <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport> etkinleştirebilirsiniz. Bu ayar VSTest'i devre dışı bırakır ve Microsoft.Testing.Platform.MSBuild NuGet paketine geçişli bağımlılık sayesinde çözümünüzdeki tüm Microsoft.Testing.Platform güçlü testler projesini doğrudan çalıştırır. Doğrudan Microsoft.Testing.Platform test projelerini geçerseniz sorunsuz çalışır.

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

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

    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>

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

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

  </PropertyGroup>

  <!-- ... -->

</Project>

Bu modda, çalıştırmaya yönelik ek parametreler doğrudan komut satırı üzerinden sağlanmamıştır. Bunların adlı TestingPlatformCommandLineArgumentsbir MSBuild özelliği olarak sağlanması gerekir:

dotnet test -p:TestingPlatformCommandLineArguments=" --minimum-expected-tests 10 "

Ek MSBuild seçenekleri

MSBuild tümleştirmesi, kullanıcı projesinde veya gibi komut satırındaki -p:TestingPlatformShowTestsFailure=truegenel özellikler aracılığıyla belirtilebilen seçenekler sağlar.

Kullanılabilir seçenekler şunlardır:

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 belirtin -p:TestingPlatformShowTestsFailure=true veya proje dosyanıza özellik ekleyin <TestingPlatformShowTestsFailure>true</TestingPlatformShowTestsFailure> .

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>
    <IsTestProject>true</IsTestProject>

    <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 yazmalarının tüm konsol çıkışı yakalanır ve kullanıcıdan gizlenir. Buna başlık, sürüm bilgileri ve biçimlendirilmiş test bilgileri dahildir.

Bu bilgileri MSBuild çıktısı ile birlikte göstermek için kullanın<TestingPlatformCaptureOutput>false</TestingPlatformCaptureOutput>.

Bu seçenek, test çerçevesinin tarafından Console.WriteLine 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>
    <IsTestProject>true</IsTestProject>

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

    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>

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

  </PropertyGroup>

  <!-- ... -->

</Project>