Ausschließen von Projekten mit Namen, die auf „.Test“ enden, aus meiner Code-Coverage-Analyse in VS2012-Komponententests

Meine Lösung besteht aus Projekten mit dem Namen "Projektname" und "Projektname". Tests, die meine Komponententests enthalten. Ich möchte die Testprojekte von der Codeabdeckungsanalyse unter VS 2012 (MS Test) ausschließen und habe dies durch Hinzufügen der erfolgreich geschafftExcludeFromCodeCoverage Attribut für jede Testklasse wie beschriebenHier.

Da die Anzahl der Testklassen zunimmt, wäre es hilfreich, die gesamten Testassemblys auszuschließen. Ich möchte die .runsettings-Datei verwenden, die auch in diesem MSDN-Link beschrieben ist, habe aber anscheinend kein Glück.

Hier ist meine .runsettings-Datei:

<?xml version="1.0" encoding="utf-8"?>
<RunSettings>
  <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>.*tests.*</ModulePath>
                <ModulePath>.*Tests.*</ModulePath>>
              </Exclude>
            </ModulePaths>
          </CodeCoverage>
        </Configuration>
      </DataCollector>
    </DataCollectors>
  </DataCollectionRunSettings>
</RunSettings>

Dies führt zu leeren Ergebnissen, die für die Codeabdeckung generiert werden, wenn ich das Ganze auskommentiere<Exclude> Block Ich erhalte Codeabdeckung für alle Projekte der Lösung, einschließlich der Tests (wie erwartet wollte ich nur sicherstellen, dass das Hinzufügen der runSettings-Datei selbst keine Probleme verursacht).

Ich habe versucht hinzuzufügen:

<Include>
  <ModulePath>.*\.dll
<Include>
  <ModulePath>.*\.dll$</ModulePath>
  <ModulePath>.*\.exe$</ModulePath>
</Include>
lt;/ModulePath> <ModulePath>.*\.exe
<Include>
  <ModulePath>.*\.dll$</ModulePath>
  <ModulePath>.*\.exe$</ModulePath>
</Include>
lt;/ModulePath> </Include>

Aber ich bekomme wieder leere Ergebnisse. Ich hatte den Eindruck, dass ein leerer (oder nicht vorhandener) Include-Block standardmäßig alles enthältes sei denn Entspricht dem Exclude-Block, daher denke ich nicht, dass dies unbedingt erforderlich ist.

Kann mich jemand in die richtige Richtung weisen? Ich sehe ausdiese andere Frage dass ich nicht alleine bin, wenn ich versuche, Tests auszuschließen, aber ich würde es gerne auf Baugruppenebene machen undMSDN scheint darauf hinzudeuten, dass ich kann.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage