2009-07-28 3 views
1

Я знаю, что проблема Хадсона против CC была избита (обсуждена) до смерти, но у меня возник бы вопрос под другим углом: какой из них (или, возможно, совершенно другой продукт CI) подходит для устаревшего проекта ?Непрерывная интеграция для Java с поддержкой старого проекта?

В чем бы я нуждался, это возможность отфильтровывать проблемы до определенной даты. Некоторые примеры, которые мы надеемся сделать это более наглядные:

  • Unit-тесты без вести классов старше X не следует сообщать (или даже лучше, сообщили в отдельном поле и должны привести к сборке сломать)
  • Bugs найден статический анализатор (FindBugs, например) в коде старше X следует сообщать (или, как указано выше - сообщаться отдельно/не должны нарушать сборку)

рассуждение: это неосуществимо ожидать, что люди будут прекратите любое развитие, которое они делают, только ради создания 100% -ного охвата тестировками и исправления/анализа всех ошибок d от FindBugs. Гораздо более приемлемым решением было бы обеспечить отсутствие проблем и что исторические классы разрешаются, когда кто-то их касается. Я хотел бы, чтобы какой-то продукт/проект генерировал соответствующие отчеты/предупреждения для этой ситуации.

Есть ли общее или предварительно сконфигурированное решение, подобное этому, или мне нужно его построить с нуля (добавление пользовательских плагинов для одного из существующих решений CI, например)?

+0

Не является ли смысл использования инструмента CI для обеспечения сохранения старых функций? Разве этот сценарий не закончил бы старый разрыв функции, но не сообщил? – Jesse

+0

Надеюсь, нет. Разумеется, нарушение строит будет рассматриваться очень серьезно, независимо от того, где произошел поломка, и есть также правило «добавить единичные тесты для кода, который вы касаетесь», что, надеюсь, поможет. –

ответ

1

Я большой поклонник The Continuous Integration Game plugin для Hudson, поскольку он способствует использованию findbugs, добавлению и исправлению javadoc и исправлению любых предупреждений, которые вы получаете. Вы также можете настроить его, чтобы дать очки для новых модульных тестов.

Я установил это для нескольких устаревших кодовых баз, некоторые из них - качающиеся приложения, написанные для jdk1.3. Наличие системы подсчета очков для улучшения старого кода похоже на наличие собственного SO для вашей команды разработчиков.

+0

Плагин игры CI выглядит очень перспективным! Спасибо за подсказку, я попробую. –

2

Для той же задачи подхода я принял это:

Хадсон просто делает сборку и запускает модульные тесты. Он не сообщает о охвате, качестве кода и т. Д.

Sonar затем используется для сбора и отображения показателей кода. Сонар может легко видеть разбивку показателей на упаковку. Таким образом, с соглашением об именах легко понять, старый ли код и имеет меньшую цель для покрытия кода, findbugs и т. Д.

Важно отметить, что он также имеет очень хорошие показатели тенденций, поэтому независимо от того, старый или новый код вы может видеть, идут ли метрики в правильном направлении. Во многом это ключевой момент - его направление имеет значение!