Есть ли хорошие инструменты для сбора метрик Objective-C?

Я использую Jenkins для CI в проектах iOS и хочу собирать на них некоторые программные метрики. Но единственным инструментом, который я смог найти, был CLOC, который учитывает только строки кодов (LOC). Тем не менее это лучше, чем ничего.

То, что я действительно хочу посчитать, - это методы, классы, вызовы для других классов и т.д. (для создания необычной сложной сложной вещи).

Возможно, мне не хватает некоторых инструментов, дайте мне знать, если да.

Ответ 1

OCLint?

От oclint.org:

OCLint - это инструмент статического анализа кода для улучшения качества и уменьшая дефекты, проверяя код C, С++ и Objective-C и глядя для потенциальных проблем типа:

  • Возможные ошибки - пустые, если /else/try/catch/finally statements
  • Неиспользуемый код неиспользуемые локальные переменные и параметры
  • Сложный код - высокая цикломатическая сложность, сложность NPath и высокий NCSS
  • Резервный код - избыточный оператор if и бесполезные круглые скобки
  • Код пахнет - длинный метод и список с длинными параметрами
  • Плохая практика - инвертированная логика и переназначение параметров...

Ответ 4

Помимо строк кода и охвата тестирования, я не уверен, что для Obj-C еще есть такие инструменты. Я подозреваю, что мы увидим, что некоторые из них вскоре принесут приток разработчиков с других платформ, которые используют метрики, но в мои 7 лет как Obj-C dev я не слышал ни о ком, у кого есть инструмент для их сбора. Конечно, было бы неплохо доказать, что ошибочно:)

Ответ 5

ProjectCodeMeter измеряет сложность потока (аналогичную циклической сложности McCabe) в коде Objective-C, но не учитывает методы и классы хотя..

Ответ 6

Я использую несколько инструментов для сбора показателей качества кода:

  • OCLint - собрать некоторые показатели, такие как циклическая сложность, и обеспечить наилучшую практику - http://oclint.org
  • Simian - анализатор подобия - http://www.harukizaemon.com/simian/
  • Анализатор Clang - тот же инструмент, что и в Xcode (Product → Analyze), кажется немного устаревшим, хотя и полезным. Для выполнения этого на CI см. Следующее: http://clang-analyzer.llvm.org/scan-build.html
  • Комбинезоны - отличные инструменты для визуализации покрытия unit test - https://coveralls.io

Недавно я обнаружил, что у него есть бесплатный плагин для SonarQube - https://github.com/octo-technology/sonar-objective-c, но он не очень богат. Официальный здесь: http://www.sonarsource.com/products/plugins/languages/objective-c/

Ответ 7

То, что я действительно хочу посчитать, это методы, классы

nnnot rrreallly.... вы можете анализировать индексы xcode или вывод nm - или запускать doxygen.

вызывает другие классы и т.д.

gcov - или запустите doxygen

Ответ 8

Я просто наткнулся на Xcode Statistician (ссылка кажется мертвой), но еще не пробовал. zip-архив можно загрузить напрямую.