Запуск NUnit через NCover с NANT - PullRequest
3 голосов
/ 01 ноября 2011

Мои модульные тесты выполняются и отчеты пишутся, однако отчеты о покрытии пусты. Это задача Нанта, которую я использую:

<target name="unitTests">
    <foreach item="File" property="filename">
        <in>
            <items>
                <include name="**\UnitTestBinaries\*.UnitTests.*.dll"></include>
            </items>
        </in>
        <do>
            <exec program="${ncover-console}" 
                  workingdir="${path::get-directory-name(filename)}" 
                  commandline="&quot;${nunit-console}&quot; ${filename} /xml:${project::get-base-directory()}\_nunit_${path::get-file-name-without-extension(filename)}.xml /nologo //x ${project::get-base-directory()}\_ncover_${path::get-file-name-without-extension(filename)}.xml" 
                  failonerror="true"
                  verbose="true"/>
        </do>
    </foreach>
</target>

Есть идеи, почему я не получаю данные о покрытии? Есть ли более простой способ достичь этого шага?

Спасибо за любую помощь.

Edit:

Это пример выходного файла:

<!-- saved from NCover 3.0 Export url='http://www.ncover.com/' -->
<coverage profilerVersion="3.3.0.6070" driverVersion="3.3.0" exportversion="3" viewdisplayname="" startTime="2011-10-31T23:27:33.3688015Z" measureTime="2011-10-31T23:27:36.1420615Z" projectName="" buildid="d3a76074-bb16-4677-8273-91c7b6552066" coveragenodeid="0" failed="false" satisfactorybranchthreshold="95" satisfactorycoveragethreshold="95" satisfactorycyclomaticcomplexitythreshold="20" satisfactoryfunctionthreshold="80" satisfactoryunvisitedsequencepoints="10" uiviewtype="TreeView" viewguid="C:\_documents\CI\_ncover_XTFL.UnitTests.Core.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>

Редактировать II:

Это пример вывода buildlog (отредактирован для безопасности):

<task name="ncover">

                <message level="Info"><![CDATA[Command: C:\Program Files\NUnit 2.5.10\bin\net-2.0\nunit-console.exe]]></message>
                <message level="Info"><![CDATA[Command Args: C:\_documents\CI\Working\UnitTestBinaries\XTFL.UnitTests.Workflow.dll /xml:C:\_documents\CI\_nunit_XTFL.UnitTests.Workflow.xml /nologo /noshadow]]></message>
                <message level="Info"><![CDATA[Working Directory:]]></message>
                <message level="Info"><![CDATA[Assemblies: (All Loaded Assemblies)]]></message>
                <message level="Info"><![CDATA[******************* Program Output *******************]]></message>
                <message level="Info"><![CDATA[ProcessModel: Default    DomainUsage: Single]]></message>
                <message level="Info"><![CDATA[Execution Runtime: Default]]></message>
                <message level="Info"><![CDATA[..........]]></message>
                <message level="Info"><![CDATA[Tests run: 10, Errors: 0, Failures: 0, Inconclusive: 0, Time: 0.9677115 seconds]]></message>
                <message level="Info"><![CDATA[Not run: 0, Invalid: 0, Ignored: 0, Skipped: 0]]></message>
                <message level="Info"><![CDATA[***************** End Program Output *****************]]></message>
                <message level="Info"><![CDATA[Execution Time: 2.8983 s]]></message>
                <message level="Info"><![CDATA[Coverage Xml: C:\_documents\CI\_ncover_XTFL.UnitTests.Workflow.xml]]></message>
                <duration>3278.1105000000002</duration>
              </task>

Ответы [ 3 ]

1 голос
/ 02 ноября 2011

Я помню, что у меня была похожая проблема.Вы размещаете связанные файлы .pdb помимо файлов сборки?Это решило это для меня.

1 голос
/ 01 ноября 2011

Если ваша лицензия NCover позволяет, рекомендуем обновить ее до 3.4.18.

На основании одних сообщений похоже, что профилирование никогда не начинается в вашем процессе NUnit.

Я не вижу точного синтаксиса командной строки из задачи NAnt, но NCover должен запустить NUnit для профилирования DLL модульного теста.

Если NCover успешно запускает NUnit, после «Вывод программы» должно появиться сообщение «Процесс« nunit-agent »[PID 3116] начал профилирование» до результатов теста NUnit, и другое ».после результатов появляется сообщение о том, что «nunit-agent» [PID 3116] завершил профилирование ».

0 голосов
/ 02 ноября 2011

Это хороший совет: файлы PDB, но даже без них вы должны получить покрытие Branch, хотя вы не получите никаких символов.

...