.runsettings dosyası kullanarak birim testlerini yapılandırma
Birim testlerinin nasıl çalıştırıldığını yapılandırmak için bir .runsettings dosyası kullanılabilir. Örneğin, testlerin çalıştırıldığı .NET sürümünü, test sonuçlarının dizinini veya bir test çalıştırması sırasında toplanan verileri değiştirmek için kullanılabilir. .runsettings dosyasının yaygın kullanımlarından biri, kod kapsamı analizini özelleştirmektir.
Runsettings dosyaları, komut satırından, IDE'den veya Azure Test Planları veya Azure DevOps Server (eski adıyla Team Foundation Server (TFS) kullanılarak bir derleme iş akışında çalıştırılan testleri yapılandırmak için kullanılabilir.
Runsettings dosyaları isteğe bağlıdır. Özel bir yapılandırmaya ihtiyacınız yoksa bir .runsettings dosyasına ihtiyacınız yoktur.
Çalıştırma ayarları dosyası oluşturma ve özelleştirme
Çözümünüze bir çalıştırma ayarları dosyası ekleyin. Çözüm Gezgini'da, çözümünüzün kısayol menüsünde Yeni Öğe Ekle'yi>ve ardından XML Dosyası'nı seçin. Dosyayı test.runsettings gibi bir adla kaydedin.
Tüm öğe şablonlarını görmüyorsanız, Tüm Şablonları Göster'i ve ardından öğe şablonunu seçin.
İpucu
.runsettings uzantısını kullandığınız sürece dosya adı önemli değildir.
Örnek *.runsettings dosyasındaki içeriği ekleyin ve ardından izleyen bölümlerde açıklandığı gibi gereksinimlerinize göre özelleştirin.
Aşağıdaki yöntemlerden birini kullanarak istediğiniz *.runsettings dosyasını belirtin:
Özel çalıştırma ayarlarını kullanmak için birim testlerini çalıştırın.
IDE'de özel ayarları kapatmak ve açmak istiyorsanız, Test menüsünde dosyanın seçimini kaldırın veya seçin.
İpucu
Çözümünüzde birden fazla .runsettings dosyası oluşturabilir ve gerektiğinde etkin test ayarları dosyası olarak birini seçebilirsiniz.
IDE'de bir çalıştırma ayarları dosyası belirtme
Kullanılabilir yöntemler, Visual Studio sürümünüze bağlıdır.
Visual Studio 2019 sürüm 16.4 ve üzeri
Visual Studio 2019 sürüm 16.4 ve sonraki sürümlerde bir çalıştırma ayarları dosyası belirtmenin üç yolu vardır.
- Çalıştırma ayarlarını otomatik olarak algılama
- Çalıştırma ayarlarını el ile ayarlama
- Derleme özelliği ayarlama
Çalıştırma ayarları dosyasını otomatik olarak algıla
Not
Bu yalnızca adlı .runsettings
bir dosya için çalışır.
Çalıştırma ayarları dosyasını otomatik olarak algılamak için çözümünüzün köküne yerleştirin.
Çalıştırma ayarları dosyalarının otomatik algılanması etkinleştirilirse, bu dosyadaki ayarlar tüm test çalıştırmalarında uygulanır. Runsettings dosyalarını otomatik algılamayı iki yöntem kullanarak açabilirsiniz:
Araçlar>Seçenekler>Test>Otomatik Algılama runsettings Dosyaları'nı seçin
Çalıştırma Ayarlarını>Otomatik Algıla runsettings Dosyalarını Sına>Yapılandır'ı seçin
Çalıştırma ayarları dosyasını el ile seçin
IDE'de, Çalıştırma Ayarlarını>Yapılandır Test>Et Çözüm Geniş runsettings Dosyası'nı seçin ve ardından .runsettings dosyasını seçin.
- Bu dosya, varsa çözümün kökündeki .runsettings dosyasını geçersiz kılar ve tüm test çalıştırmalarına uygulanır.
- Bu dosya seçimi yalnızca yerel olarak kalıcı olur.
Derleme özelliği ayarlama
Proje dosyası veya Directory.Build.props dosyası aracılığıyla projeye derleme özelliği ekleyin. Bir projenin çalıştırma ayarları dosyası RunSettingsFilePath özelliği tarafından belirtilir.
- Proje düzeyinde çalıştırma ayarları şu anda C#, VB, C++ve F# projelerinde desteklenmektedir.
- Proje için belirtilen bir dosya, çözümde belirtilen diğer çalıştırma ayarları dosyalarını geçersiz kılar.
- Bu MSBuild özellikleri runsettings dosyasının yolunu belirtmek için kullanılabilir.
Proje için .runsettings dosyası belirtme örneği:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RunSettingsFilePath>$(MSBuildProjectDirectory)\example.runsettings</RunSettingsFilePath>
</PropertyGroup>
...
</Project>
Visual Studio 2019 sürüm 16.3 ve öncesi
IDE'de bir çalıştırma ayarları dosyası belirtmek için Test>Seçme Ayarları Dosyası'nı seçin. .runsettings dosyasına gidin ve dosyayı seçin.
Dosya Test menüsünde görünür ve dosyayı seçebilir veya seçimini kaldırabilirsiniz. Seçili durumdayken, Kod Kapsamını Çözümle'yi seçtiğinizde çalıştırma ayarları dosyası uygulanır.
Komut satırından bir çalıştırma ayarları dosyası belirtin
Testleri komut satırından çalıştırmak için vstest.console.exe kullanın ve /Settings parametresini kullanarak ayarlar dosyasını belirtin.
Visual Studio için Geliştirici Komut İstemi'ni açın.
Şuna benzer bir komut girin:
vstest.console.exe MyTestAssembly.dll /EnableCodeCoverage /Settings:CodeCoverage.runsettings
veya
vstest.console.exe --settings:test.runsettings test.dll
Daha fazla bilgi için bkz . VSTest.Console.exe komut satırı seçenekleri.
*.runsettings dosyası
*.runsettings dosyası, RunSettings öğesi içinde farklı yapılandırma öğeleri içeren bir XML dosyasıdır. İzleyen bölümler farklı öğeleri ayrıntılı olarak açıklar. Tam örnek için bkz . Örnek *.runsettings dosyası.
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- configuration elements -->
</RunSettings>
Varsayılan değere sahip olduğundan yapılandırma öğelerinin her biri isteğe bağlıdır.
RunConfiguration öğesi
<RunConfiguration>
<MaxCpuCount>1</MaxCpuCount>
<ResultsDirectory>.\TestResults</ResultsDirectory>
<TargetPlatform>x86</TargetPlatform>
<TargetFrameworkVersion>net6.0</TargetFrameworkVersion>
<TestAdaptersPaths>%SystemDrive%\Temp\foo;%SystemDrive%\Temp\bar</TestAdaptersPaths>
<TestCaseFilter>(TestCategory != Integration) & (TestCategory != UnfinishedFeature)</TestCaseFilter>
<TestSessionTimeout>10000</TestSessionTimeout>
<TreatNoTestsAsError>true</TreatNoTestsAsError>
</RunConfiguration>
RunConfiguration öğesi aşağıdaki öğeleri içerebilir:
Düğüm | Varsayılan | Değerler |
---|---|---|
MaxCpuCount | 1 | Seçenek adı büyük/küçük harfe duyarlıdır ve MaxCPUCount olarak kolayca yanlış anlaşılır. Bu ayar, işlem düzeyinde paralellik düzeyini denetler. İşlem düzeyinde paralellik üst sınırını etkinleştirmek için 0 kullanın. Bu ayar, test DLL'lerinin veya paralel olarak çalışabilen diğer test kapsayıcılarının maksimum sayısını belirler. Her DLL kendi testhost işleminde çalışır ve diğer test DLL'lerindeki testlerden işlem düzeyinde yalıtılır. Bu ayar, her test DLL'sindeki testleri paralel çalışmaya zorlamaz. BIR DLL içinde (iş parçacığı düzeyinde) paralel yürütmeyi denetlemek MSTest, XUnit veya NUnit gibi test çerçevesine bağlıdır. Varsayılan değer, 1 aynı anda yalnızca bir testhost'un çalıştığı anlamına gelir. Özel bir değer 0 , mantıksal işlemcileriniz olduğu kadar çok sayıda test konasına izin verir (örneğin, çok iş parçacıklı altı fiziksel çekirdeği olan bir bilgisayar için 6 fiziksel çekirdeği olmayan bir bilgisayar için 6 veya çok iş parçacıklı altı fiziksel çekirdeği olan bir bilgisayar için 12).Çalıştırmadaki ayrı DLL sayısı, başlatılan test konaklarının gerçek sayısını belirler. |
ResultsDirectory | Test sonuçlarının yerleştirildiği dizin. Yol, .runsettings dosyasını içeren dizine göredir. | |
TargetFrameworkVersion | net40 veya netcoreapp1.0 | Otomatik algılama için bu etiketin tamamını atlayın. Bu ayar, testleri çalıştırmak için kullanılacak çerçeve sürümünü veya çerçeve ailesini tanımlar. Kabul edilen değerler, , , net5.0 uap10.0 net6.0 netcoreapp3.1 net472 gibi net48 herhangi bir çerçeve adı veya veya gibi.NETFramework,Version=v4.7.2 .NETCoreApp,Version=v6.0.0 geçerli bir tam çerçeve adıdır. Geriye dönük uyumluluk Framework35 için , Framework40 , Framework45 , , FrameworkCore10 FrameworkUap10 kabul edilir, yani (net35 sırasıyla, net40 , net45 netcoreapp1.0 veuap10.0 ). Tüm değerler büyük/küçük harfe duyarlı değildir.Sağlanan değer, kullanılacak test çalışma zamanı sağlayıcısını belirlemek için kullanılır. Her test çalışma zamanı sağlayıcısının kullanılacak çerçeve ailesine saygı duyması gerekir, ancak tam çerçeve sürümüne saygı duymayabilir: .NET Framework 4.5.1 - 4.8 için, belirtilen tam sürümle oluşturulmuş bir testhost kullanılır. Bu aralığın dışındaki değerler için .NET Framework 4.5.1 testhost kullanılır. .NET için, gerçek sürümü test projesinin <TargetFramework> (veya daha kesin olarak runtimeconfig.json ) belirler.UWP için test projesi uygulaması kendi başına bir testhost'dur ve kullanılan gerçek UWP sürümünü belirler. Yerleşik ikili dosyalardan çerçeve sürümünü otomatik olarak belirlemek için .runsettings dosyasındaki öğesini atlar TargetFrameworkVersion .Otomatik algılama sırasında tüm hedef çerçeveler tek bir ortak çerçevede birleştirilir. Aynı hedef çerçeve ailesinden farklı bir sürüm bulunduğunda, daha yeni sürüm seçilir (örneğin, net452, net472, net48 = net48). .NET Framework çalıştırıcısı için (Visual Studio'da veya Geliştirici komut satırında vstest.console.exe) ortak hedef çerçeve net40'tır. .NET çalıştırıcısı için (dotnet testi + DLL'ler), ortak hedef çerçeve netcoreapp1.0 olarak ayarlanır. |
TargetPlatform | x86 | Otomatik algılama için bu etiketin tamamını atlayın. Bu ayar, testleri çalıştırmak için kullanılacak mimariyi tanımlar. Olası değerler : x86 , x64 , ARM , ARM64 , S390x .Otomatik algılama sırasında AnyCPU DLL'lerinin mimarisi çalıştırıcıya göre farklılık gösterebilir. .NET Framework çalıştırıcısı için (Visual Studio'da veya Geliştirici komut satırında vstest.console.exe), varsayılan değer x86'dır. .NET çalıştırıcısı (dotnet testi) için varsayılan, geçerli işlem mimarisidir. |
TreatTestAdapterErrorsAsWarnings | yanlış | yanlış, doğru |
TestAdaptersPaths | TestAdapters'ın bulunduğu dizinin bir veya daha fazla yolu | |
TestCaseFilter | Biçim <özelliği><işleci><değerindeki> bir filtre ifadesi[|&<İfade>]. Boole işleci &HTML varlığıyla gösterilmelidir. İfadeler parantez içine alınabilir. İfade yapısı hakkında ayrıntılı söz dizimi için bkz . vstest/docs/filter.md. | |
TestSessionTimeout | Kullanıcıların, milisaniye cinsinden belirtilen belirli bir zaman aşımını aştığında test oturumlarını sonlandırmasına izin verir. Zaman aşımının ayarlanması, kaynakların iyi tüketilmesini ve test oturumlarının belirli bir süreyle kısıtlanmasını sağlar. Bu ayar Visual Studio 2017 sürüm 15.5 ve sonraki sürümlerde kullanılabilir. | |
DotnetHostPath | testhost'u çalıştırmak için kullanılan dotnet konağı için özel bir yol belirtin. Kendi dotnet'inizi oluştururken, örneğin dotnet/runtime deposunu oluştururken kullanışlıdır. Bu seçeneğin belirtilmesi testhost.exe aramayı atlar ve testhost.dll kullanımını zorlar. | |
TreatNoTestsAsError | yanlış | true veya false Hiçbir test bulunadığında çıkış kodunu tanımlayan bir Boole değeri belirtin. Değer ise true ve hiçbir test bulunamıyorsa sıfır olmayan bir çıkış kodu döndürülür. Aksi takdirde sıfır döndürülür. |
DataCollectors öğesi (tanılama veri bağdaştırıcıları)
DataCollectors öğesi, tanılama veri bağdaştırıcılarının ayarlarını belirtir. Tanılama veri bağdaştırıcıları, test edilen ortam ve uygulama hakkında ek bilgi toplar. Her bağdaştırıcının varsayılan ayarları vardır ve yalnızca varsayılan ayarları kullanmak istemiyorsanız ayarları sağlamanız gerekir.
<DataCollectionRunSettings>
<DataCollectors>
<!-- data collectors -->
</DataCollectors>
</DataCollectionRunSettings>
CodeCoverage veri toplayıcısı
Kod kapsamı veri toplayıcısı uygulama kodu bölümlerinin testte uygulandığı bir günlük oluşturur. Kod kapsamı ayarlarını özelleştirme hakkında ayrıntılı bilgi için bkz . Kod kapsamı analizini özelleştirme.
<DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Configuration>
<CodeCoverage>
<ModulePaths>
<Exclude>
<ModulePath>.*CPPUnitTestFramework.*</ModulePath>
</Exclude>
</ModulePaths>
<UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
<AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
<CollectFromChildProcesses>True</CollectFromChildProcesses>
<CollectAspDotNet>False</CollectAspDotNet>
</CodeCoverage>
</Configuration>
</DataCollector>
VideoKayıt veri toplayıcısı
Testler çalıştırıldığında video veri toplayıcısı bir ekran kaydı yakalar. Bu kayıt, kullanıcı arabirimi testlerinin sorunlarını gidermek için kullanışlıdır. Video veri toplayıcısı Visual Studio 2017 sürüm 15.5 ve sonraki sürümlerde kullanılabilir. Bu veri toplayıcıyı yapılandırma örneği için Örnek *.runsettings dosyasına bakın.
Diğer tanılama veri bağdaştırıcıları türünü özelleştirmek için bir test ayarları dosyası kullanın.
Veri toplayıcıyı suçlama
Bu seçenek, test konağı kilitlenmesine neden olan sorunlu bir testi yalıtmanıza yardımcı olabilir. Toplayıcıyı çalıştırmak, TestResults'ta kilitlenmeden önce testin yürütme sırasını yakalayan bir çıkış dosyası (Sequence.xml) oluşturur.
Suçlamayı üç farklı modda çalıştırabilirsiniz:
- Sıralı dosya modu: Askıda kalma testlerinin listesini içeren bir dosya oluşturmak için
- Kilitlenme bilgi dökümü modu: testhost kilitlendiğinde döküm oluşturmak için
- Kilitlenme bilgi dökümü modu: Verilen zaman aşımı öncesinde test tamamlanmadığında döküm oluşturmak için
XML yapılandırması doğrudan düğüme <RunSettings>
yerleştirilmelidir:
<RunSettings>
<RunConfiguration>
</RunConfiguration>
<LoggerRunSettings>
<Loggers>
<Logger friendlyName="blame" enabled="True" />
</Loggers>
</LoggerRunSettings>
<DataCollectionRunSettings>
<DataCollectors>
<!-- Enables blame -->
<DataCollector friendlyName="blame" enabled="True">
<Configuration>
<!-- Enables crash dump, with dump type "Full" or "Mini".
Requires ProcDump in PATH for .NET Framework. -->
<CollectDump DumpType="Full" />
<!-- Enables hang dump or testhost and its child processes
when a test hangs for more than 10 minutes.
Dump type "Full", "Mini" or "None" (just kill the processes). -->
<CollectDumpOnTestSessionHang TestTimeout="10min" HangDumpType="Full" />
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
</RunSettings>
TestRunParameters
<TestRunParameters>
<Parameter name="webAppUrl" value="http://localhost" />
<Parameter name="docsUrl" value="https://learn.microsoft.com" />
</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 (veya NUnit TestContext'i) kullanarak parametrelere erişin:
private string _appUrl;
public TestContext TestContext { get; set; }
[TestMethod] // [Test] for NUnit
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.
LoggerRunSettings öğesi
bölümü, LoggerRunSettings
test çalıştırması için kullanılacak bir veya daha fazla günlükçü tanımlar. En yaygın günlüğe kaydedenler konsol, Visual Studio Test Sonuçları Dosyası (trx) ve html'dir.
<LoggerRunSettings>
<Loggers>
<Logger friendlyName="console" enabled="True">
<Configuration>
<Verbosity>quiet</Verbosity>
</Configuration>
</Logger>
<Logger friendlyName="trx" enabled="True">
<Configuration>
<LogFileName>foo.trx</LogFileName>
</Configuration>
</Logger>
<Logger friendlyName="html" enabled="True">
<Configuration>
<LogFileName>foo.html</LogFileName>
</Configuration>
</Logger>
</Loggers>
</LoggerRunSettings>
MSTest öğesi
Bu ayarlar, özniteliğine sahip test yöntemlerini çalıştıran test bağdaştırıcısına özeldir TestMethodAttribute .
<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>
Yapılandırma | Varsayılan | Değerler |
---|---|---|
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. |
AyarlarDosyası | 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, ForcedLegacyMode değerini de true olarak ayarlamanız gerekir. <ForcedLegacyMode>true</ForcedLegacyMode> |
|
DeploymentEnabled | true | Değeri false olarak ayarlarsanız, test yönteminizde belirttiğiniz dağıtım öğeleri dağıtım dizinine kopyalanmamıştır. |
CaptureTraceOutput | true | Geçerli çalışan testle ilişkilendirilecek , Trace.Write* , Debug.Write* api'sinden Console.Write* gelen kısa mesajları yakalayın. |
EnableBaseClassTestMethodsFromOtherAssemblies | true | Devralan test sınıfından farklı bir derlemedeki temel sınıflardan test yöntemlerinin bulunup bulunmayacağını belirten bir değer. |
ClassCleanupLifecycle | EndOfClass | Sınıf temizleme işleminin derlemenin sonunda gerçekleşmesini istiyorsanız EndOfAssembly olarak ayarlayın. (EndOfClass varsayılan ve yalnızca MSTest v4'ten başlayarak artık desteklenmiyorClassCleanup davranışı) |
MapNotRunnableToFailed | true | Çalıştırılamayan bir sonucun başarısız testle eşlenip eşlenmediğini gösteren değer. |
Paralelleştirme | Paralelleştirme ayarlarını ayarlamak için kullanılır: Çalışanlar: 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. KAPSAM: Paralelleştirmenin kapsamı. Bunu MethodLevel olarak ayarlayabilirsiniz. Varsayılan olarak ClassLevel'dır. <Parallelize><Workers>32</Workers><Scope>MethodLevel</Scope></Parallelize> |
|
TestTimeout | 0 | Belirtilen genel test çalışması zaman aşımını alır. |
TreatDiscoveryWarningsAsErrors | yanlış | Test bulma uyarılarını hata olarak bildirmek için bu değeri true olarak ayarlayın. |
TreatClassAndAssemblyCleanupWarningsAsErrors | yanlış | Sınıf temizlemelerindeki hatalarınızı hata olarak görmek için bu değeri true olarak ayarlayın. |
DeployTestSourceDependencies | true | Test kaynağı başvurularının dağıtılıp dağıtılmayacağını gösteren değer. |
DeleteDeploymentDirectoryAfterTestRunIsComplete | true | Bir test çalıştırmasının ardından dağıtım dizinini korumak için bu değeri false olarak ayarlayın. |
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. |
ConsiderFixturesAsSpecialTests | yanlış | , , , öğesini Visual Studio ve Visual Studio Code'da Test Explorer .trx ve günlükte tek tek girdiler olarak görüntülemek AssemblyInitialize için bu değeri true olarak ayarlayın ClassCleanup ClassInitialize AssemblyCleanup |
AssemblyResolution | yanlış | Birim testlerini bulup çalıştırırken ek derlemelerin yollarını belirtebilirsiniz. Ö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 özelliğin yalnızca .NET Framework hedefi kullanılırken uygulandığını unutmayın. |
Ö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>
<!-- Configurations that affect the Test Framework -->
<RunConfiguration>
<!-- Use 0 for maximum process-level parallelization. This does not force parallelization within the test DLL (on the thread-level). You can also change it from the Test menu; choose "Run tests in parallel". Unchecked = 1 (only 1), checked = 0 (max). -->
<MaxCpuCount>1</MaxCpuCount>
<!-- Path relative to directory that contains .runsettings file-->
<ResultsDirectory>.\TestResults</ResultsDirectory>
<!-- Omit the whole tag for auto-detection. -->
<!-- [x86] or x64, ARM, ARM64, s390x -->
<!-- You can also change it from the Test menu; choose "Processor Architecture for AnyCPU Projects" -->
<TargetPlatform>x86</TargetPlatform>
<!-- Any TargetFramework moniker or omit the whole tag for auto-detection. -->
<!-- net48, [net40], net6.0, net5.0, netcoreapp3.1, uap10.0 etc. -->
<TargetFrameworkVersion>net40</TargetFrameworkVersion>
<!-- Path to Test Adapters -->
<TestAdaptersPaths>%SystemDrive%\Temp\foo;%SystemDrive%\Temp\bar</TestAdaptersPaths>
<!-- TestCaseFilter expression -->
<TestCaseFilter>(TestCategory != Integration) & (TestCategory != UnfinishedFeature)</TestCaseFilter>
<!-- TestSessionTimeout was introduced in Visual Studio 2017 version 15.5 -->
<!-- Specify timeout in milliseconds. A valid value should be greater than 0 -->
<TestSessionTimeout>10000</TestSessionTimeout>
<!-- true or false -->
<!-- Value that specifies the exit code when no tests are discovered -->
<TreatNoTestsAsError>true</TreatNoTestsAsError>
</RunConfiguration>
<!-- Configurations for data collectors -->
<DataCollectionRunSettings>
<DataCollectors>
<DataCollector friendlyName="Code Coverage" uri="datacollector://Microsoft/CodeCoverage/2.0" assemblyQualifiedName="Microsoft.VisualStudio.Coverage.DynamicCoverageDataCollector, Microsoft.VisualStudio.TraceCollector, Version=11.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<Configuration>
<CodeCoverage>
<ModulePaths>
<Exclude>
<ModulePath>.*CPPUnitTestFramework.*</ModulePath>
</Exclude>
</ModulePaths>
<!-- We recommend you do not change the following values: -->
<UseVerifiableInstrumentation>True</UseVerifiableInstrumentation>
<AllowLowIntegrityProcesses>True</AllowLowIntegrityProcesses>
<CollectFromChildProcesses>True</CollectFromChildProcesses>
<CollectAspDotNet>False</CollectAspDotNet>
</CodeCoverage>
</Configuration>
</DataCollector>
<DataCollector uri="datacollector://microsoft/VideoRecorder/1.0" assemblyQualifiedName="Microsoft.VisualStudio.TestTools.DataCollection.VideoRecorder.VideoRecorderDataCollector, Microsoft.VisualStudio.TestTools.DataCollection.VideoRecorder, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" friendlyName="Screen and Voice Recorder">
<!--Video data collector was introduced in Visual Studio 2017 version 15.5 -->
<Configuration>
<!-- Set "sendRecordedMediaForPassedTestCase" to "false" to add video attachments to failed tests only -->
<MediaRecorder sendRecordedMediaForPassedTestCase="true" xmlns="">
<ScreenCaptureVideo bitRate="512" frameRate="2" quality="20" />
</MediaRecorder>
</Configuration>
</DataCollector>
<!-- Configuration for blame data collector -->
<DataCollector friendlyName="blame" enabled="True">
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
<!-- Parameters used by tests at run time -->
<TestRunParameters>
<Parameter name="webAppUrl" value="http://localhost" />
<Parameter name="webAppUserName" value="Admin" />
<Parameter name="webAppPassword" value="Password" />
</TestRunParameters>
<!-- Configuration for loggers -->
<LoggerRunSettings>
<Loggers>
<Logger friendlyName="console" enabled="True">
<Configuration>
<Verbosity>quiet</Verbosity>
</Configuration>
</Logger>
<Logger friendlyName="trx" enabled="True">
<Configuration>
<LogFileName>foo.trx</LogFileName>
</Configuration>
</Logger>
<Logger friendlyName="html" enabled="True">
<Configuration>
<LogFileName>foo.html</LogFileName>
</Configuration>
</Logger>
<Logger friendlyName="blame" enabled="True" />
</Loggers>
</LoggerRunSettings>
<!-- Adapter Specific sections -->
<!-- MSTest adapter -->
<MSTest>
<MapInconclusiveToFailed>True</MapInconclusiveToFailed>
<CaptureTraceOutput>false</CaptureTraceOutput>
<DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>
<DeploymentEnabled>False</DeploymentEnabled>
<AssemblyResolution>
<Directory path="D:\myfolder\bin\" includeSubDirectories="false"/>
</AssemblyResolution>
</MSTest>
</RunSettings>
.runsettings dosyasında ortam değişkenlerini belirtme
Ortam değişkenleri test konağıyla doğrudan etkileşim kurabilen .runsettings dosyasında ayarlanabilir. .runsettings dosyasında ortam değişkenlerini belirtmek, DOTNET_ROOT gibi ortam değişkenlerini ayarlamayı gerektiren özel olmayan projeleri desteklemek için gereklidir. Bu değişkenler test konağı işlemi oluşturulurken ayarlanır ve konakta kullanılabilir.
Örnek
Aşağıdaki kod, ortam değişkenlerini geçiren örnek bir .runsettings dosyasıdır:
<?xml version="1.0" encoding="utf-8"?>
<!-- File name extension must be .runsettings -->
<RunSettings>
<RunConfiguration>
<EnvironmentVariables>
<!-- List of environment variables we want to set-->
<DOTNET_ROOT>C:\ProgramFiles\dotnet</DOTNET_ROOT>
<SDK_PATH>C:\Codebase\Sdk</SDK_PATH>
</EnvironmentVariables>
</RunConfiguration>
</RunSettings>
RunConfiguration düğümü bir EnvironmentVariables düğümü içermelidir. Ortam değişkeni bir öğe adı ve değeri olarak belirtilebilir.
Not
Test konağı başlatıldığında bu ortam değişkenleri her zaman ayarlanacağından, testler her zaman ayrı bir işlemde çalıştırılmalıdır. Bunun için ortam değişkenleri olduğunda test konağı her zaman çağrılacak şekilde /InIsolation bayrağı ayarlanır.