2014-10-21 11 views
5

Ich möchte NUnit auf TeamCity ausführen und einen Bericht mit dotCover generieren. Aber aus irgendwelchen Gründen kann ich den Deckungsbericht nicht für alle meine Projektgruppen erhalten.TeamCity mit dotCover enthält nicht alle meine Assemblys im Abdeckungsbericht

Teamcity Config wie unten

Teamcity: 6.5.3 
NUnit: 2.5.10 
.NET Runtime: Platform: x86 
.NET Runtime: Version: v4.0 
dotCover: bundled with TC not customized 

Ich habe überprüft, dass alle *.dll *.xml *.pdb Dateien im Verzeichnis gibt es wie unten erwartet (Referenz DLLs sind nicht aufgeführt)

MY.PROJECT.A.dll 
MY.PROJECT.A.pdb 
MY.PROJECT.A.xml 
MY.PROJECT.B.dll 
MY.PROJECT.B.pdb 
MY.PROJECT.B.xml 
MY.PROJECT.C.dll 
MY.PROJECT.C.pdb 
MY.PROJECT.C.xml 
MY.PROJECT.Test.dll 
MY.PROJECT.Test.pdb 
MY.PROJECT.Test.xml 

MY.PROJECT.Test .dll wird mit NUnit ausgeführt, und diese Assembly wird im Abdeckungsbericht mit dem Filter * Test * ausgeschlossen. Aber nur MY.PROJECT.A ist im dotCover-Coverage-Bericht enthalten, während MY.PROJECT.B und nicht enthalten sind.

Ich habe das Protokoll überprüft, aber kein Fehler gefunden.

Alle Gedanken werden sehr geschätzt.

Antwort

4

Schließlich habe ich herausgefunden, was vor sich geht, und hoffe, diese Antwort ist nützlich für diejenigen, die immer noch mit diesem oder einem ähnlichen Problem kämpfen.

Grundsätzlich enthält dotCover nur solche Baugruppen, die tatsächlich sind (genauer gesagt, die von CLR geladenen Baugruppen) durch die Tests im Code Coverage Report.

In meinem Fall wird nur von Tests verwendet, MY.PROJECT.B und werden aufgrund externer Abhängigkeiten nicht von Tests verwendet. und sogar mit using MY.PROJECT.B Direktiven in den Tests zählt es nicht als CLR-Lazy-Laden.

Eine Abhilfe Dummy 0% Deckung Bericht für diese beiden Baugruppen zu zeigen, ist entweder, dass alles, was in der Versammlung in den Tests verwenden oder Kraftbelastung diese Baugruppen durch System.Reflection.Assembly.Load("MY.PROJECT.B")

Verwandte Frage zu stellen: