2013-08-29 11 views
23

Moje rozwiązanie jest skonfigurowane z projektami o nazwie "ProjectName" z "ProjectName". Testy zawierające moje testy jednostkowe. Chciałbym wykluczyć projekty testowe z analizy zasięgu kodu w VS 2012 (test MS) iz powodzeniem udało się to zrobić, dodając atrybut ExcludeFromCodeCoverage do każdej klasy testowej zgodnie z opisem here.Jak wykluczyć Projekty o nazwach kończących się na ".Test" z mojej analizy zasięgu kodu w VS2012 Testy jednostek

Ponieważ liczba klas testów rośnie, dobrze byłoby wykluczyć całe zestawy testowe. Chcę użyć pliku .runsettings opisanego również w tym łączu MSDN, ale wydaje się, że nie ma szczęścia.

Oto mój plik .runsettings:

<?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> 

Powoduje Puste wyników generowanych przez Code Coverage, jeśli I ustosunkowania się cały <Exclude> blok uzyskać pokrycia kodu we wszystkich projektach roztworze w tym badań (zgodnie z oczekiwaniami chciałem się upewnić, że dodanie pliku runSettings nie spowodowało problemów.

Próbowałem dodając:

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

Ale znowu, mam wynik pusty. Miałem wrażenie, że pusty (lub nieistniejący) blok zawiera wszystko domyślnie , chyba że pasuje do bloku Wykluczenie, więc nie sądzę, że jest to ściśle wymagane.

Czy ktoś może wskazać mi właściwy kierunek? Widzę od this other question, że nie jestem sam w próbie wykluczenia testów, ale chciałbym to zrobić na poziomie zespołu i MSDN wydaje się sugerować, że mogę.

+0

Czy to dupe od http://stackoverflow.com/questions/14458246/visual -studio-2012-using-runsettings-to-exclude-assemblies-from-code-coverage? rq = 1? – stackman

+0

@stackman Nie, nie sądzę, że jest, używam znacznie prostszego pliku runsettings w tym samym łańcuchu znaków sugerowanym przez MSDN. – Dutts

+0

Czy próbowałeś używać ... i ... w tym samym czasie? –

Odpowiedz

36

Istnieje powiązanie z emisją okresową, o której wspomniano here. Jeżeli zmienisz punkt wyłączenia tego

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

czy to

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

to uda

+0

Wielkie dzięki, właśnie to było po. – Dutts

Powiązane problemy