(1) Android 網羅的単体テスト編(Android開発者テスト) ->
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というツールがあります、その使い方。
まずgithubから解析したりリポジトリーを選択。
ビルドツールを選択、当然前回からセットアップしたCircleCIを選択。
Click here to create a CircleCI context named SonarCloud.で"here"を押す。
こんな画面が出てくるので、迷わず"Create Context"を押す。
Context nameに"SonarCloud"を入力
Add Environment Variableを押して、
先にあった、Valueの値をコピペ
次のstepで、configy.ymlの入れるべきコードが出てくる。
まあこれ通り入れればうまく動くはず。ちなみに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の複雑度なんかも、見たいときにすぐ見れる。ステキ!