2010-02-08 4 views
1

Я настраиваю систему сборки и хотел бы показать, какая задача завершила сборку в разделе «Отчет проекта» на панели управления и в электронной почте с ошибкой сборки.Отчет о неудавшейся задаче в CruiseControl.NET

На данный момент у меня есть три задачи:

  • SourceControl
  • MsBuild
  • Юнит-тесты (с использованием gallio.echo из CC.Net EXEC задачи)

Если какая-либо из последние два не могут быть очевидны из электронной почты или страницы отчета о сбое, задача которой не удалась. Мне нужно пройти через журналы, чтобы выяснить, где произошла ошибка. Я хотел бы хотя бы знать, с какой задачей не справился первый взгляд.

Вот лучший CruiseControl делает - в приборной панели домашней странице:

msbuild fail http://img38.imageshack.us/img38/1018/msbuildfail.png alt text http://img25.imageshack.us/img25/4688/galliofail.png

Теперь, это не достаточно:

  1. Неисправный задача не отображается при нажатии кнопки в проекте или в отчете о сборке для этой сборки.

  2. Эта информация вообще отсутствует в файле журнала. Это означает, что я не могу принять событие в электронном письме, взломав XSL.

  3. Поскольку моя задача сборки будет единственной задачей MSBuild, это нормально, что ее можно назвать MSBuildTask. Это не относится к исполняемым задачам, так как у меня будет хотя бы один или два, которые могут потерпеть неудачу. Мне нужно дать им описательные имена. У моей Gallio exec задача есть узел описания, но я не уверен, где он будет использоваться.

    <exec>
    <description>Unit Tests</description>
    <executable>$(path.gallio)</executable>
    </exec>

ответ

1

Не изящное решение, но вы можете использовать атрибут OnError для цели, чтобы зарегистрировать что-то, даже если оно должно быть несколько статическим. Другой вариант - записать каждый успешный шаг, а затем использовать XSL last(), чтобы получить последний успешный шаг. Это отстой, но это по крайней мере больше, чем было раньше.

+0

Прохладный, я постараюсь дать это. –

0

Мне кажется, что вы не сливаясь вывод MSBuild и Gallio задач. Я не помню правильного синтаксиса с верхней части головы (и сайт CruiseControl.NET, похоже, не работает), но если вы разместите свой файл конфигурации, я могу вам помочь.

+0

Да, журналы объединяются, это делается в разделе 'publishers' перед узлом' xmllogger'. Все вещи из msbuild и задачи gallio попадают в файл журнала, просто CruiseControl ничего не делает. –

3

Я один из разработчиков ccnet. вопрос был зарегистрирован. http://jira.public.thoughtworks.org/browse/CCNET-1825

+0

Это здорово, спасибо за это. –

+0

вопрос был решен. возьмите сборку с 6910 или выше. вы увидите описание задачи на панели инструментов и cctray. если есть какие-либо другие потребности, не стесняйтесь обращаться к нам. http://groups.google.com/group/ccnet-user http://groups.google.com/group/ccnet-devel – Williams