#teamcity #fxcop
#teamcity #fxcop
Вопрос:
В моей конфигурации сборки есть два шага сборки: запуск сборки Visual Studio (sln), за которым следует запуск сборки FxCop. Я использую TeamCity 6.0.1 и FxCop 10.0.
Изначально программа FxCop runner в TeamCity, похоже, сообщает только о нарушениях правил и выдает отчет на вкладке Проверка кода. Я хочу убедиться, что в случае возникновения какого-либо нарушения этап сборки завершается неудачей и, таким образом, приводит к сбою всей сборки.
Есть ли способ выполнить это?
Ответ №1:
Пожалуйста, установите для свойства Errors limit в вашей конфигурации шага сборки FxCop значение 0. Это должно привести к прерыванию сборки, если имеется хотя бы одна ошибка анализа.
Кроме того, существует аналогичное свойство ограничения предупреждений. Если вы не хотите допускать никаких нарушений правил на уровне предупреждения, вставьте в это поле также значение 0. Если вы хотите разрешить нарушения правил, при которых атрибут правила BreaksBuild == False, оставьте это свойство пустым.
Я пробовал это с помощью TeamCity 6.0 (сборка 15772) и FxCop 10.0.
[14:39:22]: [Step 2/2] Importing inspection results
[14:39:22]: [Step 2/2] Errors limit reached: found 8 errors, limit 0
[14:39:22]: [Step 2/2] ##teamcity[buildStatus status='FAILURE' text='Errors: 8, warnings: 1']
Комментарии:
1. По моему опыту, флаг «Сбой при ошибках анализа» гарантирует только то, что если у FxCop ошибка загрузки, например, сбой при загрузке сборки, на которую ссылается, то шаг сборки вызывает сбой сборки. Флаг не вызывает сбой сборки при нарушении правила.
2. Извините, вы правы. Флаг «Сбой при ошибках анализа» — это не то, что вы ищете. Я пытаюсь дать лучший ответ.
3. Я запускал FxCop через программу MSBuild runner. Используя некоторый XPath, вы можете запросить XML-файл результатов и выбрать, следует ли его соответствующим образом разбивать. Смотрите ademiller.com/blogs/tech/2009/06 /… для синтаксического анализа отчета. Смотрите confluence.jetbrains.net/display/TCD65 /… для служебных сообщений в TeamCity.
Ответ №2:
В версии 7.0 EAP это специальное «Условие сбоя сборки» в конфигурации сборки => Условия сбоя сборки => Добавить условие сбоя сборки, например «Сбой сборки, если количество ошибок проверки превышает 30».
Комментарии:
1. Это звучит довольно многообещающе, и это была бы функция, которую я часто использовал бы в своих более продвинутых конфигурациях сборки.