İngilizce dilinde oku

Aracılığıyla paylaş


.runsettings dosyası kullanarak birim testlerini yapılandırma

Birim testlerinin nasıl çalıştırıldığını yapılandırmak için .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ı, IDE'den komut satırından 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 yapılandırma gerekmiyorsa .runsettings dosyası gerekmez.

Çalıştırma ayarları dosyası oluşturma ve özelleştirme

  1. Çözümünüze bir çalıştırma ayarları dosyası ekleyin. çözümünüzün kısayol menüsünde Çözüm Gezgini>Yeni Öğe Ekleseçin ve XML Dosyasıöğesini seçin. dosyayı test.runsettingsgibi bir adla kaydedin.

    Tüm öğe şablonlarını görmüyorsanız, Tüm Şablonları Gösteröğesini ve ardından öğe şablonunu seçin.

    İpucu

    .runsettings uzantısını kullandığınız sürece dosya adı önemli değildir.

  2. Örnek *.runsettings dosyasının içeriğiniekleyin ve ardından izleyen bölümlerde açıklandığı gibi gereksinimlerinize göre özelleştirin.

  3. Aşağıdaki yöntemlerden birini kullanarak istediğiniz *.runsettings dosyasını belirtin:

  4. Özel çalıştırma ayarlarını kullanmak için birim testlerini çalıştırın.

IDE'de özel ayarları açmak veya kapatmak istiyorsanız, Test menüsünde dosyayı seçin veya seçimini kaldırın.

İ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ı dosyasını otomatik olarak algıla

Not

Bu yalnızca .runsettingsadlı 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çenekleri>Test>Otomatik Olarak Algıla runsettings Dosyaları

    Visual Studio'da runsettings dosyasını otomatik olarak algıla seçeneği

  • Test>Çalıştırma Ayarlarını Yapılandır'ı Seç>Çalıştırma Ayar Dosyalarını Otomatik Algıla

    Visual Studio'da runsettings dosyasını otomatik algıla menüsü

Çalıştırma ayarları dosyasını el ile seçin

IDE'de Test>Çalıştırma Ayarlarını Yapılandır'ı seçin>Çözüm Genelinde çalıştırma ayarları 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.

Visual Studio'da çözüm genelindeki test için runsettings dosya menüsünü seçin

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:

XML
<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>Ayarlar DosyaSeçin'i seçin. .runsettings dosyasına gidin ve seçin.

Visual Studio 2019 test ayarları dosya menüsünü seçin

Dosya Test menüsünde görünür ve dosyayı seçebilir veya seçimini kaldırabilirsiniz. Seçili olduğunda, Kod Kapsamını Çözümleseçtiğinizde çalıştırma ayarları dosyası geçerli olur.

Komut satırından bir çalıştırma ayarları dosyası belirtin

Testleri komut satırından çalıştırmak için vstest.console.exekullanın ve /Settings parametresini kullanarak ayarlar dosyasını belirtin.

  1. Visual Studio içinGeliştirici Komut İstemi'ni açın.

  2. Şuna benzer bir komut girin:

    Windows Command Prompt
    vstest.console.exe MyTestAssembly.dll /EnableCodeCoverage /Settings:CodeCoverage.runsettings
    

    veya

    Windows Command Prompt
    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 bir örnek için bkz. Örnek *.runsettings dosyası.

XML
<?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

XML
<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) &amp; (TestCategory != UnfinishedFeature)</TestCaseFilter>
    <TestSessionTimeout>10000</TestSessionTimeout>
    <TreatNoTestsAsError>true</TreatNoTestsAsError>
</RunConfiguration>

RunConfiguration öğesi aşağıdaki öğeleri içerebilir:

