.NET 10'da Dotnet Test ile Test Nasıl Çalıştırılır

Ashley Goolam

Ashley Goolam

27 August 2025

.NET 10'da Dotnet Test ile Test Nasıl Çalıştırılır

Kurumsal İçin Apidog

Şirket İçi (On-Premises) Dağıtım

SSO ve RBAC

SOC 2 Uyumlu

Apidog Enterprise'ı Keşfedin

Merhaba, .NET geliştiricileri! Microsoft Testing Platform (MTP) ve .NET 10 ile test etme oyununuzu bir üst seviyeye taşımaya hazır mısınız? Geleneksel VSTest çalıştırıcısıyla dotnet test kullanıyorsanız, kemerlerinizi bağlayın—MTP testlerinizi daha sorunsuz, daha hızlı ve daha esnek hale getirmek için burada. Bu sohbet rehberinde, MTP yani MicrosoftTestingPlatform'un ne olduğunu, neden VSTest'ten bir adım öte olduğunu ve projeleriniz için sağlam testler oluşturmak amacıyla **.NET 10**'da dotnet test ile nasıl kullanılacağını keşfedeceğiz. Bu kurulumla denemeler yapmak için attığım adımları, temel bir MSTest projesinden bağımsız yürütülebilir bir çoklu proje çözümüne kadar size göstereceğim. MTP, MicrosoftTestingPlatform, .NET 10, dotnet test dünyasına dalalım ve test etmeyi daha kolay ve eğlenceli hale getirelim!

💡
Harika bir API Test aracı mı istiyorsunuz, üstelik güzel API Dokümantasyonu oluşturan?

Geliştirici Ekibinizin maksimum verimlilikle birlikte çalışması için entegre, Hepsi Bir Arada bir platform mu istiyorsunuz?

Apidog tüm taleplerinizi karşılıyor ve Postman'ı çok daha uygun bir fiyata değiştiriyor!
düğme

.NET Geliştirmede Test Neden Önemlidir?

İşe koyulmadan önce, test etmenin neden bu kadar önemli olduğundan bahsedelim. İster küçük bir uygulama ister devasa bir kurumsal sistem inşa ediyor olun, testler kodunuzun beklendiği gibi çalıştığından emin olur, hataları erken yakalar ve sizi o geç saatlere kadar süren hata ayıklama oturumlarından kurtarır. MSTest ve MTP ile oluşturacağımız gibi otomatik birim testleri, işlevselliği doğrulamanıza, kod kalitesini artırmanıza ve yeniden düzenlemeyi kolaylaştırmanıza olanak tanır. .NET 10'un performans artışları ve MTP'nin modern test çerçevesi ile hızlı, güvenilir ve CI/CD işlem hatlarına kolayca entegre edilebilir testler yazmaya hazırsınız. Nasıl olduğunu görmeye hazır mısınız? Yolculuğumu takip edelim!

Microsoft Testing Platform (MTP) Nedir?

Microsoft Testing Platform (MTP) veya MicrosoftTestingPlatform, eskimeye yüz tutmuş VSTest çalıştırıcısının yerini almak üzere tanıtılan Microsoft'un yeni nesil test çerçevesidir. Karmaşık adaptörlere ve DLL tabanlı yürütmeye dayanan VSTest'in aksine, MTP .NET'te testleri çalıştırmak için akıcı, yerel bir deneyim sunar. .NET 10'a yerleşik olarak gelir, bu da onu daha hızlı ve daha esnek hale getirir; bağımsız yürütülebilir test çalıştırıcıları ve dotnet test ile daha iyi entegrasyon gibi özelliklere sahiptir. MTP; MSTest, NUnit ve xUnit'i destekler ve CI/CD ile çapraz platform geliştirme dahil modern iş akışları için tasarlanmıştır. Onu, .NET 10'un performans geliştirmeleri için optimize edilmiş, VSTest'in daha havalı, daha verimli bir kardeşi olarak düşünebilirsiniz.

Adım 1: MTP ile Temel Bir MSTest Projesi Kurulumu

