Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
MSTest, Microsoft Testing Framework, is een testframework voor .NET-toepassingen. Hiermee kunt u tests schrijven en uitvoeren en testsuites bieden met integratie met Visual Studio en Visual Studio Code Test Explorers, de .NET CLI en veel CI-pijplijnen.
MSTest is een volledig ondersteund opensource- en een platformoverschrijdend testframework dat werkt met alle ondersteunde .NET-doelen (.NET Framework, .NET Core, .NET, .NET, UWP, WinUI, enzovoort) die worden gehost op GitHub.
Runsettings
Een .runsettings-bestand kan worden gebruikt om te configureren hoe eenheidstests worden uitgevoerd. Voor meer informatie over de runsettings en de configuraties die betrekking hebben op het platform, kunt u de documentatie van VSTest runsettings of MSTest runner runsettings raadplegen.
Instellingen voor parallelle uitvoering
Als u parallellisatie van MSTest in assembly wilt inschakelen, configureert u de Parallelize vermelding onder MSTest, inclusief de bijbehorende Workers waarden Scope , zoals beschreven in de tabel in de volgende sectie. Om parallellisatie voor de uitvoering uit te schakelen, stelt u <RunConfiguration><DisableParallelization>true</DisableParallelization></RunConfiguration> in. De DisableParallelization instelling overschrijft een [assembly: Parallelize] kenmerk.
Zie Parallellisatie configureren voor het gedrag van de parallelle kenmerken en een vergelijking van elk configuratiemechanisme.
MSTest-element
Met de volgende runettings-vermeldingen kunt u configureren hoe MSTest zich gedraagt.
| Configuratie | Standaard | Waarden |
|---|---|---|
AssemblyCleanupTimeout |
Geen | Specificeer algemeen de time-out die moet worden toegepast op elke instantie van de cleanup-methode voor assemblages.
[Timeout] kenmerk dat is opgegeven voor de assembly-opschoonmethode overschrijft de globale time-out. |
AssemblyInitializeTimeout |
Geen | Geef globaal de time-out op die moet worden toegepast op elk exemplaar van de assembly-initialisatiemethode.
[Timeout] het kenmerk dat is opgegeven voor de assembly-initialisatiemethode overschrijft de globale time-out. |
AssemblyResolution |
onwaar | U kunt paden naar extra assembly's opgeven bij het zoeken en uitvoeren van eenheidstests. Gebruik deze paden bijvoorbeeld voor afhankelijkheidsassembly's die zich niet in dezelfde map bevinden als de testassembly. Als u een pad wilt opgeven, gebruikt u een directorypad-element. Paden kunnen omgevingsvariabelen bevatten.<AssemblyResolution> <Directory path="D:\myfolder\bin\" includeSubDirectories="false"/> </AssemblyResolution>Deze functie wordt alleen toegepast wanneer u een .NET Framework-doel gebruikt. |
CaptureTraceOutput |
Result |
Leg tekst van de Console.Write* en Trace.Write* API's vast en koppel deze aan de huidige test. In .NET Framework wordt Debug.Write* ook vastgelegd via gedeelde trace-listeners. Modern .NET leidt Debug.Write* niet via die listeners, dus MSTest legt dat niet vast. Beginnend met de MSTest 4.4 preview, gebruik None, Resultof Live.
Livegeeft ook de uitvoer van Console, Trace en TestContext.Write* weer terwijl de test wordt uitgevoerd. De eerdere Booleaanse waarden blijven ondersteund: true wordt toegewezen aan Resulten false wordt toegewezen aan None. |
ClassCleanupLifecycle |
EndOfClass | Als u wilt dat de klasse wordt opgeschoond aan het einde van de assembly, stelt u deze in op EndOfAssembly. (Niet langer ondersteund vanaf MSTest v4, aangezien EndOfClass het standaard- en enige ClassCleanup-gedrag is) |
ClassCleanupTimeout |
Geen | Geef globaal de time-out op die moet worden toegepast op elk exemplaar van de klasse-opschoonmethode.
[Timeout] attribuut dat is opgegeven in de opruimmethode van de klasse overschrijft de globale time-out. |
ClassInitializeTimeout |
Geen | Geef globaal de time-out op die moet worden toegepast op elk exemplaar van de klasse-initialisatiemethode.
[Timeout] kenmerk dat is opgegeven voor de methode class initialize overschrijft de globale time-out. |
ConsiderFixturesAsSpecialTests |
onwaar | Stel deze waarde in op AssemblyInitialize om AssemblyCleanup, ClassInitialize, ClassCleanup, Test Explorer als afzonderlijke vermeldingen weer te geven in Visual Studio en Visual Studio Code en in het .trx logboek. |
DeleteDeploymentDirectoryAfterTestRunIsComplete |
waar | Als u de implementatiemap wilt behouden na een testuitvoering, stelt u deze waarde in op false. |
DeploymentEnabled |
waar | Als u de waarde instelt op false, worden deploymentitems die u in uw testmethode opgeeft, niet gekopieerd naar de implementatiemap. |
DeployTestSourceDependencies |
waar | Een waarde die aangeeft of de bronverwijzingen voor de test moeten worden geïmplementeerd. |
EnableBaseClassTestMethodsFromOtherAssemblies |
waar | Een waarde die aangeeft of detectie van testmethoden uit basisklassen in een andere assembly moet worden ingeschakeld dan de overnemende testklasse. |
ForcedLegacyMode |
onwaar | In oudere versies van Visual Studio is de MSTest-adapter geoptimaliseerd om deze sneller en beter schaalbaar te maken. Sommige gedragingen, zoals de volgorde waarin tests worden uitgevoerd, zijn mogelijk niet precies zoals in eerdere edities van Visual Studio. Stel de waarde in op true om de oudere testadapter te gebruiken. U kunt deze instelling bijvoorbeeld gebruiken als u een app.config-bestand hebt opgegeven voor een eenheidstest. U wordt aangeraden uw tests te herstructureren zodat u de nieuwere adapter kunt gebruiken. |
GlobalTestCleanupTimeout |
TestCleanupTimeout |
Geef vanaf MSTest 4.4 de time-out op voor elke algemene testopschoonmethode. Wanneer u deze vermelding weglaat, gebruikt MSTest TestCleanupTimeout. Een [Timeout] kenmerk in de methode overschrijft beide waarden. |
GlobalTestInitializeTimeout |
TestInitializeTimeout |
Geef vanaf MSTest 4.4 de time-out op voor elke algemene test-initialisatiemethode. Wanneer u deze vermelding weglaat, gebruikt MSTest TestInitializeTimeout. Een [Timeout] kenmerk in de methode overschrijft beide waarden. |
LaunchDebuggerOnTestFailure |
onwaar | Vanaf MSTest 4.2, wanneer deze is ingesteld op true, start MSTest het foutopsporingsprogramma wanneer een test mislukt. |
MapInconclusiveToFailed |
onwaar | Als een test is voltooid met een niet-overtuigende status, wordt deze toegewezen aan de overgeslagen status in Test Explorer. Als u wilt dat niet-overtuigende tests worden weergegeven als mislukt, stelt u de waarde in op true. |
MapNotRunnableToFailed |
waar | Een waarde die aangeeft of een niet-uitvoerbaar resultaat wordt gemapt naar een mislukte test. |
OrderTestsByNameInClass |
onwaar | Als u tests wilt uitvoeren op basis van testnamen, zowel in Test Explorers als via de opdrachtregel, stelt u deze waarde in op true. |
Parallelize |
Wordt gebruikt om de instellingen voor parallelle uitvoering in te stellen:Workers: Het aantal threads/werkrollen dat moet worden gebruikt voor parallelle uitvoering, wat standaard het aantal processors op de huidige computer is.Scope: Het bereik van parallelle uitvoering. U kunt deze instellen op MethodLevel. Dit is standaard ClassLevel.<Parallelize><Workers>32</Workers><Scope>MethodLevel</Scope></Parallelize> |
|
RandomizeTestOrder |
onwaar | Vanaf MSTest 4.3 stelt u deze waarde in op waar om tests in een willekeurige volgorde uit te voeren, zodat verborgen volgordeafhankelijkheden tussen tests worden weergegeven. Deze instelling kan niet worden gecombineerd met OrderTestsByNameInClass. |
RandomTestOrderSeed |
Vanaf MSTest 4.3 stelt u, wanneer RandomizeTestOrdertrue is, een geheel getal als seed in om de willekeurige volgorde in verschillende uitvoeringen reproduceerbaar te maken. Als dit niet is ingesteld, wordt voor elke uitvoering een nieuwe seed gebruikt. |
|
SettingsFile |
U kunt hier een testinstellingenbestand opgeven dat moet worden gebruikt met de MSTest-adapter. U kunt ook een testinstellingenbestand opgeven in het instellingenmenu. Als u deze waarde opgeeft, moet u de ForcedLegacyMode ook op true instellen.<ForcedLegacyMode>true</ForcedLegacyMode> |
|
TestCleanupTimeout |
Geen | Geef globaal de time-out op die moet worden toegepast op elke instantie van de test-opschoonmethode.
[Timeout] attribuut dat is opgegeven voor de testopschoonmethode overschrijft de globale timeout. |
TestInitializeTimeout |
Geen | Geef globaal de time-out op die moet worden toegepast op elk exemplaar van de test-initialisatiemethode.
[Timeout] kenmerk dat is opgegeven voor de test initialize-methode overschrijft de globale time-out. |
TestTimeout |
Geen | Hiermee wordt de gespecificeerde time-out voor globale testcases verkregen. |
TreatClassAndAssemblyCleanupWarningsAsErrors |
onwaar | Stel deze waarde in op true als u uw fouten in klasseopruimingen als fouten wilt beschouwen. |
TreatDiscoveryWarningsAsErrors |
onwaar | Als u detectiewaarschuwingen als fouten wilt rapporteren, stelt u deze waarde in op true. |
Time-outwaarden moeten positieve gehele getallen in milliseconden zijn. Als u zonder een time-out wilt uitvoeren, laat u de vermelding weg in plaats van deze in te stellen op 0. Globale time-outs voor testfixtures erven de overeenkomstige TestInitializeTimeout- of TestCleanupTimeout-waarde.
TestRunParameter Element
<TestRunParameters>
<Parameter name="webAppUrl" value="http://localhost" />
</TestRunParameters>
Testuitvoeringsparameters bieden een manier om variabelen en waarden te definiëren die tijdens runtime beschikbaar zijn voor de tests. Open de parameters met behulp van de eigenschap MSTest TestContext.Properties :
private string _appUrl;
public TestContext TestContext { get; set; }
[TestMethod]
public void HomePageTest()
{
string _appUrl = TestContext.Properties["webAppUrl"];
}
Als u testuitvoeringsparameters wilt gebruiken, voegt u een openbare TestContext eigenschap toe aan uw testklasse.
Voorbeeld van .runsettings-bestand
In de volgende XML ziet u de inhoud van een typisch RUNETTINGS-bestand . Kopieer deze code en bewerk deze naar wens.
Elk element van het bestand is optioneel omdat het een standaardwaarde heeft.
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- Parameters used by tests at runtime -->
<TestRunParameters>
<Parameter name="webAppUrl" value="http://localhost" />
<Parameter name="webAppUserName" value="Admin" />
<Parameter name="webAppPassword" value="Password" />
</TestRunParameters>
<!-- MSTest -->
<MSTest>
<MapInconclusiveToFailed>True</MapInconclusiveToFailed>
<CaptureTraceOutput>false</CaptureTraceOutput>
<DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>
<DeploymentEnabled>False</DeploymentEnabled>
<ConsiderFixturesAsSpecialTests>False</ConsiderFixturesAsSpecialTests>
<AssemblyResolution>
<Directory path="D:\myfolder\bin\" includeSubDirectories="false"/>
</AssemblyResolution>
</MSTest>
</RunSettings>
testconfig.json
Wanneer u uw tests uitvoert met MSTest, kunt u een testconfig.json-bestand gebruiken om het gedrag van de testrunner te configureren. Het testconfig.json-bestand is een JSON-bestand dat de configuratie-instellingen voor de testrunner bevat. Het bestand wordt gebruikt om de testrunner en de testuitvoeringsomgeving te configureren. Raadpleeg de documentatie voor MTP testconfig.json voor meer informatie.
Vanaf MSTest 3.7 kunt u MSTest-uitvoeringen ook configureren in hetzelfde configuratiebestand. In de volgende secties worden de instellingen beschreven die u in het bestand testconfig.json kunt gebruiken.
Vanaf MSTest 4.3.3 accepteren .NET Framework-uitvoeringen ook opmerkingen en volgkomma's in testconfig.json.
MSTest-element
MSTest-instellingen worden gegroepeerd op functionaliteit die wordt beschreven in de volgende secties.
| Ingang | Standaard | Beschrijving |
|---|---|---|
| activeerTestMethodenVanBasisKlassenUitAndereAssemblies | waar | Een waarde die aangeeft of detectie van testmethoden uit basisklassen in een andere assembly moet worden ingeschakeld dan de overnemende testklasse. |
| klasseCleanupLifecycle | EndOfAssembly | Als u wilt dat de klasse wordt opgeschoond aan het einde van de klasse, stelt u deze in op EndOfClass-. |
instellingen voor assemblyResolution
Alle instellingen in deze sectie behoren tot het element assemblyResolution.
| Ingang | Standaard | Beschrijving |
|---|---|---|
| Paden | Geen | U kunt paden naar extra assembly's opgeven bij het zoeken en uitvoeren van eenheidstests. Gebruik deze paden bijvoorbeeld voor afhankelijkheidsassembly's die zich niet in dezelfde map bevinden als de testassembly. U kunt een pad opgeven in de vorm { "path": "...", "includeSubDirectories": "true/false" }. |
Voorbeeld:
{
"mstest": {
"assemblyResolution": {
{ "path": "...", "includeSubDirectories": "true/false" }
}
}
}
instellingen voor deployment
Alle instellingen in deze sectie behoren tot het element deployment.
| Ingang | Standaard | Beschrijving |
|---|---|---|
| verwijderDeploydirectoryNaVoltooiingTestuitvoering | waar | Als u de implementatiemap wilt behouden na een testuitvoering, stelt u deze waarde in op false. |
| deployTestSourceDependencies | waar | Geeft aan of de bronverwijzingen voor de test moeten worden geïmplementeerd. |
| Ingeschakeld | waar | Als u de waarde instelt op false, worden deploymentitems die u in uw testmethode opgeeft, niet gekopieerd naar de implementatiemap. |
Voorbeeld:
{
"mstest": {
"deployment": {
"deleteDeploymentDirectoryAfterTestRunIsComplete": true,
"deployTestSourceDependencies": true,
"enabled": true
}
}
}
instellingen voor output
Alle instellingen in deze sectie behoren tot het element output.
| Ingang | Standaard | Beschrijving |
|---|---|---|
| captureTrace | Result |
Leg de uitvoer van Console en Trace vast en koppel die aan de huidige test. In .NET Framework omvat de vastlegging ook uitvoer via gedeelde traceringslisteners van Debug. Moderne .NET-uitvoer Debug.Write* wordt niet vastgelegd. Beginnend met de MSTest 4.4 preview, gebruik None, Resultof Live.
Live geeft ook uitvoer weer, waaronder TestContext.Write* berichten, terwijl de test wordt uitgevoerd. De Booleaanse waarden blijven ondersteund: true wordt toegewezen aan Resulten false wordt toegewezen aan None. |
Voorbeeld:
{
"mstest": {
"output": {
"captureTrace": false
}
}
}
instellingen voor parallelism
Alle instellingen in deze sectie behoren tot het element parallelism.
Zie Parallellisatie configureren voor het gedrag van de parallelle kenmerken en een vergelijking van elk configuratiemechanisme.
| Ingang | Standaard | Beschrijving |
|---|---|---|
| Ingeschakeld | onwaar | Schakel testparallellisatie in. |
| reikwijdte | klas | Het bereik van parallelisatie. U kunt deze instellen op method. De standaardinstelling, class, komt overeen met het sequentieel uitvoeren van alle tests van een bepaalde klasse, maar meerdere klassen parallel. |
| arbeiders | 0 | Het aantal threads/processen dat moet worden gebruikt voor parallellisatie. De standaardwaarde wordt toegewezen aan het aantal processors op de huidige computer. |
Voorbeeld:
{
"mstest": {
"parallelism": {
"enabled": true,
"scope": "method",
"workers": 32
}
}
}
instellingen voor execution
Alle instellingen in deze sectie behoren tot het element execution.
| Ingang | Standaard | Beschrijving |
|---|---|---|
| beschouw een lege gegevensbron als niet doorslaggevend | onwaar | Als deze is ingesteld op true, wordt een lege gegevensbron beschouwd als niet-overtuigend. |
| beschouw Fixtures Als Speciale Tests | onwaar | Als u AssemblyInitialize, AssemblyCleanup, ClassInitializewilt weergeven, ClassCleanup als afzonderlijke vermeldingen in Visual Studio en Visual Studio Code Test Explorer en .trx-logboek, stelt u deze waarde in op true. |
| afhankelijkheden | Vanaf MSTest 4.4 declareert u de testafhankelijkheid chains en nodes. Deze instelling is alleen beschikbaar voor Microsoft. Testing.Platform. Zie Afhankelijkheden testen voor meer informatie. |
|
| KoppelInconclusiefAanMislukt | onwaar | Als een test is voltooid met een niet-overtuigende status, wordt deze toegewezen aan de overgeslagen status in Test Explorer. Als u wilt dat niet-overtuigende tests worden weergegeven als mislukt, stelt u de waarde in op true. |
| launchDebuggerOnTestFailure | onwaar | Vanaf MSTest 4.2, wanneer deze is ingesteld trueop, start MSTest het foutopsporingsprogramma wanneer een test mislukt. |
| mapNietUitvoerbaarNaarMislukt | waar | Een waarde die aangeeft of een niet-uitvoerbaar resultaat wordt gemapt naar een mislukte test. |
| sorteerTestsOpNaamInKlasse | onwaar | Voer tests in alfabetische volgorde uit binnen elke klasse. Gebruik vanaf MSTest 4.3 mstest.execution.orderTestsByNameInClass. De oudere mstest.orderTestsByNameInClass sleutel werkt nog steeds, maar geeft een waarschuwing voor veroudering. |
| randomizeTestOrder | onwaar | Vanaf MSTest 4.3 stelt u deze waarde in op true om tests in een willekeurige volgorde uit te voeren, waardoor verborgen volgordeafhankelijkheden tussen tests aan het licht komen. Deze instelling kan niet worden gecombineerd met orderTestsByNameInClass. |
| randomTestOrderSeed | Vanaf MSTest 4.3 stelt u, wanneer randomizeTestOrder is ingesteld op true, een geheel zaadgetal in om de willekeurige volgorde in verschillende uitvoeringen reproduceerbaar te maken. Als dit niet is ingesteld, wordt voor elke uitvoering een nieuwe seed gebruikt. |
|
| behandelKlasseEnAssemblyOpschoonWaarschuwingenAlsFouten | onwaar | Stel deze waarde in op true als u uw fouten in klasseopruimingen als fouten wilt beschouwen. |
| waarschuwingenBijOntdekkingBehandelenAlsFouten | onwaar | Als u detectiewaarschuwingen als fouten wilt rapporteren, stelt u deze waarde in op true. |
Voorbeeld:
{
"mstest": {
"execution": {
"considerEmptyDataSourceAsInconclusive": false,
"considerFixturesAsSpecialTests": false,
"mapInconclusiveToFailed": true,
"mapNotRunnableToFailed": true,
"treatClassAndAssemblyCleanupWarningsAsErrors": false,
"treatDiscoveryWarningsAsErrors": false
}
}
}
instellingen voor timeout
Alle instellingen in deze sectie behoren tot het element timeout.
| Ingang | Standaard | Beschrijving |
|---|---|---|
| assemblageOpschoning | Geen | Specificeer algemeen de time-out die moet worden toegepast op elke instantie van de cleanup-methode voor assemblages. |
| assemblageInitialiseren | Geen | Geef globaal de time-out op die moet worden toegepast op elk exemplaar van de assembly-initialisatiemethode. |
| classCleanup | Geen | Geef globaal de time-out op die moet worden toegepast op elk exemplaar van de klasse-opschoonmethode. |
| classInitialiseren | Geen | Geef globaal de time-out op die moet worden toegepast op elk exemplaar van de klasse-initialisatiemethode. |
| globalTestCleanup | testCleanup |
Geef vanaf MSTest 4.4 de time-out op voor elke algemene testopschoonmethode. Wanneer u deze vermelding weglaat, gebruikt MSTest testCleanup. |
| globalTestInitialize | testInitialize |
Geef vanaf MSTest 4.4 de time-out op voor elke algemene test-initialisatiemethode. Wanneer u deze vermelding weglaat, gebruikt MSTest testInitialize. |
| toets | Geen | Geef globaal de time-out voor de test op. |
| testCleanup | Geen | Geef globaal de time-out op die moet worden toegepast op elke instantie van de test-opschoonmethode. |
| testInitialiseren | Geen | Geef globaal de time-out op die moet worden toegepast op elk exemplaar van de test-initialisatiemethode. |
| gebruikCoöperatieve Annulering | onwaar | Wanneer ingesteld op true, activeert MSTest in geval van time-out alleen de annulering van de CancellationToken, maar stopt het niet met het observeren van de methode. Dit gedrag is beter presterend, maar is afhankelijk van de gebruiker om het token correct door alle paden te laten stromen. |
Notitie
Time-outwaarden moeten positieve gehele getallen in milliseconden zijn. Als u zonder een time-out wilt uitvoeren, laat u de vermelding weg in plaats van deze in te stellen op 0. Time-outs voor globale testfixtures erven de overeenkomstige waarde van testInitialize of testCleanup, dus laat beide items weg als u geen time-out wilt voor een globale fixture. Een [Timeout] kenmerk voor een methode overschrijft de geconfigureerde time-out.
Voorbeeld:
{
"mstest": {
"timeout": { "globalTestInitialize": 30000, "globalTestCleanup": 30000 }
}
}
Voorbeeld van testconfig.json-bestand
In de volgende JSON ziet u de inhoud van een typisch .testconfig.json bestand. Kopieer deze code en bewerk deze naar wens.
Elk element van het bestand is optioneel omdat het een standaardwaarde heeft.
{
"platformOptions": {
"resultDirectory": "./TestResults"
},
"mstest": {
"execution": {
"mapInconclusiveToFailed": true,
"disableAppDomain": true,
"considerFixturesAsSpecialTests": false
},
"parallelism": {
"enabled": true,
"scope": "method"
},
"output": {
"captureTrace": false
}
}
}
MSBuild-eigenschappen
Vanaf MSTest 4.3 kunt u zich aanmelden voor parallellisatie op assemblyniveau vanuit uw projectbestand of Directory.Build.props zonder een [assembly: Parallelize] kenmerk te ontwerpen. Deze eigenschappen verzenden het bijbehorende assemblykenmerk tijdens de build, dus ze moeten GenerateAssemblyInfo zijn true (de standaardinstelling voor PROJECTEN in SDK-stijl).
Zie Parallellisatie configureren voor het gedrag van de gegenereerde kenmerken en een vergelijking van elk configuratiemechanisme.
| Property | Standaard | Beschrijving |
|---|---|---|
MSTestParallelizeScope |
De reikwijdte van de parallellisatie. Stel deze in op MethodLevel of ClassLevel om [assembly: Parallelize(Scope = ExecutionScope.MethodLevel)] (of ExecutionScope.ClassLevel) te verzenden, of op None om [assembly: DoNotParallelize] te verzenden. |
|
MSTestParallelizeWorkers |
Het maximumaantal workerthreads, weergegeven als de waarde Workers van [assembly: Parallelize]. Een waarde van 0 komt overeen met het aantal processoren op de huidige computer. Deze eigenschap kan niet worden ingesteld wanneer MSTestParallelizeScopeNone is. |
MSTest valideert beide eigenschappen tijdens de build. Ongeldige scopewaarden, niet-gehele worker-aantallen en een worker-aantal in combinatie met een None-scope zorgen ervoor dat de build mislukt. Declareer [assembly: Parallelize] of [assembly: DoNotParallelize] in de bron niet, omdat het gegenereerde kenmerk het dupliceert. Wanneer GenerateAssemblyInfofalse is, declareer het kenmerk dan in plaats daarvan in de broncode.
In het volgende voorbeeld wordt parallellisatie op methodeniveau mogelijk met vier werkrollen voor elk testproject waarmee het Directory.Build.props bestand wordt geïmporteerd:
<Project>
<PropertyGroup>
<MSTestParallelizeScope>MethodLevel</MSTestParallelizeScope>
<MSTestParallelizeWorkers>4</MSTestParallelizeWorkers>
</PropertyGroup>
</Project>