[JAVA] Code Climate Code qualité, mesure de la couverture

L'effet n'a pas encore été mesuré et nous l'évaluerons au fur et à mesure que nous l'utilisons.

Aperçu

Utilisez Code Climate pour vérifier automatiquement la qualité du code et tester la couverture de couverture.

Code Climate

Quality

https://codeclimate.com/quality/

CI. Mesurez la qualité du code sur une base de référentiel ou de fichier. Vous pouvez également mesurer la couverture de test si vous la définissez. Le contrôle de la qualité du code semble être puissant, et il semble évaluer en détail comme la duplication de code. Cette fois, il y a trop peu de code dans le référentiel (juste Hello World.) Et il n'a pas encore été évalué, donc je ne suis toujours pas sûr de son efficacité. Article détaillé

Velocity

https://codeclimate.com/velocity/

Capacité à mesurer la productivité de l'équipe. Toujours version BETA.

URL

https://codeclimate.com

Service correspondant

Il prend également en charge les Webhooks et vous pouvez définir une vérification forcée avant la fusion.

prix

20 $ par mois. Les référentiels publics sont gratuits.

Coopération avec le référentiel Git

Très facile. Lien de connexion (OAuth) du service pris en charge et sélectionnez le référentiel cible dans la liste.

Code Climate Quality

MAINTAINABILITY

Mesurez la qualité du code. Même si vous ne définissez rien, l'analyse est effectuée sans autorisation lorsque les référentiels sont liés.

TEST COVERAGE

Mesurer la couverture du test. Cela ne fonctionne pas encore lorsque les référentiels sont liés, et cela fonctionne une fois défini.

Réglage

Vérification forcée avant la fusion GitHub

  1. Ouvrir le paramètre Repo
  2. Ouvrez GitHub
  3. Ouvrir l'état de la demande d'extraction
  4. L'écran d'authentification apparaît. Sélectionnez le référentiel cible et ajoutez-le.
  5. Définissez Code Climate comme obligatoire dans les paramètres de branche de Setting dans le référentiel GitHub.
  6. Ajout du processus de transmission du fichier de couverture au fichier de paramètres de l'outil CI
  1. Wercker ne faisait pas partie de l'échantillon, la méthode est donc décrite ci-dessous et la mesure de la couverture utilise Jacoco.

  2. Ajoutez CC_TEST_REPORTER_ID = jeton émis par Code Climate à la variable d'environnement Wercker

  3. Ajoutez ce qui suit à l'étape avant la construction

    ```
    # cc-test-reporter use env CC_TEST_REPORTER_ID
    - script:
        name: post coverage to code climate before
        code: |
          curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
          chmod +x ./cc-test-reporter
          ./cc-test-reporter before-build
    ```
    
  4. Ajoutez ce qui suit à l'étape après la construction

    ```
    - script:
        name: post coverage to code climate after
        code: |
          export JACOCO_SOURCE_PATH="src/main/java"
          ./cc-test-reporter format-coverage build/reports/jacoco/test/jacocoTestReport.xml --input-type jacoco
          ./cc-test-reporter upload-coverage
    ```
    

L'image complète de wercker.yml

# This references an OpenJDK container from the
# Docker Hub https://hub.docker.com/_/openjdk/
# Read more about containers on our dev center
# http://devcenter.wercker.com/docs/containers/index.html
box: openjdk:10.0.1-jdk

# defining the dev pipeline
dev:
  steps:
    # A step that executes `gradle bootRun` command
    - script:
      name: run gradle
      code: |
        ./gradlew bootRun

# Build definition
build:
  # The steps that will be executed on build
  steps:
    # A step that executes `gradle build` command
    # cc-test-reporter use env CC_TEST_REPORTER_ID
    - script:
        name: post coverage to code climate before
        code: |
          curl -L https://codeclimate.com/downloads/test-reporter/test-reporter-latest-linux-amd64 > ./cc-test-reporter
          chmod +x ./cc-test-reporter
          ./cc-test-reporter before-build
    - script:
        name: run gradle
        code: |
          ./gradlew --full-stacktrace -q --project-cache-dir=$WERCKER_CACHE_DIR build
    - script:
        name: post coverage to codecov
        code: |
          bash <(curl -s https://codecov.io/bash) -t $CODECOV_TOKEN
    - script:
        name: post coverage to code climate after
        code: |
          export JACOCO_SOURCE_PATH="src/main/java"
          ./cc-test-reporter format-coverage build/reports/jacoco/test/jacocoTestReport.xml --input-type jacoco
          ./cc-test-reporter upload-coverage

badge

Vous pouvez obtenir des liens d'affichage de la qualité du code et du badge de couverture de test à partir du paramètre Repo. Décrivez-le dans README.md et affichez-le en haut du référentiel.

Recommended Posts

Code Climate Code qualité, mesure de la couverture
Bibliothèque de mesures de couverture Java
À propos des types de couverture de code
Obtenez la couverture du code JUnit sur Android.