facebook twitter hatena line email

Android/kotlin/UnitTest/基本

提供: 初心者エンジニアの簡易メモ
2021年2月3日 (水) 18:15時点におけるAdmin (トーク | 投稿記録)による版

移動: 案内検索

テスト作成

一旦プロジェクトをAndroidStudioのkotlinで新規で作る

以下が作られてるので確認。

UnittestApplication/app/src/test/java/com/example/unittestapplication/ExampleUnitTest.kt

package com.example.unittestapplication

import org.junit.Test

import org.junit.Assert.*

/**
 * Example local unit test, which will execute on the development machine (host).
 *
 * See [testing documentation](http://d.android.com/tools/testing).
 */
class ExampleUnitTest {
    @Test
    fun addition_isCorrect() {
        assertEquals(4, 2 + 2)
    }
}

app/src/androidTest/java/com/example/unittestapplication/ExampleInstrumentedTest.kt

package com.example.unittestapplication

import androidx.test.platform.app.InstrumentationRegistry
import androidx.test.ext.junit.runners.AndroidJUnit4

import org.junit.Test
import org.junit.runner.RunWith

import org.junit.Assert.*

/**
 * Instrumented test, which will execute on an Android device.
 *
 * See [testing documentation](http://d.android.com/tools/testing).
 */
@RunWith(AndroidJUnit4::class)
class ExampleInstrumentedTest {
    @Test
    fun useAppContext() {
        // Context of the app under test.
        val appContext = InstrumentationRegistry.getInstrumentation().targetContext
        assertEquals("com.example.unittestapplication", appContext.packageName)
    }
}

プロジェクト直下で実行

# ローカル単体テスト(tests側)
$ ./gradlew test
34 actionable tasks: 20 executed, 14 up-to-date
# インストゥルメント化単体テスト(androidTests側)
$ ./gradlew connectedAndroidTest
50 actionable tasks: 30 executed, 20 up-to-date

公式参考:https://developer.android.com/studio/test/command-line?hl=ja#AMOptionsSyntax

stopped Daemonsエラーが出る場合

$ ./gradlew test
Starting a Gradle Daemon, 1 busy and 1 stopped Daemons could not be reused, use --status for details

> Starting Daemon

FAILURE: Build failed with an exception.

* What went wrong:
Gradle could not start your build.
> Could not create service of type FileAccessTimeJournal using GradleUserHomeScopeServices.createFileAccessTimeJournal().
   > Timeout waiting to lock journal cache (~/.gradle/caches/journal-1). It is currently in use by another Gradle instance.
     Owner PID: 84782
     Our PID: 86617
     Owner Operation:
     Our operation:
     Lock file: ~/.gradle/caches/journal-1/journal-1.lock

killすれば良い。

kill -9 84782