MTP'yi çalışırken görmek için temel bir MSTest projesi oluşturarak basitçe başlayalım. İşte nasıl başladığım:

Projeyi Oluşturun:

dotnet new mstest -n MyMtpTests

Proje Dosyasını Kontrol Edin:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="coverlet.collector" Version="6.0.0" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
    <PackageReference Include="MSTest.TestAdapter" Version="3.1.1" />
    <PackageReference Include="MSTest.TestFramework" Version="3.1.1" />
  </ItemGroup>
</Project>

Testleri Çalıştırın:

cd MyMtpTests
dotnet test
vstest runner

Neler Oluyor? Bu, VSTest kullanan geleneksel bir kurulumdur, ancak MTP'ye yükseltmeden önce sağlam bir temeldir. Proje testleri bir DLL olarak çalıştırır, bu iyi olsa da MTP'nin yürütülebilir yaklaşımı kadar esnek değildir.

Adım 2: MTP Yürütülebilir Tabanlı Test Çalıştırıcısına Geçiş

Şimdi, dotnet test olmadan testleri çalıştırmanıza olanak tanıyan MTP'nin bağımsız yürütülebilir çalıştırıcısına geçerek işleri daha heyecanlı hale getirelim. İşte nasıl yaptığım:

Proje Dosyasını Güncelleyin:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>
    <!-- Enable MTP runner and executable output -->
    <EnableMSTestRunner>true</EnableMSTestRunner>
    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
    <OutputType>Exe</OutputType>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="coverlet.collector" Version="6.0.0" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
    <PackageReference Include="MSTest.TestFramework" Version="3.10.2" />
    <PackageReference Include="MSTest.TestAdapter" Version="3.10.2" />
  </ItemGroup>
  <ItemGroup>
    <Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
  </ItemGroup>
</Project>

Temel değişiklikler:

Projeyi Oluşturun:

dotnet build
exe file generated

Yürütülebilir Dosyayı Çalıştırın:

cd bin/Debug/net8.0
run test on .exe file

Neden Harika: Yürütülebilir yaklaşım, özel CI/CD kurulumları veya .NET SDK kurulu olmayan ortamlar için mükemmeldir. Esneklik açısından ezber bozan bir yeniliktir ve MTP ek yükü azaltarak VSTest'ten daha hızlı olmasını sağlar.

Adım 3: .NET 10 ve Çoklu Proje Testleri ile Profesyonelleşmek

MTP ve .NET 10'un gerçek dünya senaryosunda parladığını görmek için, bir sınıf kütüphanesi ve testler içeren çoklu proje çözümü oluşturalım. İşte nasıl kurduğum:

Nihai Proje Yapısı:

MyMtpSolution/
│
├── MyLibrary/
│   ├── Calculator.cs
│   └── MyLibrary.csproj
│
├── MyLibrary.Tests/
│   ├── CalculatorTests.cs
│   └── MyLibrary.Tests.csproj
│
├── MyMtpSolution.sln
└── dotnet.config

1. Çözüm Oluşturun:

dotnet new sln -n MyMtpSolution

2. Sınıf Kütüphanesi Oluşturun:

dotnet new classlib -n MyLibrary
namespace MyLibrary
{
    public class Calculator
    {
        public int Add(int a, int b) => a + b;
        public int Subtract(int a, int b) => a - b;
        public int Multiply(int a, int b) => a * b;
        public int Divide(int a, int b) => 
            b == 0 ? throw new ArgumentException("Cannot divide by zero.") : a / b;
    }
}

3. Test Projesi Oluşturun:

dotnet new mstest -n MyLibrary.Tests
using Microsoft.VisualStudio.TestTools.UnitTesting;
using MyLibrary;

namespace MyLibrary.Tests
{
    [TestClass]
    public class CalculatorTests
    {
        private Calculator _calculator;

        [TestInitialize]
        public void Setup()
        {
            _calculator = new Calculator();
        }

        [TestMethod]
        public void Add_ReturnsCorrectSum()
        {
            Assert.AreEqual(5, _calculator.Add(2, 3));
        }

