Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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>