Интеграция PartCover.NET с NAnt
Я пытаюсь интегрировать PartCover.NET с NAnt и CruiseControl.NET. Я могу без проблем запустить браузер PartCover.NET, но он не работает, когда я пытаюсь запустить его в задаче NAnt (в моей сборке CCNET).
Должна быть проблема с моей целью NAnt, но я не могу ее найти. Может быть, кто-то испытывал те же проблемы в прошлом?
<target name="CoverageUnitTest" description="Code coverage of unit tests">
<exec program="${PartCover.exe}">
<arg value="--target=${NUnit.console}" />
<arg value="--target-work-dir=${project.dir}\bin\${configuration}"/>
<arg value="--target-args=${project}.dll" />
<arg value="--output=C:\partcover.xml" />
<arg value="--include=[*]*" />
</exec>
</target>
В CruiseControl я получил следующее сообщение об ошибке: [exec] Неверная опция '--target C:\NUnit\bin\nunit-console.exe'
Build Error: NAnt.Core.BuildException
External Program Failed: C:\PartCover\PartCover.exe (return code was -1)
in C:\default.build line: 20 col: 4
at NAnt.Core.Tasks.ExternalProgramBase.ExecuteTask()
at NAnt.Core.Tasks.ExecTask.ExecuteTask()
at NAnt.Core.Task.Execute()
at NAnt.Core.Target.Execute()
at NAnt.Core.Project.Execute(String targetName, Boolean forceDependencies)
at NAnt.Core.Project.Execute()
at NAnt.Core.Project.Run()
Спасибо! Дэвид
2 ответа
Замените = пробелом и используйте "; маркер вокруг параметров для аргументов
Как вы могли заметить, эта задача довольно сложная. Это довело меня до безумия, но наконец я запустил его.
Вот несколько общих советов:
используйте PartCover версии 2.2 вместо 2.3, поскольку последняя является версией dev, которая кажется нестабильной.
не забудьте зарегистрировать PartCover.CorDriver.dll.
Передача аргументов - самая сложная часть, если вам нужно процитировать пути. Я наконец решил использовать файл конфигурации и передать его через
--settings
,