Kotlin多平台项目单元测试问题

时间:2019-11-26 10:06:10

标签: android kotlin kotlin-multiplatform

今天我刚刚将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时,它提示我错误。

但是我面临单元测试文件的问题。以前,我可以毫无问题地运行单元测试。现在,当我单击函数名称旁边的运行按钮时(在左侧),它显示Nothing Here。

enter image description here

下面是我的所有依赖项

// 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版本中,我是否错过了某些东西。我已经为此努力了几个小时。浏览了网络,但似乎找不到任何帮助。

谢谢

2 个答案:

答案 0 :(得分:2)

就我而言,此问题是在我从以下位置更新时发生的:

  • 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端功能“绿色”运行,并且也显示了“ 此处无内容”消息。

我尝试了一些方法,其中之一是完全卸载然后再安装,但似乎无济于事。

最终为我工作的是(有一些警告):

  • 创建了一个新测试(也可以与现有测试一起使用,但仅作为示例)

pic 1

以确保显示这里什么

然后:

  • 打开所选模拟器旁边的下拉菜单,然后单击编辑配置
  • Android JUnit 下,单击 + 按钮以添加新配置
  • 它应该看起来像这样:

pic2

确保测试类型为 Class ,并且您具有文件的正确路径。例如:

com.my.path.is.correct.MyNewTestCase

此外,请确保您具有通用Kotlin的正确模块;就我而言,这是 common (不是commonTest)。

完成上述操作后,您应该可以从主 Run 按钮(同样,在Emulator下拉列表旁边)运行测试类,甚至可以以 Debug 运行它>。

该功能旁边的“绿色”运行按钮仍会显示此处无内容,但是添加断点并从主 Debug 按钮运行新配置确实对我有用:

enter image description here

这显然不是完美的,但这是我可以找到的在IDE中运行它的唯一方法。

希望有帮助!

答案 1 :(得分:0)

全新安装Android Studio修复了此问题。没想到会发生此问题。过去几次更新过Android Studio,这是我第一次遇到此类问题。