        [TestMethod]
        public void Subtract_ReturnsCorrectDifference()
        {
            Assert.AreEqual(1, _calculator.Subtract(3, 2));
        }

        [TestMethod]
        public void Multiply_ReturnsCorrectProduct()
        {
            Assert.AreEqual(6, _calculator.Multiply(2, 3));
        }

        [TestMethod]
        public void Divide_ReturnsCorrectQuotient()
        {
            Assert.AreEqual(2, _calculator.Divide(6, 3));
        }

        [TestMethod]
        [ExpectedException(typeof(ArgumentException))]
        public void Divide_ByZero_ThrowsException()
        {
            _calculator.Divide(6, 0);
        }
    }
}

4. Proje Referansları Ekleyin:

dotnet add MyLibrary.Tests reference MyLibrary

5. Çözüme Projeler Ekleyin:

dotnet sln MyMtpSolution.sln add MyLibrary/MyLibrary.csproj
dotnet sln MyMtpSolution.sln add MyLibrary.Tests/MyLibrary.Tests.csproj

6. MTP için Yapılandırın:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
    <IsPackable>false</IsPackable>
    <IsTestProject>true</IsTestProject>
    <EnableMSTestRunner>true</EnableMSTestRunner>
    <TestingPlatformDotnetTestSupport>true</TestingPlatformDotnetTestSupport>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="coverlet.collector" Version="6.0.0" />
    <PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.8.0" />
    <PackageReference Include="MSTest.TestFramework" Version="3.10.2" />
    <PackageReference Include="MSTest.TestAdapter" Version="3.10.2" />
  </ItemGroup>
  <ItemGroup>
    <Using Include="Microsoft.VisualStudio.TestTools.UnitTesting" />
  </ItemGroup>
</Project>
<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFramework>net8.0</TargetFramework>
    <ImplicitUsings>enable</ImplicitUsings>
    <Nullable>enable</Nullable>
  </PropertyGroup>
</Project>

7. .NET 10'a Yükseltin:

download .net10
<TargetFramework>net10.0</TargetFramework>

8. Bir dotnet.config Dosyası Oluşturun:

[dotnet.test.runner]
name = "Microsoft.Testing.Platform"

9. Testleri Oluşturun ve Çalıştırın:

dotnet test
running the tests

Neden Harika: **.NET 10** performans iyileştirmeleri (daha hızlı JIT, daha iyi bellek yönetimi) getirirken, MTP'nin yerel entegrasyonu VSTest'in eski köprülerini ortadan kaldırarak testleri daha hızlı ve daha güvenilir hale getirir. Çoklu proje kurulumu, bir kütüphane ve ayrı bir test projesi ile gerçek dünya uygulamalarını taklit eder.

.NET 10 ve MTP Testleri Nasıl Geliştirir?

MTP ve **.NET 10** testleri bir sonraki seviyeye taşıyor:

Kullanıcılar MTP hakkında konuşuyor: “VSTest gibi ama yükü yok—daha hızlı ve daha temiz!” **.NET 10** ile en son teknoloji performansını elde edersiniz ve MTP, dotnet test'i keyifli hale getirir.

Sorun Giderme İpuçları

Sonuç

Artık modern bir test kurulumu oluşturmak için MTP (MicrosoftTestingPlatform), .NET 10, dotnet test kullanma konusunda bir uzmansınız! Temel bir MSTest projesinden bağımsız yürütülebilir bir çoklu proje çözümüne kadar, MTP'nin VSTest'i nasıl geride bıraktığını ve **.NET 10**'un performansı nasıl artırdığını gördünüz. Daha fazla test eklemeyi, CI/CD işlem hattınıza entegre etmeyi veya MTP'nin paralel yürütme gibi gelişmiş özelliklerini keşfetmeyi deneyin. Harika test kurulumlarınız mı var? Onları paylaşın—test ruhunu canlı tutalım!

düğme

API Tasarım-Öncelikli Yaklaşımı Apidog'da Uygulayın

API'leri oluşturmanın ve kullanmanın daha kolay yolunu keşfedin