Düğüm Varsayılan Değer
MaxCpuCount 1 Seçenek adı büyük/küçük harfe duyarlıdır ve MaxCPUCountolarak kolayca yanlış yazılabilir.

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 1değeridir, yani aynı anda yalnızca bir testhost çalıştırılır. Özel bir değer olan 0, mantıksal işlemci sayınız kadar çok sayıda test sunucusuna izin verir (örneğin, altı fiziksel çekirdeğe sahip ve çok iş parçacıklı olmayan bir bilgisayar için 6 veya altı fiziksel çekirdeğe ve çok iş parçacığına sahip 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.
Sonuç Dizini 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ılamak 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, net48, net472,net6.0, net5.0, netcoreapp3.1, uap10.0 gibi herhangi bir çerçeve adı veya.NETFramework,Version=v4.7.2 veya .NETCoreApp,Version=v6.0.0gibi geçerli tüm çerçeve adlarıdır. Geriye dönük uyumluluk Framework35için , Framework40, Framework45, FrameworkCore10, FrameworkUap10 kabul edilir, yani (sırasıylanet35, net40, net45, netcoreapp1.0 ve uap10.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.

Oluşturulan ikili dosyalardan çerçeve sürümünü otomatik olarak belirlemek için .runsettings dosyasından TargetFrameworkVersion öğesini çıkar.

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ı (Visual Studio'da veya Geliştirici komut satırında vstest.console.exe) için 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ılamak 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.

TestAdaptörHatalarınıUyarıOlarakEleAl yanlış yanlış, doğru
TestAdaptersPaths TestAdapters'ın bulunduğu dizine giden bir veya daha fazla yol
TestCaseFilter <özelliği><işleci><değeri>[|&<Expression>] biçimindeki bir filtre ifadesi. Boolean işleci &, HTML varlığı olarak &şeklinde temsil edilmelidir. İ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.exearamasını atlayarak doğrudan testhost.dllkullanımını zorlar.
TreatNoTestsAsError yanlış doğru veya yanlış
Hiçbir test bulunadığında çıkış kodunu tanımlayan bir Boole değeri belirtin. Değer true ve hiçbir test bulunmazsa 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ılanları kullanmak istemiyorsanız ayarları girmeniz gerekir.

XML
<DataCollectionRunSettings>
  <DataCollectors>
    <!-- data collectors -->
  </DataCollectors>
</DataCollectionRunSettings>

CodeCoverage veri toplayıcısı

Kod kapsamı veri toplayıcısı, test sırasında uygulama kodunun hangi bölümlerinin çalıştırıldığına dair bir kayıt oluşturur. Kod kapsamı ayarlarını özelleştirme hakkında ayrıntılı bilgi için bkz. kod kapsamı çözümlemesini özelleştirme .

XML
<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>

Video Kaydedici 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 bkz. Örnek *.runsettings dosyası.

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 sunucusu kilitlenmesine neden olan sorunlu bir testi yalıtmanıza yardımcı olabilir. Toplayıcıyı çalıştırmak, TestResultsiçinde çökmeden önceki test yürütme sırasını yakalayan bir çıktı dosyası (Sequence.xml) oluşturur.

Suçlamayı üç farklı modda çalıştırabilirsiniz:

  • Sıralı dosya modu: askıya kadar olan testlerin listesini içeren bir dosya oluşturmak için
  • Kilitlenme bilgi dökümü modu: testhost kilitlendiğinde bellek 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 <RunSettings> düğüme yerleştirilmelidir:

XML
<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>

Test Çalıştırma Parametreleri

XML
<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) kullanarak parametrelere erişin:

C#
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 genel TestContext özelliği ekleyin.

LoggerRunSettings öğesi

LoggerRunSettings bölümü, test çalıştırması için kullanılacak bir veya daha fazla kayıt cihazı tanımlar. En yaygın günlüğe kaydedenler konsol, Visual Studio Test Sonuçları Dosyası (trx) ve HTML'dir.

XML
<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, TestMethodAttribute özniteliğine sahip test yöntemlerini çalıştıran test bağdaştırıcısına özeldir.

XML
<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>
Konfigürasyon Varsayılan 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ıştırılma sırası gibi bazı davranışlar, Visual Studio'nun önceki sürümlerinde olduğu gibi 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ıyı kullanmanıza izin vermek için testlerinizi yeniden düzenlemeyi düşünmenizi öneririz.
Ayar Dosyası BURADA MSTest bağdaştırıcısıyla kullanılacak bir test ayarları dosyası belirtebilirsiniz. ayarlar menüsündenbir test ayarları dosyası da belirtebilirsiniz.

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

<ForcedLegacyMode>true</ForcedLegacyMode>
DağıtımEtkin doğru değerini false olarak ayarlarsanız, test yönteminizde belirttiğiniz dağıtım öğeleri dağıtım dizinine kopyalanmamıştır.
CaptureTraceOutput doğru Devam eden testle ilişkilendirilecek Console.Write*, Trace.Write*, Debug.Write* API'den gelen kısa mesajları yakalayın.
EnableBaseClassTestMethodsFromOtherAssemblies doğru Farklı bir derlemedeki temel sınıflardan, devralan test sınıfının aksine, test yöntemlerinin keşfedilebilir olup olmadığını belirten bir değer.
SınıfTemizlemeYaşamDöngüsü EndOfClass Sınıf temizleme işleminin derlemenin sonunda gerçekleşmesini istiyorsanız, EndOfAssemblyolarak ayarlayın. (EndOfClass varsayılan ve yalnızca ClassCleanup davranışı olduğundan MSTest v4'ten itibaren artık desteklenmez)
ÇalıştırılamayanıBaşarısızOlarakHaritala doğru Çalıştırılamayan bir sonucun başarısız testle eşlenip eşlenmediğini gösteren değer.
Paralel işleme Paralelleştirme ayarlarını ayarlamak için kullanılır:

İşçiler: Paralelleştirme için kullanılacak iş parçacığı/işçi sayısıdır ve bu sayı, varsayılan olarak, geçerli makinedeki işlemci sayısıkadar olur.

SCOPE: Paralelleştirmenin kapsamı. MethodLevelolarak ayarlayabilirsiniz. Varsayılan olarak, Sınıf Seviyesi'dir.

<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.
Sınıf ve Montaj Temizleme Uyarılarını Hatalar Olarak Ele Al yanlış Sınıf temizlemelerindeki hatalarınızı hata olarak görmek için bu değeri true olarak ayarlayın.
DeployTestSourceDependencies doğru Test kaynağı başvurularının dağıtılıp dağıtılmayacağını gösteren değer.
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.
Sonuçsuzluğu Başarısızlığa Haritalandır yanlış Test, tamamlanmamış 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.
ArmatürleriÖzelTestlerOlarakDeğerlendirin yanlış AssemblyInitialize, AssemblyCleanup, ClassInitializeve ClassCleanup'ü Visual Studio ve Visual Studio Code Test Explorer ve .trx günlüğünde ayrı girişler olarak göstermek için bu değeri "doğru" olarak ayarlayın.
MeclisKararı 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 bir 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
<?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) &amp; (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_ROOTgibi 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 bir örnek .runsettings dosyasıdır:

XML
<?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 /InIsolation bayrağı ayarlanır, böylece test konağı her zaman çağrılır.