Kotlin Multiplatform Projectユニットテストの問題


8

今日、私はAndroid Studioを

Android Studio 3.5.2
Build #AI-191.8026.42.35.5977832, built on October 31, 2019
JRE: 1.8.0_202-release-1483-b49-5587405 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
macOS 10.15.1

Android Studioを更新したのは、kotlinのバージョンが1.3.60未満の場合にエラーが表示されるためです。

しかし、ユニットテストファイルの問題に直面しています。以前は問題なく単体テストを実行できました。ここで、関数名(左側)の横にある実行ボタンをクリックすると、ここには何も表示されません。

ここに画像の説明を入力してください

以下はすべての私の依存関係です

// build.gradle

buildscript {
ext.kotlin_version = '1.3.60'
repositories {
    google()
    jcenter()
    maven { url "https://kotlin.bintray.com/kotlinx" }
}

dependencies {
    // classpath 'com.android.tools.build:gradle:3.4.1'
    classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
    classpath "org.jetbrains.kotlin:kotlin-serialization:$kotlin_version"
}
}

allprojects {
  repositories {
    google()
    jcenter()
  }
}

task clean(type: Delete) {
   delete rootProject.buildDir
}


 apply plugin: 'kotlin-multiplatform'
 apply plugin: 'kotlinx-serialization'

kotlin {
targets {
    final def iOSTarget = presets.iosX64 // Simulator

    fromPreset(iOSTarget, 'iOS') {
        binaries {
            framework('SharedCode')
        }
    }
    fromPreset(presets.jvm, 'android')
}

sourceSets {
    commonMain {
        dependencies {
            api 'org.jetbrains.kotlin:kotlin-stdlib-common'
            implementation "org.jetbrains.kotlin:kotlin-test-common:$kotlin_version"
            implementation "org.jetbrains.kotlin:kotlin-test-annotations-common:$kotlin_version"
            implementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlin_version"
            implementation "org.jetbrains.kotlin:kotlin-test:$kotlin_version"
        }
    }

    iOSMain {
        dependsOn commonMain
    }

    androidMain.dependencies {
        api 'org.jetbrains.kotlin:kotlin-stdlib'
    }

    commonTest {
        dependsOn commonMain
    }
}
}

この新しいAndroid Studioとkotlinバージョンで見逃したものはありますか?私は何時間もこれに苦労してきました。ウェブを閲覧しましたが、ヘルプが見つからなかったようです。

ありがとう


キャッシュの無効化と再起動を試みましたか?
Evgeny Bovykin

@EvgenyBovykinはい、サー、すでに試してみましたが、何も変わっていません
alvinWB

私は同じ問題に直面しています……
James Fu

1
Android Studioのバグを報告しました
hardysim

1
jetbrainsにも問題を報告しました:youtrack.jetbrains.com/issue/KT-25065
hardysim

回答:


0

Android Studioをクリーンインストールしてこの問題を修正しました。この問題が発生するとは考えていませんでした。Android Studioを過去に数回更新しましたが、今回が初めての問題です。


新しいコンピュータでクリーンインストールを試みましたが、問題はまだ残っています(バージョン3.5.3でも)。
ペカン

私も同じ問題に直面し、私の一般的なテストでは「ここには何もありません」と表示されますが、Androidテストではうまく機能します。一般的なテストでコードを実行するには、自分で構成を記述してテストを実行する必要があります。それ以外の場合は、コマンドラインですべてのテストを実行してみることができます。
James Fu

これは、今日の3.5.xから3.6までの安定版で発生します。クリア、再インストール、jetbrainsツールボックス、スタンドアロンダウンロードなどを試しました。
hardysim

通常の(最新の)IntelliJを使用すると、各テストで実行/デバッグするオプションが表示されますが、それをクリックすると、「使用可能なタスクはありません」と表示されます。
hardysim

IntelliJ 2019.3.3の新しいプロジェクト(「モバイル共有ライブラリ| Gradle」を使用した「新規プロジェクト」ウィザードから)で動作します。ただし、Android Studio 3.6で同じプロジェクトを開いても(「ここでは何も」)開きません。
hardysim

0

私の場合、この問題は私が

  • Android Studio 3.5.3 およびKotlinプラグインのバージョン v1.3.50-release-Studio3.5-1

  • Android Studio 3.6.3 Kotlinプラグイン 1.3.71-release-Studio3.6-1

私の一般的なKotlin MPPテストのすべてが、期待されるIDEサイド関数の「グリーン」実行から実行されておらず、ここに何もないというメッセージが表示されました。

私はいくつかのことを試しましたが、そのうちの1つは完全にアンインストールしてからインストールしましたが、何も動作しないようです。

最終的に私のために働いたのは(いくつかの注意点があります):

  • 新しいテストを作成しました(既存のテストでも機能しますが、例として)

写真1

ここ何も表示されていないことを確認します。

次に:

  • 選択したエミュレータの横にあるドロップダウンを開き、[ 構成の編集 ]をクリックします
  • Android JUnitの下で+ボタンをクリックして新しい設定を追加します
  • 次のようになります。

pic2

テストの種類がクラスであり、ファイルへの正しいパスがあることを確認してください。例えば:

com.my.path.is.correct.MyNewTestCase

また、一般的なKotlinに適切なモジュールがあることを確認してください。私の場合、それは一般的でした(commonTest ではありません)。

上記の後、メインの[ 実行 ]ボタン(ここでも[エミュレータ]ドロップダウンリストの横)からテストクラスを実行し、それをDebugとして実行できるはずです。

関数の横にある「緑の」実行ボタンはまだNothingと表示されますが、ブレークポイントを追加し、メインの[ Debug ]ボタンから新しい構成を実行すると機能します。

ここに画像の説明を入力してください

これは明らかに完璧ではありませんが、IDEから動作させる唯一の方法でした。

それが役に立てば幸い!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.