Megosztás a következőn keresztül:


Egységtesztek konfigurálása .runsettings fájl használatával

Egy .runsettings fájl használható az egységtesztek futtatásának konfigurálásához. Például módosíthatja a teszteket futtató .NET-verziót, a teszteredmények könyvtárát vagy a tesztfuttatás során gyűjtött adatokat. A .runsettings fájlok egyik gyakori használati módja a kódlefedettségi elemzéstestreszabása.

A Runsettings-fájlok olyan tesztek konfigurálására használhatók, amelyek a parancssorból, az IDE-ből vagy egy összeállítási munkafolyamatban futnak az Azure Test Plans vagy az Azure DevOps Server (korábbi nevén Team Foundation Server (TFS) használatával.

A Runsettings-fájlok megadása nem kötelező. Ha nincs szükség speciális konfigurációra, nincs szükség .runsettings fájlra.

Futtatási beállításfájl létrehozása és testreszabása

  1. Adjon hozzá egy futtatási beállításfájlt a megoldáshoz. A Megoldáskezelőablakban, a megoldás helyi menüjében válassza a Hozzáadás>Új elemlehetőséget, majd válassza a XML-fájllehetőséget. Mentse a fájlt olyan névvel, mint a test.runsettings.

    Ha nem látja az összes elemsablont, válassza Az összes sablon megjelenítéselehetőséget, majd válassza ki az elemsablont.

    Jótanács

    A fájlnév nem számít, amíg a .runsettings bővítményt használja.

  2. Adja hozzá *.runsettings példafájl tartalmát, majd szabja testre az igényeinek megfelelően az alábbi szakaszokban leírtak szerint.

  3. Adja meg a *.runsettings fájlt, amelyet az alábbi módszerek egyikével szeretne használni:

  4. Futtassa az egységteszteket, hogy használhassa az egyéni futtatási beállításokat.

Ha ki és be szeretné kapcsolni az egyéni beállításokat az IDE-ben, törölje vagy jelölje ki a fájlt a Tesztelés menüben.

Jótanács

A megoldásban több .runsettings fájlt is létrehozhat, és szükség szerint kiválaszthat egyet aktív tesztbeállítás-fájlként.

Futtatási beállítások fájljának megadása az IDE-ben

Az elérhető módszerek a Visual Studio verziójától függenek.

Visual Studio 2019 16.4-es és újabb verzió

A Visual Studio 2019 16.4-es és újabb verziójában háromféleképpen adhat meg futtatási beállításokat.

A futtatási beállítások fájljának automatikus észlelése

Jegyzet

Ez csak egy .runsettingsnevű fájl esetében működik.

A futtatási beállítások fájljának automatikus felismeréséhez helyezze a projekt gyökerébe.

Ha a futtatási beállítások fájljainak automatikus észlelése engedélyezve van, a fájlban lévő beállítások minden teszten érvényesek lesznek. A runsettings-fájlok automatikus észlelését két módszerrel kapcsolhatja be:

  • Nyissa meg az Eszközök>beállításai panelt, bontsa ki az Összes beállítás>tesztelése szakaszt, és válassza az Automatikus észlelés runsettings fájlok lehetőséget:

    Képernyőkép a runsettings fájl automatikus felismerési opciójáról a Visual Studióban.

  • Nyissa meg az Eszközök>beállításai párbeszédpanelt, bontsa ki azÁltalános> szakaszt, és válassza az Automatikus észlelés runsettings Files lehetőséget:

    Runsettings fájl opció automatikus észlelése a Visual Studio-ban

  • Válassza Teszt>Futtatási beállítások konfigurálása>Runsettings-fájlok automatikus észlelése

    A runsettings fájlmenü automatikus észlelése a Visual Studioban

A futtatási beállítások fájljának manuális kiválasztása

Az IDE-ben válassza a Teszt>Futtatási beállítások konfigurálása>Megoldás szintű futtatási beállítások fájljának kiválasztásalehetőséget, majd válassza ki a .runsettings fájlt.

  • Ez a fájl felülbírálja a .runsettings fájlt a megoldás gyökerénél, ha van ilyen, és minden teszten alkalmazva van.
  • Ez a fájlkijelölés csak helyileg marad meg.

Válassza ki a visual studioban a megoldásszintű runsettings fájl menüjét

Állíts be egy készítési tulajdonságot

Buildtulajdonság hozzáadása egy projekthez a projektfájlon vagy a Directory.Build.props fájlon keresztül. A projekt futtatási beállítási fájlját a RunSettingsFilePath tulajdonság határozza meg.

  • A projektszintű futtatási beállítások jelenleg c#, VB, C++ és F# projektekben támogatottak.
  • A projekthez megadott fájl felülírja a megoldásban megadott többi futtatási beállításfájlt.
  • Ezek az MSBuild tulajdonságok használhatók a runsettings fájl elérési útjának megadásához.

Példa egy projekt .runsettings fájljának megadására:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <RunSettingsFilePath>$(MSBuildProjectDirectory)\example.runsettings</RunSettingsFilePath>
  </PropertyGroup>
  ...
</Project>

A Visual Studio 2019 16.3-s és korábbi verziója

Ha meg szeretne adni egy futtatási beállításokat tartalmazó fájlt az IDE-ben, válassza a Tesztelés>Beállítások fájl kiválasztásalehetőséget. Keresse meg és válassza ki a .runsettings fájlt.

Tesztbeállítások fájlmenüjének kiválasztása a Visual Studio 2019

A fájl megjelenik a Teszt menüben, és kiválaszthatja vagy megszüntetheti a kijelölést. A beállítás kiválasztásakor a futtatási beállítások fájlja akkor érvényes, amikor a A kódlefedettség elemzéselehetőséget választja.

Futtatási beállítások fájljának megadása a parancssorból

Ha a parancssorból szeretne teszteket futtatni, használja a vstest.console.exe, és adja meg a beállításfájlt a /Beállítások paraméterrel.

  1. Nyissa meg a Visual Studio fejlesztői parancssorát .

  2. Adjon meg egy, a következőhöz hasonló parancsot:

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

    vagy

    vstest.console.exe --settings:test.runsettings test.dll
    

További információ: VSTest.Console.exe parancssori beállítások.

A *.runsettings fájl

A *.runsettings fájl egy XML-fájl, amely különböző konfigurációs elemeket tartalmaz a RunSettings elemen belül. Az alábbi szakaszok részletesen ismertetik a különböző elemeket. A teljes minta megtekintéséhez lásd a példát: *.runsettings fájl.

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <!-- configuration elements -->
</RunSettings>

Az egyes konfigurációs elemek megadása nem kötelező, mert alapértelmezett értékkel rendelkezik.

RunConfiguration elem (futtatási konfiguráció)

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

A RunConfiguration elem a következő elemeket tartalmazhatja:

Node Alapértelmezett Értékrend
MaxCpuCount 1 A beállítás neve kis- és nagybetű érzékeny, és könnyen elírható MaxCPUCount-ként.

Ez a beállítás szabályozza a párhuzamosság szintjét folyamatszinten. Használja a 0-t a maximális folyamatszintű párhuzamosság engedélyezéséhez.

Ez a beállítás határozza meg a tesztelési DLL-ek vagy más, párhuzamosan futtatható teszttárolók maximális számát. Minden DLL a saját testhost-folyamatában fut, és a folyamat szintjén elkülönítve van a többi teszt DLL-ben végzett tesztektől. Ez a beállítás nem kényszeríti az egyes tesztelési DLL-ekben lévő tesztek párhuzamos futtatását. A DLL-en belüli párhuzamos végrehajtás szabályozása (a szál szintjén) a tesztelési keretrendszeren, például az MSTesten, az XUniton vagy az NUniton múlik.

Az alapértelmezett érték 1, ami azt jelenti, hogy egyszerre csak egy testhost fut. Egy speciális érték, a 0 lehetővé teszi, hogy annyi teszthosztot használjon, amennyi logikai processzor van (például 6, egy számítógép hat fizikai maggal többszálas feldolgozás nélkül, vagy 12, egy számítógép hat fizikai maggal többszálas feldolgozással).

A futtatás különböző DLL-jeinek száma határozza meg az elindított testhostsok tényleges számát.
Eredménykönyvtár A könyvtár, ahol a teszteredmények elhelyezve vannak. Az elérési út a .runsettings fájlt tartalmazó könyvtárhoz képest relatív.
TargetFrameworkVersion net40 vagy netcoreapp1.0 Hagyja ki ezt a teljes címkét az automatikus észleléshez.

Ez a beállítás határozza meg a keretrendszer verzióját vagy a keretrendszercsaládot a tesztek futtatásához.

Az elfogadott értékek bármely keretrendszer-moniker, például net48, net472,net6.0, net5.0, netcoreapp3.1, uap10.0 vagy bármely érvényes teljes keretrendszernév , például.NETFramework,Version=v4.7.2 vagy .NETCoreApp,Version=v6.0.0. A visszamenőleges kompatibilitási Framework35, Framework40, Framework45, FrameworkCore10, FrameworkUap10 elfogadottak, azaz (net35, net40, net45, netcoreapp1.0 és uap10.0). Minden érték kis- és nagybetűkre érzéketlen.

A megadott érték a használni kívánt tesztkörnyezet-szolgáltató meghatározására szolgál. Minden tesztkörnyezet-szolgáltatónak tiszteletben kell tartania a használni kívánt keretrendszercsaládot, de előfordulhat, hogy nem tartja tiszteletben a keretrendszer pontos verzióját:

A .NET-keretrendszer 4.5.1 – 4.8-as verziójához a megadott pontos verziójú testhostot használjuk. Az adott tartományon kívüli értékek esetében a .NET-keretrendszer 4.5.1 testhost-ját használja a rendszer.

A .NET esetében a tesztprojekt <TargetFramework> (pontosabban runtimeconfig.json) határozza meg a tényleges verziót.

UWP esetén a tesztprojekt-alkalmazás önmagában egy testhost, és meghatározza a használt UWP tényleges verzióját.

Hagyja ki a TargetFrameworkVersion elemet a .runsettings fájlból, hogy automatikusan meghatározza a keretrendszer verzióját a beépített bináris fájlokból.

Az automatikus észleléskor az összes cél-keretrendszer egyetlen közös keretrendszerbe lesz egységesítve. Ha egy másik verziót talál ugyanabból a célkeretcsaládból, a rendszer az újabb verziót választja ki (például net452, net472, net48 = net48).

A .NET-keretrendszer futtatói esetében (akár a Visual Studióban vstest.console.exe, akár a fejlesztői parancssorban) a közös célkeretrendszer a net40. A .NET-futók (dotnet-teszt + DLL-ek) esetében a közös cél keretrendszer netcoreapp1.0-ra van állítva.
TargetPlatform x86 Hagyja ki ezt a teljes címkét az automatikus észleléshez.

Ez a beállítás határozza meg a tesztek futtatásához használandó architektúrát. A lehetséges értékek a következők: x86, x64, ARM, ARM64, S390x.

Automatikus észlelés esetén az AnyCPU DLL-ek architektúrája a futótól függően eltérhet. A .NET-keretrendszer futója esetén (a Visual Studióban vagy a fejlesztői parancssorban vstest.console.exe) az alapértelmezett x86. A .NET-futó (dotnet-teszt) esetében az alapértelmezett az aktuális folyamatarchitektúra.

A Tesztadapter Hibákat Figyelmeztetésként Kezelni téves hamis, igaz
TestAdaptersPaths Egy vagy több elérési út ahhoz a könyvtárhoz, ahol a TestAdapters található
TestCaseFilter Szűrőkifejezés <tulajdonság><operátor><érték>[|&<Kifejezés>]. A logikai operátornak & a HTML-entitás &kell, hogy képviselje. A kifejezések zárójelben is csatolhatók. A kifejezésszerkezet részletes szintaxisát a vstest/docs/filter.mdcímű témakörben találja.
TestSessionTimeout Lehetővé teszi, hogy a felhasználók megszakítsa a tesztmunkamenetet, ha az túllépi az ezredmásodpercben megadott időtúllépést. Az időtúllépés beállítása biztosítja, hogy az erőforrások hatékonyan legyenek felhasználva, és a tesztelési folyamatok meghatározott időre legyenek korlátozva. A beállítás Visual Studio 2017 15.5-ös-es és újabb verziójában érhető el.
DotnetHostPath Adjon meg egy egyéni elérési utat a dotnet hosthoz, amelyet a testhost futtatásához használnak. Ez akkor hasznos, ha saját dotnetet hoz létre, például a dotnet/runtime adattár létrehozásakor. Ennek a beállításnak a megadása kihagyja a testhost.exekeresését, és kötelezővé teszi a testhost.dllhasználatát.
NeKezeldTeszteketHibaként téves igaz vagy hamis
Adjon meg egy logikai értéket, amely meghatározza a kilépési kódot, ha nem talál teszteket. Ha az érték true, és nem találhatók tesztek, egy nem nulla kilépési kódot ad vissza. Ellenkező esetben a függvény nulla értéket ad vissza.

DataCollectors elem (diagnosztikai adatadapterek)

A DataCollectors elem a diagnosztikai adatadapterek beállításait határozza meg. A diagnosztikai adatadapterek további információkat gyűjtenek a környezetről és a vizsgált alkalmazásról. Minden adapter alapértelmezett beállításokkal rendelkezik, és csak akkor kell megadnia a beállításokat, ha nem szeretné használni az alapértelmezett beállításokat.

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

CodeCoverage adatgyűjtő

A kódlefedettségi adatgyűjtő létrehoz egy naplót, amelyből az alkalmazáskód mely részeit gyakorolták a tesztben. A kódlefedettség beállításainak testreszabásával kapcsolatos részletes információkért lásd A kódlefedettség-elemzés testreszabásacímű témakört.

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

VideoRecorder-adatgyűjtő

A videoadatgyűjtő képernyőfelvételt rögzít a tesztek futtatásakor. Ez a felvétel a felhasználói felületi tesztek hibaelhárításához hasznos. A videoadatgyűjtő Visual Studio 2017 15.5-ös és újabb verziójában érhető el. Az adatgyűjtő konfigurálására példa: *.runsettings példafájl.

Bármely más típusú diagnosztikai adatadapter testreszabásához használja a tesztbeállítások fájlt.

Adatgyűjtő hibáztatás

Ez a beállítás segíthet elkülöníteni a tesztgazda összeomlását okozó problémás teszteket. A gyűjtő futtatása létrehoz egy kimeneti fájlt (Sequence.xml) TestResults, amely rögzíti a teszt végrehajtásának sorrendjét az összeomlás előtt.

A hibáztatás három különböző módban futtatható:

  • Szekvencia fájl mód: fájl létrehozása, amely a tesztek listáját tartalmazza a megakadásig
  • Összeomlási memóriakép mód: memóriakép létrehozása a teszthoszt összeomlása esetén
  • Hibatámasztásos memóriakép mód: memóriakép létrehozása, ha a teszt nem fejeződik be a megadott időkorláton belül.

Az XML-konfigurációt közvetlenül <RunSettings> csomópontba kell helyezni:

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

A tesztfuttatási paraméterek lehetővé teszik a futtatáskor elérhető változók és értékek definiálásának módját. A paraméterek elérése az MSTest TestContext.Properties tulajdonság (vagy az NUnit TestContext) használatával:

public TestContext TestContext { get; set; }

[TestMethod] // [Test] for NUnit
public void HomePageTest()
{
    string appUrl = TestContext.Properties["webAppUrl"];
}

Tesztfuttatási paraméterek használatához adjon hozzá egy nyilvános TestContext tulajdonságot a tesztosztályhoz.

LoggerRunSettings elem

A LoggerRunSettings szakasz a tesztfuttatáshoz használandó egy vagy több naplózót határoz meg. A leggyakoribb naplózók a konzol, a Visual Studio Test Results File (trx) és a html.

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

Ezek a beállítások az TestMethodAttribute attribútummal rendelkező tesztadapterre vonatkoznak.

<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>
Konfiguráció Alapértelmezett Értékrend
KényszerítettHagyományosMód téves A Visual Studio régebbi verzióiban az MSTest-adaptert úgy optimalizálták, hogy gyorsabb és skálázhatóbb legyen. Előfordulhat, hogy bizonyos viselkedések, például a tesztek futtatásának sorrendje nem pontosan olyan, mint a Visual Studio korábbi kiadásaiban. Állítsa be az értéket true a régebbi tesztadapter használatához.

Ezt a beállítást például akkor használhatja, ha app.config fájl van megadva egy egységteszthez.

Javasoljuk, hogy fontolja meg a tesztek újrabontását, hogy lehetővé tegye az újabb adapter használatát.
BeállításokFájl Itt adhatja meg az MSTest-adapterrel használni kívánt tesztbeállításokat. A beállítások menüjében tesztbeállítások fájlt is megadhat.

Ha megadja ezt az értéket, a ForcedLegacyMode értékét is igazállapotba kell állítania.

<ForcedLegacyMode>true</ForcedLegacyMode>
TelepítésEngedélyezve igaz Ha az értéket hamisállítja be, a tesztmetódusban megadott üzembehelyezési elemek nem lesznek átmásolva az üzembehelyezési könyvtárba.
CaptureTraceOutput igaz Rögzítse Console.Write*, Trace.Write*, Debug.Write* api-ból érkező szöveges üzeneteket, amelyek az aktuális futó teszthez lesznek társítva.
Alaposztály tesztmetódusainak engedélyezése más összeállításokból igaz Egy érték, amely azt jelzi, hogy engedélyezi-e a vizsgálati módszerek felderítését az öröklő tesztosztálytól eltérő szerelvény alaposztályaiból.
OsztályTisztításÉlettartam EndOfClass Ha azt szeretné, hogy az osztály takarítása a szerelvény végén történjen, állítsa be az EndOfAssembly értéket. (Az MSTest 4-es verziótól kezdve már nem támogatott, mivel az EndOfClass az alapértelmezett, és csak ClassCleanup viselkedés)
MapNemFuttathatóbólHibásra igaz Egy érték, amely azt jelzi, hogy egy nem futtatható eredmény megfeleltethető-e a sikertelen tesztnek.
párhuzamosítani A párhuzamosítási beállítások megadására szolgál:

Feldolgozók: A párhuzamosításhoz használandó szálak/feldolgozók száma, amely alapértelmezés szerint az aktuális gép processzorainak száma.

SCOPE: A párhuzamosítás hatóköre. Beállíthatja a MethodLevel-t. Alapértelmezés szerint ez ClassLevel.

<Parallelize><Workers>32</Workers><Scope>MethodLevel</Scope></Parallelize>
TestTimeout 0 A megadott globális teszteset időtúllépésének lekérdezése.
Felfedezési figyelmeztetések hibaként kezelése téves Ha hibaként szeretné jelenteni a tesztfelderítési figyelmeztetéseket, állítsa ezt az értéket igaz.
Osztály- és Összeszerelési Takarsítási Figyelmeztetések Hibaként Kezelése téves Ha szeretné hibaként látni az osztály takarítás során felmerült kudarcokat, állítsa be ezt az értéket igaz.
DeployTestSourceDependencies igaz Egy érték, amely jelzi, hogy a tesztforrás hivatkozásait üzembe kell-e helyezni.
Törölje a telepítési könyvtárat a tesztfutás befejezése után igaz Ha egy teszt futtatása után meg szeretné őrizni az üzembehelyezési könyvtárat, állítsa be ezt az értéket hamis.
TérképEredménytelenSikertelenre téves Ha egy teszt nem meggyőző állapottal fejeződik be, az Test Explorerkihagyott állapotára van leképezve. Ha azt szeretné, hogy a nem meggyőző tesztek sikertelenként jelenjenek meg, állítsa az értéket igaz értékre.
Tekintse a szerelvényeket speciális teszteknek téves Ha a AssemblyInitialize, AssemblyCleanup, ClassInitialize, ClassCleanup egyéni bejegyzésként jelenjenek meg a Visual Studio és a Visual Studio Code Test Explorer és .trx naplójában, állítsa az értéket igazra.
Közgyűlési Határozat téves Az egységtesztek keresésekor és futtatásakor megadhatja a további szerelvények elérési útját. Ezeket az elérési utakat használhatja például olyan függőségi szerelvényekhez, amelyek nem ugyanabban a könyvtárban találhatók, mint a tesztszerelvény. Elérési út megadásához használjon Könyvtár elérési út elemet. Az elérési utak környezeti változókat is tartalmazhatnak.

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

Vegye figyelembe, hogy ez a funkció csak .NET-keretrendszer-cél használatakor van alkalmazva.

Példa .runsettings fájlra

Az alábbi XML egy tipikus .runsettings fájl tartalmát mutatja. Másolja ki ezt a kódot, és szerkessze az igényeinek megfelelően.

A fájl minden eleme nem kötelező, mert alapértelmezett értékkel rendelkezik.

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

Környezeti változók megadása a .runsettings fájlban

A környezeti változók a .runsettings fájlban állíthatók be, amelyek közvetlenül kapcsolatba léphetnek a teszt gazdagéppel. Az .runsettings fájlban környezeti változók megadására van szükség az olyan nemtriviális projektek támogatásához, amelyekhez környezeti változók , például DOTNET_ROOTbeállítása szükséges. Ezek a változók a tesztgazdafolyamat indítása során vannak beállítva, és elérhetők a gazdagépben.

Példa

Az alábbi kód egy minta .runsettings fájl, amely a környezeti változókat továbbítja:

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

A RunConfiguration csomópontnak tartalmaznia kell egy EnvironmentVariables csomópontot. A környezeti változók elemnévként és értékként is megadhatóak.

Jegyzet

Mivel ezeket a környezeti változókat mindig be kell állítani a tesztgazda indításakor, a teszteknek mindig külön folyamatban kell futniuk. Ehhez a /InIsolation jelölő akkor lesz beállítva, amikor vannak környezeti változók, így a rendszer mindig meghívja a tesztkörnyezetet.