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.

HinweisHinweis

.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

  1. 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.)

  2. Ersetzen Sie den Inhalt der Datei durch das Beispiel.

    Bearbeiten Sie ihn Ihren Anforderungen entsprechend.

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

Aktivieren einer Datei für Testlaufeinstellungen

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.

<RunSettings>
  <MSTest>
    <SettingsFile>my.testsettings</SettingsFile> 
    <ForcedLegacyMode>true</ForcedLegacyMode> 
  </MSTest>
</RunSettings>

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

Weitere Ressourcen

Angeben von Testeinstellungen für Visual Studio-Tests