Konfigurera enhetstester med hjälp av en .runsettings--fil
En .runsettings-fil kan användas för att konfigurera hur enhetstester körs. Den kan till exempel användas för att ändra den .NET-version som testerna körs på, katalogen för testresultaten eller de data som samlas in under en testkörning. En vanlig användning av en .runsettings--fil är att anpassa kodtäckningsanalys.
Runsettings-filer kan användas för att konfigurera tester som körs från kommandoraden, från IDE eller i ett byggarbetsflöde med hjälp av Azure Test Plans eller Azure DevOps Server (tidigare kallat Team Foundation Server (TFS)).
Runsettings-filer är valfria. Om du inte behöver någon särskild konfiguration behöver du inte en .runsettings-fil.
Skapa en körningsinställningsfil och anpassa den
Lägg till en körinställningsfil i din lösning. I Solution Explorergår du till snabbmenyn i lösningen och väljer Lägg till>Nytt objektoch väljer XML-fil. Spara filen med ett namn som test.runsettings.
Om du inte ser alla objektmallar väljer du Visa alla mallaroch väljer sedan objektmallen.
Tips
Filnamnet spelar ingen roll, så länge du använder tillägget .runsettings.
Lägg till innehållet från filen Exempel *.runsettingsoch anpassa det efter dina behov enligt beskrivningen i avsnitten nedan.
Ange filen *.runsettings som du vill använda med någon av följande metoder:
- Visual Studio IDE
- kommandoraden
- Skapa arbetsflöde med hjälp av Azure Test Plans eller Azure DevOps Server (kallades tidigare Team Foundation Server (TFS)).
Kör enhetstesterna för att använda inställningarna för anpassad körning.
Om du vill inaktivera och aktivera anpassade inställningar i IDE avmarkerar eller väljer du filen på menyn Test.
Tips
Du kan skapa fler än en .runsettings fil i din lösning och välja en som aktiv testinställningsfil efter behov.
Ange en körningsinställningsfil i IDE
Vilka metoder som är tillgängliga beror på din version av Visual Studio.
Visual Studio 2019 version 16.4 och senare
Det finns tre sätt att ange en körningsinställningsfil i Visual Studio 2019 version 16.4 och senare.
- Identifiera körningsinställningarna automatiskt
- Ange körningsinställningarna manuellt
- Ange en kompileregenskap
Identifiera filen med körinställningar automatiskt
Notera
Detta fungerar bara för en fil med namnet .runsettings
.
Om du vill identifiera körningsinställningsfilen automatiskt placerar du den i roten av din lösning.
Om automatisk identifiering av körningsinställningar är aktiverat tillämpas inställningarna i den här filen i alla tester. Du kan aktivera automatisk identifiering av runsettings-filer med hjälp av två metoder:
Välj Verktyg>Alternativ>Testa>Automatisk identifiering körinställningsfiler
Välj Test>Konfigurera körningsinställningar>Automatiskt identifiera runsettings-filer
Välj filen för körningsinställningar manuellt
I IDE:n väljer du Test>Konfigurera köinställningar>Välj lösningsövergripande .runsettings-filoch väljer sedan filen .runsettings.
- Den här filen åsidosätter .runsettings-filen i lösningens rot, om en finns, och används för alla testkörningar.
- Det här filvalet bevaras endast lokalt.
Ange en byggegenskap
Lägg till en byggegenskap i ett projekt via antingen projektfilen eller en Directory.Build.props-fil. Körningsinställningsfilen för ett projekt anges av egenskapen RunSettingsFilePath.
- Körningsinställningar på projektnivå stöds för närvarande i C#-, VB-, C++- och F#-projekt.
- En fil som har angetts för ett projekt åsidosätter alla andra körningsinställningar som anges i lösningen.
- Dessa MSBuild-egenskaper kan användas för att ange sökvägen till filen runsettings.
Exempel på hur du anger en .runsettings-fil för ett projekt:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<RunSettingsFilePath>$(MSBuildProjectDirectory)\example.runsettings</RunSettingsFilePath>
</PropertyGroup>
...
</Project>
Visual Studio 2019 version 16.3 och tidigare
Om du vill ange en körningsinställningsfil i IDE väljer du Testa>Välj inställningsfil. Bläddra till och välj filen .runsettings.
Filen visas på testmenyn och du kan välja eller avmarkera den. Så länge den är vald tillämpas körinställningsfilen varje gång du väljer Analysera kodtäckning.
Ange en körningsinställningsfil från kommandoraden
Om du vill köra tester från kommandoraden använder du vstest.console.exeoch anger inställningsfilen med hjälp av parametern /Settings.
Ange ett kommando som liknar:
vstest.console.exe MyTestAssembly.dll /EnableCodeCoverage /Settings:CodeCoverage.runsettings
eller
vstest.console.exe --settings:test.runsettings test.dll
Mer information finns i VSTest.Console.exe kommandoradsalternativ.
Filen *.runsettings
Filen *.runsettings är en XML-fil som innehåller olika konfigurationselement i RunSettings--elementet. Avsnitten som följer beskriver de olika elementen. Ett fullständigt exempel finns i exempelfilen *.runsettings.
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- configuration elements -->
</RunSettings>
Vart och ett av konfigurationselementen är valfritt eftersom det har ett standardvärde.
Körningskonfigurationselement
<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>
Elementet RunConfiguration kan innehålla följande element:
Nod | Standardinställning | Värden |
---|---|---|
MaxCpuCount | 1 |
Alternativnamnet är skiftlägeskänsligt och är lätt att felstava som MaxCPUCount. Den här inställningen styr parallellitetsnivån på processnivå. Använd 0 för att aktivera den maximala parallelliteten på processnivå. Den här inställningen avgör det maximala antalet test-DLL:er eller andra testcontainrar som kan köras parallellt. Varje DLL körs i sin egen testhost-process och är isolerad på processnivå från testerna i andra test-DLL:er. Den här inställningen tvingar inte tester i varje test-DLL att köras parallellt. Kontroll av parallell körning i en DLL (på trådnivå) är upp till testramverket, till exempel MSTest, XUnit eller NUnit. Standardvärdet är 1 , vilket innebär att endast en testhost körs samtidigt. Ett särskilt värde 0 tillåter så många testvärdar som du har logiska processorer (till exempel 6 för en dator med 6 fysiska kärnor utan multitrådning, eller 12, för en dator med sex fysiska kärnor med flera trådar).Antalet distinkta DLL:er i körningen avgör det faktiska antalet testvärdar som startats. |
Resultatkatalog | Katalogen där testresultat placeras. Sökvägen är relativ till katalogen som innehåller .runsettings-filen. | |
TargetFrameworkVersion | net40 eller netcoreapp1.0 |
Utelämna hela taggen för automatisk identifiering. Den här inställningen definierar den ramverksversion eller ramverksfamilj som ska användas för att köra tester. Godkända värden är alla ramverksmoniker, till exempel net48 , net472 ,net6.0 , net5.0 , netcoreapp3.1 , uap10.0 eller giltiga fullständiga ramverksnamn som.NETFramework,Version=v4.7.2 eller .NETCoreApp,Version=v6.0.0 . För bakåtkompatibilitet accepteras Framework35 , Framework40 , Framework45 , FrameworkCore10 , FrameworkUap10 , vilket betyder (net35 , net40 , net45 , netcoreapp1.0 respektive uap10.0 ). Alla värden är skiftlägesokänsliga.Det angivna värdet används för att fastställa vilken leverantör av testkörning som ska användas. Varje testkörningsprovider måste respektera ramverksfamiljen som ska användas, men kanske inte respekterar den exakta ramverksversionen: För .NET Framework 4.5.1– 4.8 används en testhost som har skapats med den angivna exakta versionen. För värden utanför det intervallet används .NET Framework 4.5.1 testhost. För .NET avgör testprojektets <TargetFramework> (eller mer exakt runtimeconfig.json ) den faktiska versionen.För UWP är testprojektprogrammet ett testhost självt och avgör den faktiska versionen av UWP som används. Utelämna TargetFrameworkVersion -elementet från .runsettings-filen för att automatiskt fastställa ramverksversionen från de skapade binärfilerna.När autodetektering används slås alla målramverk samman till ett gemensamt ramverk. När en annan version än samma målramverksfamilj hittas väljs den nyare versionen (till exempel net452, net472, net48 = net48). För .NET Framework-löpare (i Visual Studio eller vstest.console.exe på kommandoraden Developer) är det gemensamma målramverket net40. För .NET-löpare (dotnet-test + DLL:er) är det gemensamma målramverket inställt på netcoreapp1.0. |
Målplattform | x86 |
Utelämna hela taggen för automatisk identifiering. Den här inställningen definierar arkitekturen som ska användas för att köra tester. Möjliga värden är x86 , x64 , ARM , ARM64 , S390x .Vid automatisk upptäckt kan arkitekturen för AnyCPU-DLL:er skilja sig åt baserat på löparen. För .NET Framework-löpare (i Visual Studio eller vstest.console.exe på kommandoraden Developer) är standardvärdet x86. För .NET-löpare (dotnet-test) är standardvärdet den aktuella processarkitekturen. |
TreatTestAdapterErrorsAsWarnings | falsk | falsk, sann |
TestAdaptersPaths | En eller flera sökvägar till katalogen där TestAdapters finns | |
TestCaseFilter | Ett filteruttryck i formatet <egenskap><operatorn><värdet>[|&<Expression>]. Den booleska operatorn & ska representeras av HTML-entiteten &. Uttryck kan omges av parenteser. Detaljerad syntax för uttrycksstruktur finns i vstest/docs/filter.md. | |
TestSessionTimeout | Tillåter användare att avsluta en testsession när den överskrider en viss tidsgräns som anges i millisekunder. Om du anger en tidsgräns ser du till att resurserna används väl och att testsessionerna begränsas till en angiven tid. Inställningen är tillgänglig i Visual Studio 2017 version 15.5 och senare. | |
DotnetHostPath | Ange en anpassad sökväg till dotnet-host som används för att köra testhost. Det är användbart när du skapar ett eget dotnet, till exempel när du skapar dotnet/runtime-lagringsplatsen. Om du anger det här alternativet hoppar du över att leta efter testhost.exeoch tvingar användningen av testhost.dll. | |
TreatNoTestsAsError | falsk | sant eller falskt Ange ett booleskt värde som definierar slutkoden när inga tester identifieras. Om värdet är true och inga tester identifieras returneras en ickezero-slutkod. Annars returneras noll. |
DataCollectors-element (diagnostikdataadaptrar)
Elementet DataCollectors specificerar inställningar för diagnostikdatainsamlare. Diagnostikdatakort samlar in ytterligare information om miljön och programmet som testas. Varje adapter har standardinställningar och du behöver bara ange egna inställningar om du inte vill använda dem.
<DataCollectionRunSettings>
<DataCollectors>
<!-- data collectors -->
</DataCollectors>
</DataCollectionRunSettings>
CodeCoverage-datainsamlare
Datainsamlaren för kodtäckning skapar en logg över vilka delar av programkoden som har tränats i testet. Detaljerad information om hur du anpassar inställningarna för kodtäckning finns i Anpassa kodtäckningsanalys.
<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-datainsamlare
Videodatainsamlaren samlar in en skärminspelning när tester körs. Den här inspelningen är användbar för felsökning av användargränssnittstester. Videodatainsamlaren är tillgänglig i Visual Studio 2017 version 15.5 och senare. Ett exempel på hur du konfigurerar den här datainsamlaren finns i filen Exempel *.runsettings.
Om du vill anpassa andra typer av diagnostikdataadaptrar, använder du en testinställningsfil .
Skyll på datainsamlare
Det här alternativet kan hjälpa dig att isolera ett problematiskt test som orsakar en testvärdkrasch. När du kör insamlaren skapas en utdatafil (Sequence.xml) i TestResults, vilken registrerar körningsordningen för testet före kraschen.
Du kan skylla på tre olika lägen:
- Sekvensfilsläge: för att skapa en fil med listan över tester fram till hängning
- Kraschdumpningsläge: för att skapa en dump när testhost kraschar
- Hängningslägesdump: för att skapa en dump om testet inte slutförs före den angivna tidsfristen
XML-konfigurationen ska placeras direkt i <RunSettings>
nod:
<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://zcusa.951200.xyz" />
</TestRunParameters>
Testkörningsparametrar är ett sätt att definiera variabler och värden som är tillgängliga för testerna vid körtid. Få åtkomst till parametrarna med egenskapen MSTest TestContext.Properties (eller NUnit TestContext):
private string _appUrl;
public TestContext TestContext { get; set; }
[TestMethod] // [Test] for NUnit
public void HomePageTest()
{
string _appUrl = TestContext.Properties["webAppUrl"];
}
Om du vill använda testkörningsparametrar lägger du till en offentlig TestContext-egenskap i testklassen.
LoggerRunSettings-elementet
I avsnittet LoggerRunSettings
definieras en eller flera loggare som ska användas för testkörningen. De vanligaste loggarna är konsolen, Visual Studio Test Results File (trx) och 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-element
De här inställningarna är specifika för testkortet som kör testmetoder som har attributet 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>
Konfiguration | Standard | Värden |
---|---|---|
ForcedLegacyMode | falsk | I äldre versioner av Visual Studio optimerades MSTest-adaptern för att göra den snabbare och mer skalbar. Vissa beteenden, till exempel i vilken ordning testerna körs, kanske inte är exakt som i tidigare utgåvor av Visual Studio. Ange värdet till sant för att använda den äldre testadaptern. Du kan till exempel använda den här inställningen om du har en app.config fil som angetts för ett enhetstest. Vi rekommenderar att du överväger att omstrukturera dina tester så att du kan använda det nyare adaptern. |
Inställningsfil | Du kan ange en testinställningsfil som ska användas med MSTest-adaptern här. Du kan också ange en testinställningsfil från inställningsmenyn. Om du anger det här värdet måste du också ange ForcedLegacyMode till true. <ForcedLegacyMode>true</ForcedLegacyMode> |
|
DeploymentEnabled | sann | Om du anger värdet till falsekopieras inte distributionsobjekt som du har angett i testmetoden till distributionskatalogen. |
CaptureTraceOutput | sann | Samla in textmeddelanden som kommer från Console.Write* , Trace.Write* , Debug.Write* API som kommer att associeras till det aktuella test som körs. |
EnableBaseClassTestMethodsFromOtherAssemblies | sann | Ett värde som anger om du vill aktivera identifiering av testmetoder från basklasser i en annan sammansättning än den ärvande testklassen. |
ClassCleanupLifecycle | EndOfClass | Om du vill att klassrensningen ska ske i slutet av sammansättningen anger du den till EndOfAssembly. (Stöds inte längre från MSTest v4 eftersom EndOfClass är standard och endast ClassCleanup- beteende) |
MapNotRunnableToFailed | sann | Ett värde som anger om ett resultat som inte kan köras mappas till ett misslyckat test. |
Parallellisera | Används för att ange parallelliseringsinställningarna: Workers: Antalet trådar/arbetare som ska användas för parallellisering, vilket är som standard antalet processorer på den aktuella datorn. SCOPE: Parallelliseringens omfattning. Du kan ställa in den på MethodLevel. Som standard är det ClassLevel. <Parallelize><Workers>32</Workers><Scope>MethodLevel</Scope></Parallelize> |
|
TestTimeout | 0 | Hämtar angiven global tidsgräns för testfall. |
BehandlaUpptäckningsvarningarSomFel | falsk | Om du vill rapportera testupptäcktsvarningar som fel anger du det här värdet till sant. |
TreatClassAndAssemblyCleanupWarningsAsErrors | falsk | För att se dina misslyckanden i klassrensningar som fel, ange det här värdet till sant. |
DeployTestSourceDependencies | sann | Ett värde som anger om testkällans referenser ska distribueras. |
DeleteDeploymentDirectoryAfterTestRunIsComplete | sann | Om du vill behålla distributionskatalogen efter en testkörning anger du värdet till false. |
MapInconclusiveToFailed | falsk | Om ett test slutförs med en ofullständig status mappas det till den överhoppade statusen i Test Explorer. Om du vill att ofullständiga tester ska visas som misslyckade anger du värdet till sant. |
BehandlaArmaturerSomSpeciellaTester | falsk | För att visa AssemblyInitialize , AssemblyCleanup , ClassInitialize , ClassCleanup som enskilda poster i loggen för Visual Studio och Visual Studio Code Test Explorer och .trx , sätt det här värdet till sant. |
Församlingsresolution | falsk | Du kan ange sökvägar till extra sammansättningar när du söker efter och kör enhetstester. Använd till exempel dessa sökvägar för beroendesammansättningar som inte finns i samma katalog som testsammansättningen. Om du vill ange en sökväg använder du ett katalogsökväg element. Sökvägar kan innehålla miljövariabler.<AssemblyResolution> <Directory path="D:\myfolder\bin\" includeSubDirectories="false"/> </AssemblyResolution> Observera att den här funktionen endast tillämpas när du använder .NET Framework-målet. |
Exempel .runsettings-fil
Följande XML visar innehållet i en typisk .runsettings-fil. Kopiera den här koden och redigera den så att den passar dina behov.
Varje element i filen är valfritt eftersom det har ett standardvärde.
<?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>
Ange miljövariabler i filen .runsettings
Miljövariabler kan anges i .runsettings-filen, som kan interagera direkt med testvärden. Du måste ange miljövariabler i .runsettings-filen för att stödja icke-projekt som kräver inställning av miljövariabler som DOTNET_ROOT. Dessa variabler anges när testvärdprocessen skapas och de är tillgängliga i värden.
Exempel
Följande kod är ett exempel .runsettings fil som skickar miljövariabler:
<?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>
Noden RunConfiguration ska innehålla en EnvironmentVariables nod. En miljövariabel kan anges som ett elementnamn och dess värde.
Not
Eftersom dessa miljövariabler alltid ska anges när testvärdmiljön startas bör testerna alltid köras i en separat process. För detta sätts flaggan /InIsolation när det finns miljövariabler så att testvärden alltid anropas.