Konfigurieren von Komponententests mithilfe einer .runsettings-Datei
Komponententests in Visual Studio können mithilfe einer .runsettings-Datei konfiguriert werden.(Der Dateiname spielt keine Rolle sofern Sie die Erweiterung ‘.runsettings’ verwenden.) Beispielsweise können Sie die .NET Framework-Version, auf der die Tests, durchgeführt werden, das Verzeichnis, in dem Testergebnisse gespeichert werden, sowie die während eines Testlaufs gesammelten Daten ändern.
Wenn Sie keine spezielle Konfiguration möchten, benötigen Sie keine Datei "*.runsettings".Sie wird am häufigsten verwendet, um die Codeabdeckung anzupassen.
Hinweis |
---|
.runsettings und .testsettings Es gibt zwei Typen oder Dateien für das Konfigurieren von Tests.*.runsettings werden für Komponententests gebraucht.Und *.testsettings für Tests in Lab-Umgebungen, Webleistungs- und Auslastungstests sowie für das Anpassen einiger Arten diagnostischer Datenadapter wie beispielsweise Intellitrace und Ereignisprotokolladapter. In früheren Editionen von Visual Studio bis 2010 wurden Komponententests auch mithilfe von *.testsettings-Dateien angepasst.Das ist noch immer möglich, aber die Tests laufen langsamer als wenn Sie die vergleichbare Konfiguration in einer *.runsettings-Datei verwenden. |
Anpassen von Tests mit einer .runsetting-Datei
Fügen Sie Ihrer Visual Studio-Projektmappe eine XML-Datei hinzu und benennen Sie sie um.(Der Dateiname ist unerheblich, aber die Dateierweiterung muss ".runsettings" sein.)
Ersetzen Sie den Inhalt der Datei durch das Beispiel.
Bearbeiten Sie ihn Ihren Anforderungen entsprechend.
Klicken Sie im Menü Test auf Testeinstellungen und dann Datei für Testeinstellungen auswählen.
Sie können mehr als eine *.runsettings-Datei in der Projektmappe erstellen und im Menü Testeinstellungen festlegen, dass die Dateien unterschiedlichen Zeitpunkten aktiviert oder deaktiviert werden.
Kopieren Sie diese .runsettings-Beispieldatei
Im Folgenden finden Sie eine typische *.runsettings-Datei.Jedes Element der Datei ist optional, weil jeder Wert über einen Standardwert verfügt.
<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
<!-- Configurations that affect the Test Framework -->
<RunConfiguration>
<!-- Path relative to solution directory -->
<ResultsDirectory>.\TestResults</ResultsDirectory>
<!-- [x86] | x64
- You can also change it from menu Test, Test Settings, Default Processor Architecture -->
<TargetPlatform>x86</TargetPlatform>
<!-- Framework35 | [Framework40] | Framework45 -->
<TargetFrameworkVersion>Framework40</TargetFrameworkVersion>
</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>
</CodeCoverage>
</Configuration>
</DataCollector>
</DataCollectors>
</DataCollectionRunSettings>
<!-- Adapter Specific sections -->
<!-- MSTest adapter -->
<MSTest>
<MapInconclusiveToFailed>True</MapInconclusiveToFailed>
<CaptureTraceOutput>false</CaptureTraceOutput>
<DeleteDeploymentDirectoryAfterTestRunIsComplete>False</DeleteDeploymentDirectoryAfterTestRunIsComplete>
<DeploymentEnabled>False</DeploymentEnabled>
</MSTest>
</RunSettings>
Die RUNSETTINGS-Datei wird auch zur Konfiguration der Codeabdeckung verwendet.
Im verbleibenden Teil dieses Themas wird der Dateiinhalt beschrieben.
Bearbeiten Sie die .runsettings-Datei
Die .runsettings-Datei weist folgende Elemente auf.
Testlaufkonfiguration
Knoten |
Standard |
Werte |
---|---|---|
ResultsDirectory |
Das Verzeichnis, in dem die Testergebnisse gespeichert werden. |
|
TargetFrameworkVersion |
Framework40 |
Framework35, Framework40, Framework45 Dadurch wird angegeben, welche Version des Komponententest-Frameworks verwendet wird, um die Tests zu ermitteln und auszuführen.Diese kann sich von der Version der .NET-Plattform unterscheiden, die Sie in den Buildeigenschaften des Komponententestprojekts angeben. |
TargetPlatform |
x86 |
x86, x64 |
TreatTestAdapterErrorsAsWarnings |
false |
false, true |
Adapter für diagnostische Daten (Datensammler)
Das DataCollectors-Element gibt die Einstellungen von Adaptern für diagnostische Daten an.Adapter für diagnostische Daten werden verwendet, um zusätzliche Informationen zur Umgebung und den getesteten Anwendung zu sammeln.Jeder Adapter verfügt über Standardeinstellungen. Wenn Sie diese nicht verwenden möchten, können Sie andere Einstellungen festlegen.
Codeabdeckungsadapter
Der Datensammler der Codeabdeckung erstellt ein Protokoll der Teile des Anwendungscodes, die im Test ausgeführt wurden.Weitere Informationen zum Anpassen der Einstellungen für Codeabdeckung finden Sie unter Anpassen der Codeabdeckungsanalyse.
Sonstige Adapter für diagnostische Daten
Der Codeabdeckungsadapter ist zurzeit der einzige Adapter, der mithilfe der Testlaufeinstellungsdatei angepasst werden kann.
Um andere Typen von Adaptern für diagnostische Daten anzupassen, müssen Sie eine Testeinstellungsdatei verwenden.Weitere Informationen finden Sie unter Angeben von Testeinstellungen für Visual Studio-Tests.
MSTest-Testlaufeinstellungen
Diese Einstellungen betreffen den Testadapter, der Testmethoden ausführt, die über das [TestMethod]-Attribut verfügen.
Konfiguration |
Standard |
Werte |
---|---|---|
ForcedLegacyMode |
false |
In Visual Studio 2012 wurde der MSTest-Adapter für eine schnellere Geschwindigkeit und bessere Skalierbarkeit optimiert.Einige Verhalten, z. B. die Reihenfolge der Testausführung, sind möglicherweise nicht mehr so präzise wie in den vorherigen Versionen von Visual Studio.Legen Sie diesen Wert auf true fest, um den älteren Testadapter zu verwenden. Beispielsweise können Sie diesen verwenden, wenn Sie eine app.config-Datei für einen Komponententest angegeben haben. Eventuell sollten Sie in Betracht ziehen, die Tests so umzugestalten, dass Sie den späteren Adapter verwenden können. |
IgnoreTestImpact |
false |
Die Testauswirkungensfunktion priorisiert Tests, auf die sich aktuelle Änderungen auswirken, wenn sie in MSTest oder von Microsoft Test-Manager ausgeführt werden.Diese Einstellung deaktiviert die Funktion.Weitere Informationen finden Sie unter Gewusst wie: Sammeln von Daten, um zu überprüfen, welche Tests nach Codeänderungen ausgeführt werden sollen. |
SettingsFile |
Sie können eine Testeinstellungsdatei, die mit dem MS-Testadapter verwendet werden soll, hier angeben.Außerdem können Sie eine Testeinstellungsdatei im Menü Test über die Optionen Testeinstellungen und dann Datei für Testeinstellungen auswählen angeben. Wenn Sie diesen Wert angeben, müssen Sie außerdem ForcedlegacyMode auf true festlegen.
|
|
KeepExecutorAliveAfterLegacyRun |
false |
Nachdem ein Testlauf abgeschlossen ist, wird MSTest beendet.Jeder Prozess, der als Teil des Tests gestartet wird, wird dann ebenfalls abgebrochen.Wenn der Test-Executor aktiv bleiben soll, legen Sie diese Konfiguration auf "true" fest. Beispielsweise können Sie mit dieser Konfiguration erreichen, dass der Browser zwischen Tests der codierten UI aktiv bleibt. |
DeploymentEnabled |
true |
Wenn Sie diese Konfiguration auf "false" festlegen, werden in der Testmethode angegebene Bereitstellungselemente nicht in das Bereitstellungsverzeichnis kopiert. |
CaptureTraceOutput |
true |
Mithilfe von Trace.WriteLine können Sie über Ihre Testmethode in die Debugablaufverfolgung schreiben.Mit dieser Konfiguration können Sie diese Debugablaufverfolgungen deaktivieren. |
DeleteDeploymentDirectoryAfterTestRunIsComplete |
true |
Sie können das Bereitstellungsverzeichnis nach einem Testlauf beibehalten, indem Sie diesen Wert auf "false" festlegen. |
MapInconclusiveToFailed |
false |
Wenn ein Test einen nicht eindeutigen Status zurückgibt, wird er normalerweise dem Status "Übersprungen" im Test-Explorer zugeordnet.Wenn nicht eindeutige Tests als "Fehlgeschlagen" angezeigt werden sollen, verwenden Sie diese Konfiguration. |
InProcMode |
false |
Wenn die Tests im selben Prozess wie der MSTest-Adapter ausgeführt werden sollen, legen Sie diesen Wert auf "true" fest.Diese Einstellung führt zu einer geringen Leistungssteigerung.Wenn ein Test allerdings mit einer Ausnahme beendet wird, werden die anderen Tests nicht fortgesetzt. |
Siehe auch
Konzepte
Anpassen der Codeabdeckungsanalyse