Настройка NCover для NUnit в FinalBuilder
Решено: Посмотрите в нижней части этого вопроса для рабочей конфигурации
Я пытаюсь настроить NCover для использования в моем проекте FinalBuilder для проекта.NET 4.0 C#, но мой окончательный выходной файл покрытия не содержит данных покрытия.
Я использую:
Все инструменты являются последними официальными на сегодня.
Наконец-то мне удалось убедить FB запустить мои модульные тесты под NCover для проекта.NET 4.0, и я получил Tests run: 184, ...
, что правильно.
Тем не менее, финал Coverage.xml
Вывод файла из NCover практически пуст и выглядит так:
<?xml version="1.0" encoding="utf-8"?>
<!-- saved from NCover 3.0 Export url='http://www.ncover.com/' -->
<coverage profilerVersion="3.3.2.6211" driverVersion="3.3.2" exportversion="3" viewdisplayname="" startTime="2010-04-22T08:55:33.7471316Z" measureTime="2010-04-22T08:55:35.3462915Z" projectName="" buildid="27c78ffa-c636-4002-a901-3211a0850b99" coveragenodeid="0" failed="false" satisfactorybranchthreshold="95" satisfactorycoveragethreshold="95" satisfactorycyclomaticcomplexitythreshold="20" satisfactoryfunctionthreshold="80" satisfactoryunvisitedsequencepoints="10" uiviewtype="TreeView" viewguid="C:\Dev\VS.NET\LVK.IoC\LVK.IoC.Tests\bin\Debug\Coverage.xml" viewfilterstyle="None" viewreportstyle="SequencePointCoveragePercentage" viewsortstyle="Name">
<rebasedpaths />
<filters />
<documents>
<doc id="0" excluded="false" url="None" cs="" csa="00000000-0000-0000-0000-000000000000" om="0" nid="0" />
</documents>
</coverage>
Выходные данные в журнале FB:
...
***************** End Program Output *****************
Execution Time: 1,5992 s
Coverage Xml: C:\Dev\VS.NET\LVK.IoC\LVK.IoC.Tests\bin\Debug\Coverage.xml
NCover Success
Моя конфигурация шага FB для NCover:
- NCover что?: Тестовое покрытие NUnit
- Команда:
C:\Program Files (x86)\NUnit 2.5.4\bin\net-2.0\nunit-console.exe
- Аргументы команды:
LVK.IoC.Tests.dll /noshadow /framework:4.0.30319 /process=single /nothread
- Примечание: я пробовал с и без
/process
а также/nothread
опции
- Примечание: я пробовал с и без
- Рабочий каталог:
%FBPROJECTDIR%\LVK.IoC.Tests\bin\Debug
- Список сборок для профиля:
%FBPROJECTDIR%\LVK.IoC.Tests\bin\Debug\LVK.IoC.dll
- Примечание: я попытался просто перечислить название сборки, как с расширением, так и без него.
Документация для шага FB не помогает, так как она перечисляет только второстепенные предложения для каждого свойства и не дает примеров или подсказок по устранению неполадок.
Поскольку я хочу перенести результаты покрытия в NDepend для запуска анализа во время сборки, я хочу, чтобы этот файл содержал необходимую мне информацию.
Я также использую TestDriven, и если я щелкну правой кнопкой мыши по файлу решения и выберу "Тестировать с NCover", откроется NCover-explorer с данными покрытия, и если я попрошу его показать мне папку с файлами покрытия, в ней появится XML-файл с той же структурой, что и выше, только со всеми данными, которые должны быть там, так что инструменты, которые у меня есть, несомненно, способны его создать.
Кто-нибудь знает, что я здесь неправильно настроил?
Решено: Следующая конфигурация наконец-то сработала для меня. Он выдает базовую статистику покрытия кода на начальной странице результатов сборки со ссылкой на подробный отчет со всем.
Поскольку я называю свои проекты модульных тестов такими же, как и проекты, которые они тестируют, только с суффиксом.Tests, я исключил их из покрытия кода. Кроме того, мне пришлось специально включать только мои собственные сборки (которые начинаются с LVK.), В противном случае я получал бы некоторые сборки, загружаемые бегуном TeamCity, что немного повлияло на мою статистику покрытия.
Сначала я установил последнюю версию инструментов (на момент редактирования):
- NCover 3.4.8
- TeamCity 5.1.2
- NUnit 2.5.5
Конфигурация на экране сборки в TeamCity выглядит следующим образом:
- Цели: перестроить
- Конфигурация: отладка
- Платформа: Любой процессор
- Инструмент покрытия.NET: NCover (3.x)
- .NET Runtime:.NET Framework 4.0, версия: собственная
- Путь к NCover 3: %system.ncover.v3.x64.path% (это 64-разрядная версия Windows 2008 Server R2)
Дополнительные аргументы NCover:
//ias LVK.* //eas .*Tests //eas LVK\.CodeQuality //ea LVK\.CodeQuality\.IgnoreCodeCoverageAttribute
Дополнительные аргументы отчетности NCover:
//or FullCoverageReport:Html:{teamcity.report.path}
NUnit Runner: NUnit 2.5.5
- Платформа.NET Runtime: автоматическая (MSIL), версия: 4.0
- Запускать тесты из: **\bin\Debug*Tests.dll
2 ответа
Насколько я знаю, NCover не способен покрывать тесты для.NET 4.0. Они объявили о новой версии для.NET 4.0, но ее пока нет.
Найти информацию по теме здесь. Лично у меня нет опыта с этой задачей...
Обновление: они выпустили NCover 3.4 с поддержкой.NET 4.0. Возможно, Вы попробуете.
Я нашел ваш ответ из этой темы: NUnit не выполняет код Visual Studio 2010
В файл nunit-console-x86.exe.config, в разделе <configuration>
добавлять:
<startup>
<requiredRuntime version="v4.0.30319" />
</startup>
Под <runtime>
добавлять
<loadFromRemoteSources enabled="true" />
Исправил это для меня. Я использую TeamCity, а не FinalBuilder, хотя.
Я также использую NCover 3.4.