2013-08-29 5 views
23

Meine Lösung ist mit Projekten namens "ProjectName" mit "ProjectName" eingerichtet. Tests enthalten meine Komponententests. Ich möchte die Testprojekte von der Code-Coverage-Analyse unter VS 2012 (MS Test) ausschließen und es erfolgreich geschafft haben, das ExcludeFromCodeCoverage Attribut zu jeder Testklasse wie beschrieben here hinzuzufügen.Ausschließen von Projekten mit Namen, die mit ".Test" enden, aus meiner Codedeckungsanalyse in VS2012 Komponententests

Da die Anzahl der Testklassen zunimmt, wäre es nett, die gesamten Test Assemblies auszuschließen. Ich möchte die .runsettings-Datei verwenden, die auch in diesem MSDN-Link beschrieben wird, scheint aber kein Glück zu haben.

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> 

Diese Leere Ergebnisse ergibt sich für Codeabdeckung erzeugt, wenn ich den ganzen <Exclude> Block Kommentar I Code-Abdeckung über die gesamte Lösung Projekte einschließlich der Tests erhalten (Wie erwartet, wollte ich nur sicherstellen, dass das Hinzufügen der runSettings-Datei selbst keine Probleme verursachte).

Ich habe versucht, das Hinzufügen in:

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

Aber noch einmal, ich leer Ergebnisse erhalten. Ich hatte den Eindruck, dass ein leerer (oder nicht vorhandener) Include-Block standardmäßig enthält, es sei denn, entspricht dem Block "Ausschließen", also glaube ich nicht, dass dies unbedingt erforderlich ist.

Kann mir jemand in die richtige Richtung zeigen? Ich sehe von this other question, dass ich nicht allein bin, um Tests auszuschließen, aber ich würde es gerne auf Assembly-Ebene tun und MSDN scheint zu suggerieren, dass ich kann.

+0

arbeiten Ist das ein Betrogene von http://stackoverflow.com/questions/14458246/visual -studio-2012-runsettings-to-exclude-assemblies-from-code-coverage verwenden? rq = 1? – stackman

+0

@stackman Nein, ich denke nicht, dass es ist, verwende ich eine viel einfachere runsettings Datei es die genau gleichen Pfad Zeichenfolgen von der MSDN vorgeschlagen. – Dutts

+0

haben Sie tatsächlich versucht, ... und ... gleichzeitig zu verwenden? –

Antwort

36

Es gibt eine Verbindung mit der Periodenausgabe, wie sie here erwähnt wurde. Wenn Sie den Abschnitt dieses

<ModulePath>.*tests.dll</ModulePath> 
<ModulePath>.*Tests.dll</ModulePath> 

oder diese

<ModulePath>.*\.tests\..*</ModulePath> 
<ModulePath>.*\.Tests\..*</ModulePath> 

ausschließen ändern werde es

+0

Vielen Dank, das ist genau das, was ich suchte. – Dutts

Verwandte Themen