Flutter에서도 Codecov를 도입하여 test Mochibe를 올리자!



Codecov 이라고 하는 커버리지 계측의 서비스를 Flutter 로의 개발에 도입했습니다만, 엄청 좋기 때문에 소개.
유명한 곳이라면 공급자 패키지 에서 사용되고 있네요.
제휴가 매우 간단할 만큼 편리하기 때문에, 겨우 손해는 없다고 생각합니다!
게다가 private 리포지토리에서도 1개까지는 무료 !

필자는 Flutter의 Unit/Widget test를 CircleCI로 돌리고 있었다(지금은 GitHub Actions)이지만 거기에 Codecov를 연계시킨 이야기를 간결하게 씁니다.
(참고 : 이런 느낌의 구성으로 개발하고 있습니다)


절차



처음에 붙인 이미지처럼 "GitHub PR에 테스트 커버리지를 댓글 달기"를 실현하는 단계

1. flutter test에 --coverage 옵션 추가



예를 들면, 이런 느낌.

cirlceci/config.yml
version: 2.1

orbs:
  codecov: codecov/[email protected] # See: https://circleci.com/orbs/registry/orb/codecov/codecov

jobs:
  flutter_analyze_and_test:
    environment:
      - LANG: en_US.UTF-8
    docker:
      - image: circleci/android:api-28
    steps:
      - checkout
      - run:
          name: install flutter sdk
          command: git clone -b stable https://github.com/flutter/flutter.git ~/flutter
      - run:
          name: flutter analyze
          command: ~/flutter/bin/flutter analyze --write=analyzer-output.txt
      - run:
          name: flutter test
          command: ~/flutter/bin/flutter test --coverage --coverage-path=~/coverage/lcov.info
      - codecov/upload:
          file: ~/coverage/lcov.info

2. codecov.yml 추가



예를 들면, 이런 느낌.

.codecov.yml
# See: https://docs.codecov.io/docs/codecov-yaml
codecov:
  notify:
    require_ci_to_pass: yes

coverage:
  precision: 2
  round: down
  range: "70...100"

  status:
    project:
      default:
        target: 70%
    patch: no # See: https://docs.codecov.io/docs/commit-status#section-patch-status
    changes: no

parsers:
  gcov:
    branch_detection:
      conditional: yes
      loop: yes
      method: no
      macro: no

comment: # See: https://docs.codecov.io/docs/pull-request-comments
  layout: "reach, diff, flags, files"
  behavior: default
  require_changes: no
  require_base: yes
  require_head: yes

3. Codecov와 협력



Codecov 로부터 리포지토리 선택해~~~라고 하는 것을 지시대로 해 간다!

좋은 웹페이지 즐겨찾기