Как увидеть элементы, встроенные / прикрепленные к моему журналу испытаний Gallio в CruiseControl.NET? - PullRequest
1 голос
/ 25 мая 2010

Я могу использовать следующий код, чтобы прикрепить файл журнала к моему протоколу приемочных испытаний Gallio 3.2:

TestLog.AttachPlainText("Attached log file", File.ReadAllText(path));

Когда я запускаю свои тесты локально, я вижу содержимое файла журнала, просматривая отчет в своем веб-браузере. Итак, я хочу иметь возможность просматривать вложения в CCNET. У меня есть проект CCNET, на котором запущен MsBuild, который создает журнал испытаний (Regression.Acceptance.tests.xml) и вложения (которые расположены в папке Regression.Acceptance.tests). Я вижу, что они существуют после того, как CCNET запускает сборку.

Я добавил следующее, чтобы объединить результаты и вложенные файлы в журнал сборки:

<merge>
    <files>
        <file>Source\Reports\Regression.Acceptance.tests.xml</file>
        <file action="Copy">Source\Reports\Regression.Acceptance.tests</file>
    </files>
</merge>

Если я смотрю журнал сервера CCNET, я вижу следующую строку, где он сливается в результатах теста:

2010-05-26 13:39:36,359 [DashboardAcceptanceTests:INFO] Merging file 'Regression.Acceptance.tests.xml'

Но там нет упоминания о папке вложений, и если я смотрю в папку артефактов, я вижу объединенный журнал сборки, но папки с вложениями нет, и я получаю следующую ошибку при попытке перейти к прикрепленный файл в отчете через веб-панель:

Exception Message

The attachment was not inlined into the XML report.

Exception Full Details

System.InvalidOperationException: The attachment was not inlined into the XML report.
   at CCNet.Gallio.WebDashboard.Plugin.GallioAttachmentBuildAction.CreateResponseFromAttachment(XPathNavigator attachmentNavigator)
   at CCNet.Gallio.WebDashboard.Plugin.GallioAttachmentBuildAction.Execute(ICruiseRequest cruiseRequest)
   at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ServerCheckingProxyAction.Execute(ICruiseRequest cruiseRequest)
   at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.BuildCheckingProxyAction.Execute(ICruiseRequest cruiseRequest)
   at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ProjectCheckingProxyAction.Execute(ICruiseRequest cruiseRequest)
   at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.CruiseActionProxyAction.Execute(IRequest request)
   at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.CachingActionProxy.Execute(IRequest request)
   at ThoughtWorks.CruiseControl.WebDashboard.MVC.Cruise.ExceptionCatchingActionProxy.Execute(IRequest request)

Я получаю аналогичные результаты, когда пытаюсь внедрить файл вместо:

TestLog.EmbedPlainText("Embedded log file", File.ReadAllText(path));

Можно ли заставить это работать? Насколько я понимаю, структура каталога в папке Regression.Acceptance.tests должна быть сохранена при копировании с помощью задачи merge, но документация немного расплывчата, и у меня нет ничего, чтобы сделать что-либо еще!

...