MSTest'i yapılandırma

MSTest, Microsoft Testing Framework, .NET uygulamaları için bir test çerçevesidir. Testleri yazmanıza ve yürütmenize olanak tanır ve test paketlerine Visual Studio ve Visual Studio Code Test Explorers, .NET CLI ve birçok CI işlem hattıyla tümleştirme sağlar.

MSTest, GitHub'da barındırılan tüm desteklenen .NET hedefleri (.NET Framework, .NET Core, .NET, UWP, WinUI vb.) ile çalışan tam olarak desteklenen, açık kaynak ve platformlar arası bir test çerçevesidir.

Çalıştırma ayarları

Birim testlerinin nasıl çalıştırıldığını yapılandırmak için bir .runsettings dosyası kullanılabilir. Çalıştırma ayarları ve platformla ilgili yapılandırmalar hakkında daha fazla bilgi edinmek için VSTest runsettings belgelerine veya MSTest runner runsettings belgelerine göz atabilirsiniz.

Paralelleştirme ayarları

MSTest derleme içi paralelleştirmeyi etkinleştirmek için, sonraki bölümdeki tabloda açıklandığı gibi, MSTest altındaki Parallelize girdisini, buna ait Workers ve Scope değerleri de dahil olmak üzere yapılandırın. Bu çalıştırmada paralelleştirmeyi devre dışı bırakmak için <RunConfiguration><DisableParallelization>true</DisableParallelization></RunConfiguration> ayarlayın. DisableParallelization ayarı, bir [assembly: Parallelize] özniteliğini geçersiz kılar.

Paralelleştirme özniteliklerinin davranışı ve her yapılandırma mekanizmasının karşılaştırması için bkz. Paralelleştirmeyi yapılandırma.

MSTest öğesi

Aşağıdaki runsettings girdileri MSTest'in nasıl davranacağını yapılandırmanıza olanak sağlar.

Yapılandırma Varsayılan Değerler
AssemblyCleanupTimeout Hiç kimse Her bir montaj temizleme yöntemi örneğine uygulanacak zaman aşımını genel olarak belirtin. derleme temizleme yönteminde belirtilen [Timeout] özniteliği genel zaman aşımını geçersiz kılar.
AssemblyInitializeTimeout Hiç kimse Derleme başlatma yönteminin her örneğine uygulanacak zaman aşımını genel olarak belirtin. [Timeout] derleme başlatma yönteminde belirtilen öznitelik genel zaman aşımını geçersiz kılar.
AssemblyResolution yanlış Birim testlerini bulup çalıştırırken ek montajların yollarını belirleyebilirsiniz. Örneğin, test derlemesi ile aynı dizinde olmayan bağımlılık derlemeleri için bu yolları kullanın. Yol belirtmek için Dizin Yolu öğesi kullanın. Yollar ortam değişkenlerini içerebilir.

<AssemblyResolution> <Directory path="D:\myfolder\bin\" includeSubDirectories="false"/> </AssemblyResolution>

