2014-10-21 1 views
5

Я хочу запустить NUnit на TeamCity и сгенерировать отчет с помощью dotCover. Но по некоторым причинам я не могу получить отчет о покрытии для всех своих проектов.TeamCity с dotCover не включает все мои сборки в отчете о покрытии

TeamCity конфигурации, как показано ниже

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

Я проверил, что все *.dll *.xml *.pdb файлы есть в каталоге, как и ожидалось, как показано ниже (ссылки на библиотеки DLL, которые не перечислены)

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 выполняется с помощью NUnit, и эта сборка исключается в отчете о покрытии с помощью * Test * filter. Но только MY.PROJECT.A находится в отчете о покрытии dotCover, тогда как MY.PROJECT.B и MY.PROJECT.C не включены.

Я проверил журнал, но не найдена ошибка.

Любые мысли очень ценятся.

ответ

4

Наконец, я понял, что происходит, и надеюсь, что этот ответ полезен тем, кто все еще борется с этой или подобной проблемой.

В принципе, dotCover включает только те сборки, которые на самом деле используются (точнее, те сборки, которые были загружены CLR) в тестах в отчете о покрытии кода.

В моем случае, только MY.PROJECT.A используется в тестах, MY.PROJECT.B и MY.PROJECT.C не используются испытаниями из-за внешних зависимостей. и даже с директивами using MY.PROJECT.B в тестах, это не считается ленивой загрузкой CLR.

Один манекен Обойти показать отчет покрытия 0% для этих двух сборок, которые либо использовать что-либо в сборке в тестах, или сила загрузки этих сборок по телефону System.Reflection.Assembly.Load("MY.PROJECT.B")

Связанные вопрос: