Решено: проверьте рабочую конфигурацию в конце этого вопроса
Я пытаюсь настроить 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 what?: покрытие тестами NUnit.
- Команда:
C:\Program Files (x86)\NUnit 2.5.4\bin\net-2.0\nunit-console.exe
- Command arguments:
LVK.IoC.Tests.dll /noshadow /framework:4.0.30319 /process=single /nothread
- Note: I've tried with and without the
/process
and/nothread
options
- Note: I've tried with and without the
- Рабочий каталог:
%FBPROJECTDIR%\LVK.IoC.Tests\bin\Debug
- List of assemblies to profile:
%FBPROJECTDIR%\LVK.IoC.Tests\bin\Debug\LVK.IoC.dll
- Note: I've tried just listing the name of the assembly, both with and without the extension.
Документация для шага FB не помогает, так как в ней перечислены только второстепенные предложения для каждого свойства и отсутствуют примеры или подсказки по устранению неполадок.
Поскольку я хочу перенести результаты покрытия в NDepend для выполнения анализа во время сборки, я хочу, чтобы этот файл содержал нужную мне информацию.
Я также использую TestDriven, и если я щелкну правой кнопкой мыши файл решения и выберу «Test with 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: авто (MSIL), версия: 4.0
- Запускать тесты из: ** \ bin \ Debug * Tests.dll