Bu özellik yalnızca .NET Framework hedefi kullanılırken uygulanır.
CaptureTraceOutput Result Trace.Write* ve Console.Write* API’lerinden metin yakalayın ve bunu geçerli testle ilişkilendirin. .NET Framework'te yakalama, paylaşılan izleme dinleyicileri aracılığıyla Debug.Write* öğesini de kapsar. Modern .NET, Debug.Write* öğesini bu dinleyiciler üzerinden yönlendirmez; bu nedenle MSTest bunu yakalayamaz. MSTest 4.4 önizleme sürümünden başlayarak , Resultveya LivekullanınNone. Live test çalışırken Trace, TestContext.Write* ve Console çıktısını da ekrana yazdırır. Önceki Boole değerleri desteklenmeye devam eder: true, Result ile eşleştirilir ve false, None ile eşleştirilir.
ClassCleanupLifecycle EndOfClass Sınıf temizleme işleminin derlemenin sonunda gerçekleşmesini istiyorsanız, bunu EndOfAssembly olarak ayarlayın. (Varsayılan ve yalnızca EndOfClass davranışı olduğu gibi MSTest v4'ten başlayarak artık desteklenmiyor)
ClassCleanupTimeout Hiç kimse Sınıf temizleme yönteminin her örneğine uygulanacak zaman aşımını genel olarak belirtin. [Timeout] sınıf temizleme yönteminde belirtilen öznitelik genel zaman aşımını geçersiz kılar.
ClassInitializeTimeout Hiç kimse Sınıf başlatma yönteminin her örneğine uygulanacak zaman aşımını genel olarak belirtin. [Timeout] sınıf başlatma yönteminde belirtilen öznitelik genel zaman aşımını geçersiz kılar.
ConsiderFixturesAsSpecialTests yanlış Visual Studio ve Visual Studio Code AssemblyInitialize ile AssemblyCleanup.trx günlüğünde ClassInitialize, ClassCleanup, Test Explorer, öğelerini tek tek girdiler olarak görüntülemek için bu değeri true olarak ayarlayın.
DeleteDeploymentDirectoryAfterTestRunIsComplete doğru Bir test çalıştırmasının ardından dağıtım dizinini korumak için bu değeri false olarak ayarlayın.
DeploymentEnabled doğru Değeri false olarak ayarlarsanız, test yönteminizde belirttiğiniz dağıtım öğeleri dağıtım dizinine kopyalanmamıştır.
DeployTestSourceDependencies doğru Test kaynağı başvurularının dağıtılıp dağıtılmayacağını gösteren değer.
EnableBaseClassTestMethodsFromOtherAssemblies doğru Devralan test sınıfından farklı bir derlemedeki temel sınıflardan test yöntemlerinin bulunup bulunmayacağını belirten bir değer.
ForcedLegacyMode yanlış Visual Studio'nun eski sürümlerinde, MSTest bağdaştırıcısı daha hızlı ve daha ölçeklenebilir hale getirmek için iyileştirilmiştir. Testlerin çalışma sırası gibi bazı davranışlar Visual Studio'nun önceki sürümlerindekiyle aynı olmayabilir. Eski test bağdaştırıcısını kullanmak için değeri true olarak ayarlayın.

Örneğin, birim testi için belirtilen bir app.config dosyanız varsa bu ayarı kullanabilirsiniz.

Daha yeni bağdaştırıcı kullanmanıza olanak vermek için testlerinizi yeniden düzenlemenizi öneririz.
GlobalTestCleanupTimeout TestCleanupTimeout MSTest 4.4'den başlayarak, her genel test temizleme yöntemi için zaman aşımını belirtin. Bu girdiyi atladığınızda, MSTest kullanır TestCleanupTimeout. [Timeout] Yöntemindeki bir öznitelik her iki değeri de geçersiz kılar.
GlobalTestInitializeTimeout TestInitializeTimeout MSTest 4.4'den başlayarak, her genel test başlatma yöntemi için zaman aşımını belirtin. Bu girdiyi atladığınızda, MSTest kullanır TestInitializeTimeout. [Timeout] Yöntemindeki bir öznitelik her iki değeri de geçersiz kılar.
LaunchDebuggerOnTestFailure yanlış MSTest 4.2'den başlayarak , true olarak ayarlandığında, bir test başarısız olduğunda MSTest hata ayıklayıcıyı başlatır.
MapInconclusiveToFailed yanlış Bir test, sonuçsuz bir durumla tamamlanırsa, Test Gezgini'nde atlanan durumla eşlenir. Başarısız testlerin başarısız olarak gösterilmesini istiyorsanız değeri true olarak ayarlayın.
MapNotRunnableToFailed doğru Çalıştırılamayan bir sonucun başarısız testle eşlenip eşlenmediğini gösteren değer.
OrderTestsByNameInClass yanlış Testleri hem Test Gezgini'nde hem de komut satırında test adlarına göre çalıştırmak istiyorsanız, bu değeri true olarak ayarlayın.
Parallelize Paralelleştirme ayarlarını ayarlamak için kullanılır:

Workers: Paralelleştirme için kullanılacak iş parçacığı/çalışan sayısıdır ve varsayılan olarak geçerli makinedeki işlemci sayısıdır.

Scope: Paralelleştirmenin kapsamı. MethodLevelolarak ayarlayabilirsiniz. Varsayılan olarak değeridir ClassLevel.

<Parallelize><Workers>32</Workers><Scope>MethodLevel</Scope></Parallelize>
RandomizeTestOrder yanlış MSTest 4.3'den başlayarak, testleri rastgele bir sırada çalıştırmak için bu değeri true olarak ayarlayın, bu da testler arasındaki gizli sıralama bağımlılıklarını ortaya çıkarır. Bu ayar ile OrderTestsByNameInClassbirleştirilemiyor.
RandomTestOrderSeed MSTest 4.3'ten itibaren, RandomizeTestOrdertrue olduğunda, rastgele sırayı çalıştırmalar arasında tekrarlanabilir hale getirmek için tamsayı bir başlangıç değeri ayarlayın. Ayarlanmadığında, her çalıştırma için yeni bir tohum kullanılır.
SettingsFile BURADA MSTest bağdaştırıcısıyla kullanılacak bir test ayarları dosyası belirtebilirsiniz. Ayrıca, ayarlar menüsünden bir test ayarları dosyası belirtebilirsiniz.

Bu değeri belirtirseniz değerini de ForcedLegacyMode olarak ayarlamanız gerekir.

<ForcedLegacyMode>true</ForcedLegacyMode>
TestCleanupTimeout Hiç kimse Test temizleme yönteminin her örneğine uygulanacak zaman aşımını genel olarak belirtin. [Timeout] test temizleme yönteminde belirtilen öznitelik genel zaman aşımını geçersiz kılar.
TestInitializeTimeout Hiç kimse Test başlatma yönteminin her örneğine uygulanacak zaman aşımını genel olarak belirtin. [Timeout] test başlatma yönteminde belirtilen öznitelik genel zaman aşımını geçersiz kılar.
TestTimeout Hiç kimse Belirtilen genel test durumu zaman aşımını alır.
TreatClassAndAssemblyCleanupWarningsAsErrors yanlış Sınıf temizlemelerindeki hatalarınızı hata olarak görmek için bu değeri true olarak ayarlayın.
TreatDiscoveryWarningsAsErrors yanlış Test bulma uyarılarını hata olarak bildirmek için bu değeri true olarak ayarlayın.

Zaman aşımı değerleri milisaniye cinsinden pozitif tamsayılar olmalıdır. Zaman aşımı olmadan çalıştırmak için, girdiyi 0 olarak ayarlamak yerine belirtmeyin. Genel test fikstürü zaman aşımları, karşılık gelen TestInitializeTimeout veya TestCleanupTimeout değerini devralır.

TestRunParameter öğesi

<TestRunParameters>
    <Parameter name="webAppUrl" value="http://localhost" />
</TestRunParameters>

Test çalıştırması parametreleri, çalışma zamanında testlerin kullanabileceği değişkenleri ve değerleri tanımlamanın bir yolunu sağlar. MSTest TestContext.Properties özelliğini kullanarak parametrelere erişin:

private string _appUrl;
public TestContext TestContext { get; set; }

[TestMethod]
public void HomePageTest()
{
    string _appUrl = TestContext.Properties["webAppUrl"];
}

Test çalıştırması parametrelerini kullanmak için test sınıfınıza bir ortak TestContext özellik ekleyin.

Örnek .runsettings dosyası

Aşağıdaki XML, tipik bir .runsettings dosyasının içeriğini gösterir. Bu kodu kopyalayın ve gereksinimlerinize uyacak şekilde düzenleyin.

Dosyanın her öğesi, varsayılan bir değere sahip olduğundan isteğe bağlıdır.

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>

  <!-- Parameters used by tests at runtime -->
  <TestRunParameters>
    <Parameter name="webAppUrl" value="http://localhost" />
    <Parameter name="webAppUserName" value="Admin" />
    <Parameter name="webAppPassword" value="Password" />
  </TestRunParameters>

  <!-- MSTest -->
  <MSTest>
    <MapInconclusiveToFailed>True</MapInconclusiveToFailed>
    <CaptureTraceOutput>false</CaptureTraceOutput>
    <DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>
    <DeploymentEnabled>False</DeploymentEnabled>
    <ConsiderFixturesAsSpecialTests>False</ConsiderFixturesAsSpecialTests>
    <AssemblyResolution>
      <Directory path="D:\myfolder\bin\" includeSubDirectories="false"/>
    </AssemblyResolution>
  </MSTest>

</RunSettings>

testconfig.json

Testlerinizi MSTest ile çalıştırırken, test çalıştırıcısının davranışını yapılandırmak için bir testconfig.json dosyası kullanabilirsiniz. testconfig.json dosyası, test çalıştırıcısının yapılandırma ayarlarını içeren bir JSON dosyasıdır. Dosya, test çalıştırıcısını ve test yürütme ortamını yapılandırmak için kullanılır. Daha fazla bilgi için MTP testconfig.json belgelerine bakın.

MSTest 3.7'den başlayarak, MSTest çalıştırmalarını aynı yapılandırma dosyasında da yapılandırabilirsiniz. Aşağıdaki bölümlerde, testconfig.json dosyasında kullanabileceğiniz ayarlar açıklanmaktadır.

MSTest 4.3.3'ten itibaren, .NET Framework'te yapılan çalıştırmalar da testconfig.json içinde yorumları ve sondaki virgülleri kabul eder.

MSTest öğesi

MSTest ayarları, izleyen bölümlerde açıklanan işlevlere göre gruplandırılır.

Giriş Varsayılan Açıklama
Diğer Derlemelerden Taban Sınıf Test Metotlarını Etkinleştir doğru Devralan test sınıfından farklı bir derlemedeki temel sınıflardan test yöntemlerinin bulunup bulunmayacağını belirten bir değer.
classCleanupLifecycle Montajın Sonu Sınıf temizleme işleminin sınıfın sonunda gerçekleşmesini istiyorsanız, bunu EndOfClass olarak ayarlayın.

assemblyResolution ayarları

Bu bölümdeki tüm ayarlar assemblyResolution öğesine aittir.

Giriş Varsayılan Açıklama
Yollar Hiç kimse Birim testlerini bulup çalıştırırken ek montajların yollarını belirleyebilirsiniz. Örneğin, test derlemesi ile aynı dizinde olmayan bağımlılık derlemeleri için bu yolları kullanın. { "path": "...", "includeSubDirectories": "true/false" }şekilde bir yol belirtebilirsiniz.

Örnek:

{
  "mstest": {
    "assemblyResolution": {
        { "path": "...", "includeSubDirectories": "true/false" }
    }
  }
}

deployment ayarları

Bu bölümdeki tüm ayarlar deployment öğesine aittir.

Giriş Varsayılan Açıklama
TestÇalışmasıTamamlandığındaDağıtımDizininiSil doğru Bir test çalıştırmasının ardından dağıtım dizinini korumak için bu değeri false olarak ayarlayın.
TestKaynakBağımlılıklarınıYükle doğru Test kaynağı referanslarının dağıtılıp dağıtılmayacağını belirtir.
Aktif doğru Değeri false olarak ayarlarsanız, test yönteminizde belirttiğiniz dağıtım öğeleri dağıtım dizinine kopyalanmamıştır.

Örnek:

{
  "mstest": {
    "deployment": {
        "deleteDeploymentDirectoryAfterTestRunIsComplete": true,
        "deployTestSourceDependencies": true,
        "enabled": true
    }
  }
}

output ayarları

Bu bölümdeki tüm ayarlar output öğesine aittir.

Giriş Varsayılan Açıklama
captureTrace Result Console ve Trace çıktısını yakalayın ve bunu mevcut testle ilişkilendirin. .NET Framework'te yakalama, paylaşılan izleme dinleyicileri aracılığıyla Debug çıkışını da içerir. Modern .NET Debug.Write* çıkışı yakalanmaz. MSTest 4.4 önizleme sürümünden başlayarak , Resultveya LivekullanınNone. Live ayrıca test çalışırken TestContext.Write* iletileri de dahil olmak üzere çıktıyı da görüntüler. Boole değerleri desteklenmeye devam eder: true, Result ile eşlenir ve false, None ile eşlenir.

Örnek:

{
  "mstest": {
    "output": {
        "captureTrace": false
    }
  }
}

parallelism ayarları

Bu bölümdeki tüm ayarlar parallelism öğesine aittir.

Paralelleştirme özniteliklerinin davranışı ve her yapılandırma mekanizmasının karşılaştırması için bkz. Paralelleştirmeyi yapılandırma.

Giriş Varsayılan Açıklama
Aktif yanlış Test paralelleştirmesini etkinleştirin.
kapsam sınıf Paralelleştirmenin kapsamı. methodolarak ayarlayabilirsiniz. varsayılan class, belirli bir sınıfın tüm testlerini sırayla ancak birden çok sınıfın paralel olarak çalıştırılmasına karşılık gelir.
Işçi 0 Paralelizasyon için kullanılacak iş parçacığı/çalışan sayısı. Varsayılan değer, geçerli makinedeki işlemci sayısına karşılık gelir.

Örnek:

{
  "mstest": {
    "parallelism": {
        "enabled": true,
        "scope": "method",
        "workers": 32
    }
  }
}

execution ayarları

Bu bölümdeki tüm ayarlar execution öğesine aittir.

Giriş Varsayılan Açıklama
BoşVeriKaynağınıSonuçsuzKabulEt yanlış trueolarak ayarlandığında, boş bir veri kaynağı yetersiz olarak kabul edilir.
fikstürleriÖzelTestlerOlarakDüşün yanlış AssemblyInitialize, AssemblyCleanup, ClassInitializeve ClassCleanup 'ü Visual Studio ve Visual Studio Code Test Explorer ve .trx günlüğünde tek tek girdiler olarak görüntülemek için, bu değeri trueolarak ayarlayın.
bağımlılıklar MSTest 4.4'den başlayarak test bağımlılığını chains ve nodesbildirin. Bu ayar yalnızca Microsoft ile kullanılabilir. Testing.Platform. Daha fazla bilgi için bkz . Test bağımlılıkları.
BelirsizSonucuBaşarısızOlarakEşle yanlış Bir test, sonuçsuz bir durumla tamamlanırsa, Test Gezgini'nde atlanan durumla eşlenir. Başarısız testlerin başarısız olarak gösterilmesini istiyorsanız değeri true olarak ayarlayın.
Test başarısız olduğunda hata ayıklayıcıyı başlat yanlış MSTest 4.2'den başlayarak, olarak ayarlandığında true, bir test başarısız olduğunda MSTest hata ayıklayıcıyı başlatır.
ÇalıştırılamayanHaritayıBaşarısızaÇevir doğru Çalıştırılamayan bir sonucun başarısız testle eşlenip eşlenmediğini gösteren değer.
SınıftaTestleriAdaGöreSırala yanlış Testleri her sınıf içinde alfabetik sırada çalıştırın. MSTest 4.3 ile başlayarak kullanın mstest.execution.orderTestsByNameInClass. Önceki mstest.orderTestsByNameInClass anahtar hala çalışır ancak kullanımdan kaldırma uyarısı oluşturur.
Test sırasını rastgele belirle yanlış MSTest 4.3'den başlayarak, testleri rastgele bir sırada çalıştırmak için true bu değeri olarak ayarlayın; bu, testler arasındaki gizli sıralama bağımlılıklarını ortaya çıkarmaya yardımcı olur. Bu ayar ile orderTestsByNameInClassbirleştirilemiyor.
randomTestOrderSeed MSTest 4.3’ten itibaren, randomizeTestOrdertrue olduğunda, rastgele sıranın farklı çalıştırmalarda aynı şekilde yeniden üretilebilmesi için bir tamsayı başlangıç değeri ayarlayın. Ayarlanmadığında, her çalıştırma için yeni bir tohum kullanılır.
Sınıf ve Bütünleştirilmiş Yapı Temizleme Uyarılarını Hatalar Olarak İşle yanlış Sınıf temizlemelerindeki hatalarınızı hata olarak görmek için bu değeri true olarak ayarlayın.
Keşif Uyarılarını Hatalar Olarak Ele Al yanlış Test bulma uyarılarını hata olarak bildirmek için bu değeri true olarak ayarlayın.

Örnek:

{
  "mstest": {
    "execution": {
        "considerEmptyDataSourceAsInconclusive": false,
        "considerFixturesAsSpecialTests": false,
        "mapInconclusiveToFailed": true,
        "mapNotRunnableToFailed": true,
        "treatClassAndAssemblyCleanupWarningsAsErrors": false,
        "treatDiscoveryWarningsAsErrors": false
    }
  }
}

timeout ayarları

Bu bölümdeki tüm ayarlar timeout öğesine aittir.

Giriş Varsayılan Açıklama
montaj temizliği Hiç kimse Her bir montaj temizleme yöntemi örneğine uygulanacak zaman aşımını genel olarak belirtin.
bütünleştirmeBaşlat Hiç kimse Derleme başlatma yönteminin her örneğine uygulanacak zaman aşımını genel olarak belirtin.
sınıfTemizle Hiç kimse Sınıf temizleme yönteminin her örneğine uygulanacak zaman aşımını genel olarak belirtin.
sınıfBaşlat Hiç kimse Sınıf başlatma yönteminin her örneğine uygulanacak zaman aşımını genel olarak belirtin.
globalTestCleanup testCleanup MSTest 4.4'den başlayarak, her genel test temizleme yöntemi için zaman aşımını belirtin. Bu girdiyi atladığınızda, MSTest kullanır testCleanup.
globalTestInitialize testInitialize MSTest 4.4'den başlayarak, her genel test başlatma yöntemi için zaman aşımını belirtin. Bu girdiyi atladığınızda, MSTest kullanır testInitialize.
deneme Hiç kimse Genel olarak test zaman aşımını belirtin.
testCleanup Hiç kimse Test temizleme yönteminin her örneğine uygulanacak zaman aşımını genel olarak belirtin.
testInitialize Hiç kimse Test başlatma yönteminin her örneğine uygulanacak zaman aşımını genel olarak belirtin.
useKooperatifİptal yanlış trueolarak ayarlandığında, zaman aşımı durumunda MSTest yalnızca CancellationToken iptalini tetikler ancak yöntemi gözlemlemeyi durdurmaz. Bu davranış daha yüksek performanslıdır, ancak belirteci doğru bir şekilde tüm yollar boyunca iletmek için kullanıcıya dayanır.

Not

Zaman aşımı değerleri milisaniye cinsinden pozitif tamsayılar olmalıdır. Zaman aşımı olmadan çalıştırmak için, girdiyi 0 olarak ayarlamak yerine belirtmeyin. Genel test fikstürü zaman aşımları, ilgili testInitialize veya testCleanup değerini devralır; bu nedenle genel bir fikstürde zaman aşımı istemiyorsanız iki girdiyi de belirtmeyin. Bir [Timeout] yöntemdeki öznitelik, yapılandırılan zaman aşımını geçersiz kılar.

Örnek:

{
  "mstest": {
    "timeout": { "globalTestInitialize": 30000, "globalTestCleanup": 30000 }
  }
}

Örnek testconfig.json dosyası

Aşağıdaki JSON, tipik bir .testconfig.json dosyasının içeriğini gösterir. Bu kodu kopyalayın ve gereksinimlerinize uyacak şekilde düzenleyin.

Dosyanın her öğesi, varsayılan bir değere sahip olduğundan isteğe bağlıdır.

{
  "platformOptions": {
    "resultDirectory": "./TestResults"
  },
  "mstest": {
    "execution": {
        "mapInconclusiveToFailed": true,
        "disableAppDomain": true,
        "considerFixturesAsSpecialTests": false
    },
    "parallelism": {
        "enabled": true,
        "scope": "method"
    },
    "output": {
        "captureTrace": false
    }
  }
}

MSBuild özellikleri

MSTest 4.3'ten itibaren, Directory.Build.props özniteliği yazmadan, proje dosyanızdan veya [assembly: Parallelize] ile derleme düzeyinde paralelleştirmeyi etkinleştirebilirsiniz. Bu özellikler, derleme sırasında karşılık gelen derleme özniteliğini oluşturur; bu nedenle GenerateAssemblyInfo öğesinin true olması gerekir (SDK stili projeler için varsayılan).

Oluşturulan özniteliklerin davranışı ve her yapılandırma mekanizmasının karşılaştırması için bkz. Paralelleştirmeyi yapılandırma.

Property Varsayılan Açıklama
MSTestParallelizeScope Paralelleştirme kapsamı. Bunu, MethodLevel (veya ClassLevel) üretmek için [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] ya da ExecutionScope.ClassLevel olarak veya None üretmek için [assembly: DoNotParallelize] olarak ayarlayın.
MSTestParallelizeWorkers Workers öğesinin [assembly: Parallelize] değeri olarak çıktısı verilen en fazla çalışan iş parçacığı sayısı. 0 değeri, geçerli makinedeki işlemci sayısına eşlenir. Bu özellik, MSTestParallelizeScopeNone olduğunda ayarlanamaz.

MSTest, derleme sırasında her iki özelliği de doğrular. Geçersiz kapsam değerleri, tamsayı olmayan worker sayıları ve None kapsamıyla birlikte kullanılan bir worker sayısı derlemenin başarısız olmasına neden olur. Kaynakta ayrıca [assembly: Parallelize] veya [assembly: DoNotParallelize] tanımlamayın, çünkü oluşturulan öznitelik bunun yinelenmesine neden olur. GenerateAssemblyInfo false olduğunda, özniteliği bunun yerine kaynakta bildirin.

Aşağıdaki örnek, Directory.Build.props dosyasını içe aktaran her test projesinde yöntem düzeyinde paralelleştirmeyi dört çalışanla etkinleştirir:

<Project>
  <PropertyGroup>
    <MSTestParallelizeScope>MethodLevel</MSTestParallelizeScope>
    <MSTestParallelizeWorkers>4</MSTestParallelizeWorkers>
  </PropertyGroup>
</Project>