0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

(4) Android 網羅的単体テスト編 SonarCloud (コード品質分析)

Last updated at Posted at 2020-08-15

(1) Android 網羅的単体テスト編(Android開発者テスト) -> Screen Shot 2020-08-15 at 17.31.12.png
https://qiita.com/hal319/items/a8b1d52ac0cfb36f4cee
(2) 網羅率測定 (Android開発者テスト)-> https://qiita.com/hal319/items/5bf3f7c8c3c577ac616f
(3) github・CircleCI統合 クラウド編(Android開発者テスト) https://qiita.com/halsuguro/items/51eca80ce44bdc18d927
(4) SonarCloud (Android開発者テスト)

網羅率をCircle CI上で測定できるようになったら、コードの品質をクラウドで見ましょう。

SonarCloudというツールがあります、その使い方。

Screen Shot 2020-08-15 at 17.09.16.png

まずgithubから解析したりリポジトリーを選択。
ビルドツールを選択、当然前回からセットアップしたCircleCIを選択。
Screen Shot 2020-08-15 at 17.10.42.png

つぎにいくつかのちょいメンドウなおまじないを、設定。
 
Screen Shot 2020-08-15 at 17.12.12.png

Click here to create a CircleCI context named SonarCloud.で"here"を押す。

Screen Shot 2020-08-15 at 17.15.35.png

こんな画面が出てくるので、迷わず"Create Context"を押す。

Screen Shot 2020-08-15 at 17.16.31.png

Context nameに"SonarCloud"を入力

Screen Shot 2020-08-15 at 17.30.14.png

Screen Shot 2020-08-15 at 17.38.44.png
Add Environment Variableを押して、
Screen Shot 2020-08-15 at 17.39.30.png
先にあった、Valueの値をコピペ
Screen Shot 2020-08-15 at 17.41.10.png
次のstepで、configy.ymlの入れるべきコードが出てくる。
Screen Shot 2020-08-15 at 17.42.14.png
まあこれ通り入れればうまく動くはず。ちなみにbuild.gradleは

plugins {
    id "org.sonarqube" version "3.0"
}


sonarqube {
    properties {
        property "sonar.projectKey", "halsuguro_simple_unit2_mvc"
        property "sonar.organization", "halsuguro"
        property "sonar.host.url", "https://sonarcloud.io"
    }
}

apply plugin: 'com.android.application'

android {
    compileSdkVersion 28

    defaultConfig {
        applicationId "com.example.empty"
        minSdkVersion 28
        targetSdkVersion 28
        versionCode 1
        versionName "1.0"

        testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
        testInstrumentationRunnerArguments clearPackageData: 'true'
    }

    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
        }
        debug {
            testCoverageEnabled true
        }
    }

    testOptions {
        animationsDisabled true

        unitTests {
            returnDefaultValues true
            includeAndroidResources true
        }
    }
}



dependencies {
    implementation fileTree(dir: "libs", include: ["*.jar"])
    implementation 'androidx.appcompat:appcompat:1.1.0'
    implementation 'androidx.constraintlayout:constraintlayout:1.1.3'

    testImplementation 'junit:junit:4.12'
    androidTestImplementation 'junit:junit:4.12'

    androidTestImplementation 'androidx.test.espresso:espresso-core:3.2.0'
    androidTestImplementation 'androidx.test.espresso:espresso-intents:3.2.0'
    androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.3'
    androidTestImplementation 'androidx.test.ext:junit:1.1.1'
}

apply from: 'jacoco.gradle'

config.ymlはこんな感じで、build時間がかかるので、jacoco等々の記述は外してある。


version: 2.1
jobs:
  build:
    working_directory: ~/code
    docker:
      - image: 'circleci/android:api-28'
      - image: 'circleci/openjdk:11-jdk'

    steps:
      - checkout
      - run:
          name: Analyze on SonarCloud
          command: ./gradlew build sonarqube


workflows:
  main:
    jobs:
      - build:
          context: SonarCloud

そうすると、いろいろなコードの指標を出してくれる、それもビルドごとに。Cyclomaticの複雑度なんかも、見たいときにすぐ見れる。ステキ!

Screen Shot 2020-08-15 at 18.07.12.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?