Создать отчеты о покрытии тестового покрытия для проектов XCode и подключите его к CI.
Проект | Покрытие |
---|---|
Парсиммон | |
Венкоре | |
Dazabtest | |
TBStateMachine |
Добавьте эту строку в Gemfile вашего приложения:
драгоценный камень
А затем выполнить:
$ bundle
Или установите драгоценный камень:
GEM Установите наглый
Включите тестовое покрытие, установив флажок «Сбор данных покрытия» при редактировании схемы:
Чтобы убедиться, что вы готовы генерировать тестовый охват, запустите свой тестовый набор в своем проекте, а затем запустите:
$ alather overge -s -scheme yourxcodeschemename path/to/project.xcodeproj
Если вы используете рабочее пространство в XCode, вам нужно указать его:
$ alather overage -s -scheme yourxcodeschemename -workspace path/to/workspace.xcworkspace path/to/project.xcodeproj
Если вы используете другую конфигурацию для ваших тестов:
$ ulather overage -s -scheme yourxcodeschemename -configuration yourbuildconfigurationname path/to/project.xcodeproj
Если ваша конфигурация создает универсальный двоичный файл, вам необходимо указать конкретную архитектуру для использования:
$ ulather coverge -s -ararch x86_64 -scheme yourxcodeschemename -configuration yourbuildconfigurationname path/to/project.xcodeproj
Если вы хотите запустить некоторые модули, но не все (например, модули, созданные Cocoapods), вы можете сделать это так:
$ ulather overge-binary-baseName module1-binary-basename module2 path/to/project.xcodeproj
Вы также можете добавить его в файл .slather.yml
в качестве массива:
binary_basename: - Модуль1 - Модуль2
Запустите эту команду, чтобы включить Generate Test Coverage
и флаги Instrument Program Flow
для вашего проекта:
$ pault path/to/project.xcodeproj
При использовании как файла конфигурации ( .slather.yml
), так и предоставления аргументов через командную линию, аргументы будут иметь приоритет над настройкой сопоставления в файле конфигурации.
ignore
source-files
При определении обоих файлов, которые следует игнорировать ( --ignore
, игнорировать), так и исходные файлы, чтобы включить ( --source-files
, source_files), список игнорирования проверяется первым. Если сканируемый файл соответствует миру в списке игнорирования, он не будет включен. В этом случае список Source_file не проверяется.
Если сканируемый файл не находится в списке игнорирования, а Source_file был определен, список Source_file проверяется. Если исходный файл соответствует глобусу, он будет включен.
Войдите в Codecov (нет необходимости активировать репозиторий, это происходит автоматически). Прямо сейчас slather
поддерживает Codecov через всех поддерживаемых поставщиков CI, перечисленных здесь.
Сделайте файл .slather.yml
:
# .slather.ymlcoverage_service: cobertura_xmlxcodeproj: path/to/project.xcodeprojscheme: yourxcodeschemenameconfiguration: testedcodfigurationsource_directory: path/to/to/to/inclod - Пример PodCode/* - ProjectTestSgroup/*
А затем в вашем .travis.yml
, circle.yml
(или после тестирования команд у других поставщиков CI), вызовите slather
после успешной сборки:
# .travis.ymlbefore_install: rvm Используйте $ rvm_ruby_versioninstall: установка Bundle -without = documentation -path ../travis_bundle_dirafter_success: - Посмеевать -bash <(curl -s https://codecov.io/bash) -f path/to/xml_report/cobertura.xml -x covergepy -x gcov -x xcode
# circle.ymltest: post: -Bundle Exec alter- Bash <(curl -s https://codecov.io/bash) -f path/to/xml_report/cobertura.xml -x covergepy -x gcov -x xcode
Частный репо? Добавить
-t :uuid-repo-token
к загрузчику Codecov. Узнайте больше о загрузке отчета в Codecov здесь
Войдите в точку, чтобы позволить ваш репозиторий. Прямо сейчас slather
поддерживает комбинезоны через Travis CI, Circleci, Jenkins, TeamCity, Buildkite и Bitrise.
Сделайте файл .slather.yml
и укажите используемой вами службы CI:
# .slather.ymlci_service: Circleci | travis_ci | travis_pro | Дженкинс | BUILDKITE | TeamCityCoverage_service: Coapallsxcodeproj: path/to/project.xcodeprojscheme: yourxcodeschemenameignore: - Пример PodCode/* - ProjectTestSgroup/*
А затем в вашем .travis.yml
или circle.yml
или github-action.yml
, вызовите slather
после успешной сборки:
# .travis.ymlbefore_install: rvm Используйте $ rvm_ruby_versioninstall: установка Bundle -without = документация -path ../travis_bundle_dirafter_success: налат
# circle.ymltest: post: - Пандл -исполнительный налом
# github-action.yml MyJob: Шаги: - запустить: | Установка поставщика пучка конфигурации пакета/установка пакета пакета -without = документация --jobs 4 -retry 3 -имя: извлечь ветвь Nameshell: Bashrun: echo "## [setupput name = branch;] $ (echo $ {github_ref# refs/heads/}) "id: get_branch - run: bundle exec salatherenv: git_branch: $ {{steps.get_branch.outputs.branch}} ci_pull_request: $ {{github.event.number}} coverge_access_token: $ {{secrets. Github_token}}
Чтобы использовать Coiplls с Travis Ci Pro (для частных репо), добавьте следующие линии вместе с другими настройками в .slather.yml
:
# .slather.ymlci_service: travis_procoverage_access_token: <ваш доступ к доступу>
Токен покрытия можно найти на странице Covalls Repo. Или это может быть передано через среду COVERAGE_ACCESS_TOKEN
var.
Чтобы создать отчет Cobertura XML, установите cobertura_xml
в качестве службы покрытия внутри вашего .slather.yml
. При желании вы можете определить выходной каталог для отчета XML:
# .slather.ymlcoverage_service: cobertura_xmlxcodeproj: path/to/project.xcodeprojscheme: yourxcodeschemenamesource_directory: path/to/sources/to/includeoutput_directory: path/xml_reportignore: - Пример PodCode/* - ProjectTestSgroup/*
Или используйте параметры командной строки --cobertura-xml
или -x
и --output-directory
:
$ alather overage -x - -output -directory/to/xml_report
Чтобы создать отчет в качестве статических HTML -страниц, используйте параметры командной строки --html
:
$ alather overgepare -html -scheme yourxcodeschemename path/to/project.xcodeproj
Это сделает каталог с именем html
в вашем корневом каталоге (если не указана --output-directory
) и будет генерировать все отчеты в качестве статических HTML-страниц внутри каталога. Он будет распечатать путь отчета по умолчанию, но вы также можете указать флаг --show
, чтобы автоматически открыть его в браузере.
По умолчанию сгенерированный HTML будет ссылаться на локально размещенные активы (JS, CSS). Вы можете указать --cdn-assets
, чтобы указать, что вы предпочитаете генерируемый HTML для использования активов, размещенных извне. Это может быть полезно при публикации HTML -файла в качестве артефакта сборки.
Чтобы сообщить о статистике покрытия в TeamCity:
$ ulather overage -teamcyty -s -scheme yourxcodeschemename
Если вы пытаетесь вычислить покрытие кода, который был включен через Cocoapods, вам нужно будет сказать Cocoapods использовать плагин с налаткой, добавив следующее в свой Podfile
.
плагин
Вам также нужно будет рассказать, где найти исходные файлы для вашего стручка.
# .slather.ymlsource_directory: pods/afnetworking
Полез по умолчанию будет искать файлы тестового покрытия в DerivedData
. Если вы отправляете выход сборки в пользовательское место, например, вам также следует установить свойство build_directory
в .slather.yml
Включите аргумент --workspace
или добавьте workspace
в .slather.yml
если вы создаете свой проект в рабочем пространстве. Например:
$ alather покрытие -html -scheme yourxcodeschemename -workspace path/to/workspace.xcworkspace path/to/project.xcodeproj
Мы хотели бы увидеть ваши идеи для улучшения этой библиотеки! Лучший способ внести свой вклад - отправить запрос на тягу. Мы сделаем все возможное, чтобы ответить на ваш патч как можно скорее. Вы также можете подать новую проблему GitHub, если вы найдете ошибки или у вас есть вопросы.
Пожалуйста, обязательно следуйте нашему общему стилю кодирования и добавьте тестовое покрытие для новых функций!
@tpoulos, идеальный логотип.
@ayanononagon и @kylef, обратная связь и тестирование.
@jhersh, поддержка Circleci.
@Tarbrain, Cobertura Support и ошибка.
@ikhsan, HTML -поддержка.
@Martin-Key и @troyfontaine, поддержка Actions Github.