Как автоматически завершить сборку Nant, если запрос NDepend вызывает предупреждение - PullRequest
2 голосов
/ 11 ноября 2008

ОК, сначала немного фона. Я занят автоматизацией нашего процесса сборки. Мы используем смесь Vs 2005 и VS 2008, ориентированную на платформу 2.0. Мы используем Nant для наших сборок, используя задачу MSBUILD для компиляции и Cruise Control .net для выполнения нашего CI. В настоящее время мы рассматриваем все предупреждения как ошибки, сбой при сборке в случае сбоя каких-либо правил FxCop (за исключением небольшого подмножества, которое мы отключили), сбой при сборке, если Simian обнаруживает любое дублирование кода, превышающее 5 строк во всех проектах.

Я написал NDepend CQL-запрос, чтобы реализовать несколько правил, которые трудно реализовать в FxCop. Я хочу завершить сборку, если количество строк в методе / классе превышает определенный предел. Я также хочу потерпеть неудачу, если цикломатическая сложность метода слишком высока.

Я могу легко запустить NDepend как часть моей сборки. Но я не могу заставить сборку завершиться неудачей, если мои CQL-запросы возвращают результаты> 0

Так вот в чем вопрос:

  1. Кто-нибудь пробовал что-то аналогичный?
  2. Есть ли задача Нанта что поддерживает это?
  3. Если есть задача Nant, которая вызывает NDepend, но не подводит сборка является источником доступно, чтобы я мог добавить эту функцию?

Спасибо, Стивен

Ответы [ 2 ]

1 голос
/ 11 ноября 2008

На самом деле мы запускаем скрипт powershell, который выполняется сразу после того, как он анализирует выходной файл и выдает серию ошибок с соответствующим сообщением, в зависимости от того, какое условие он обнаружил. Как только powershell выдает ошибку, сборка завершается неудачей.

0 голосов
/ 01 июня 2011

См. Документацию о критических правилах NDepend и сбое сборки: http://www.ndepend.com/Doc_CI_CriticalRule.aspx

...