Не удается заставить HtmlReportPlugin работать в CruiseControl.NET
Я пытаюсь использовать HTML-отчеты, созданные моими модульными тестами, чтобы показать в CruiseControl.NET приборная панель, но я не знаю, где я ее накручиваю.
Мой отчет сгенерирован в "CCNetWorkingDirectory". В моем " CCNet.файл config " я использую задачу слияния файлов для копирования отчета в мой "CCNetArtifactDirectory". Это шаг, который не работает. Я пробовал это разными способами. У меня есть:
<publishers>
<merge>
<files>
<file>
Index.html
</file>
<file action="Copy">
repIndex.html
</file>
</files>
</merge>
<xmllogger/>
</publishers>
Какими должны быть пути в моем конфигурационном файле? Мой построение прерывается с сообщением:
Я действительно не знаю, что делаю не так."Невыполненные Задачи: MergeFilesTask"
2 ответа:
Я наконец-то решил эту проблему.
В моей ccnet.файл config в узле publishers я должен скопировать отчет.html вот такой:
<publishers> <merge> <files> <file action="Copy">PathToWorkingDirectory\report.html</file> </files> </merge> <xmllogger /> <artifactcleanup cleanUpMethod="KeepLastXBuilds" cleanUpValue="50" /> </publishers>
Файл будет скопирован в каталог артефактов в папку с именем, подобным метке сборки. Это должно быть сделано по соображениям безопасности:
Расположение источника HTML
Этот плагин может отображать любой файл, который находится в папке сборки в папке артефактов для проекта. Он не может отображать файлы из любого другое место (по соображениям безопасности).Чтобы отобразить HTML-отчет, вам просто нужно добавить эту строку на панель мониторинга .config :
<htmlReportPlugin description="HRMLReport" actionName="htmlreport" htmlFileName="report.html" />
Эта строка должна быть помещена под узлом buildPlugins.
<buildPlugins> <buildReportBuildPlugin> <xslFileNames> <xslFile>xsl\header.xsl</xslFile> <xslFile>xsl\modifications.xsl</xslFile> </xslFileNames> </buildReportBuildPlugin> <buildLogBuildPlugin disableHighlightingWhenLogExceedsKB="50"/> <htmlReportPlugin description="HRMLReport" actionName="htmlreport" htmlFileName="report.html" /> </buildPlugins>
После выполнения этих шагов ваш отчет должен отобразиться, если вы перейдете на панели мониторинга к сборке, которая генерирует файл. Там должна быть ссылка под названием HTMLReport .
Быстрая Версия:
Обратите внимание на все примеры по адресу:
Http://www.cruisecontrolnet.org/projects/ccnet/wiki/File_Merge_Task
Являются "*.XML-файл.
<merge> <files> <file>Nunit*.xml</file> <file>FXCop.xml</file> <file>resources\**\*.xml</file> <file>E:\CruiseControl\BuildRoot\ProjectX\**\coderesults.xml</file> <file>E:\CruiseControl\BuildRoot\Project*\**\Business*.xml</file> </files> </merge>
Вам нужно слиться .xml - нет .htm (l).
Более Длинная Версия:
Задача слияния объединяет ~xml.
Всякий раз, когда есть сборка, есть "MyBuildResults.xml "файл, который я называю"супер-xml".
Если у вас есть инструмент (например, NUnit(консоль).exe например), что инструмент будет выталкивать файл, " NUnitTestResults.XML".
CruiseControl.NET задача слияния будет тогда принимать "NUnitTestResults.xml "(оперативная вещь, это XML) и "слияние" этого в MyBuildResults.xml (опять же, XML).
В этом есть смысл. Вы можете объединить XML с другими XML. Как вы можете взять любой файл и объединить его в любой файл, включая an .HTML-файл. Если вы объединяете HTML, что происходит в первую очередь? Последний? Середина?
Теперь, когда у вас есть окончательный " MyBuildResults.xml", есть .XSL файлы, которые преобразуют это в .html, который появляется в CruiseControl.NET веб-страница проекта.
Вы заметите связку ссылок (слева) на CruiseControl.NET веб-страница...один из них - "результаты теста Нунит". Но из коробки, Если вы нажмете на нее, ничего не появится.
Это потому, что нет NUnitTestResults.формата XML "сливаются в" супер-строить XML-файл.
Если вы найдете .xsl файлы, которые CruiseControl.NET устанавливает для вас (или вы установили после факт), взгляните на те, что покажут вам, как это делается .xsl-преобразования XML-коде "супер-строить-в XML".