繁体   English   中英

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

[英]Kotlin Multiplatform Project Unit Test Issue

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

但是我面临单元测试文件的问题。 以前我可以毫无问题地运行单元测试。 现在,当我单击 function 名称(左侧)旁边的运行按钮时,它显示 Nothing 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 版本中,我是否遗漏了什么。 我已经为此苦苦挣扎了几个小时。 浏览了 web 但似乎找不到任何帮助。

谢谢

就我而言,当我从

  • Android Studio 3.5.3和 Kotlin 插件版本v1.3.50-release-Studio3.5-1

  • 带有 Kotlin 插件的Android Studio 3.6.3 1.3.71-release-Studio3.6-1

我所有常见的 Kotlin MPP 测试都没有从预期的 IDE 侧函数“绿色”运行中运行,并且也显示了Nothing here消息。

我尝试了几件事,其中之一是完全卸载然后安装,但似乎没有任何效果。

最终对我有用的是(有一些警告):

  • 创建了一个新测试(也适用于现有测试,但仅作为示例)

图1

以确保此处无显示。

然后:

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

图片2

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

com.my.path.is.correct.MyNewTestCase

另外,请确保您拥有适用于常见 Kotlin 的正确模块; 就我而言,它很常见(不是 commonTest)。

完成上述操作后,您应该能够从主Run按钮(再次,在 Emulator 下拉列表旁边)运行测试类,甚至将其作为Debug运行。

该函数旁边的“绿色”运行按钮仍然会在此处显示 Nothing但添加断点并从主调试按钮运行新配置对我有用:

在此处输入图片说明

这显然并不完美,但这是我能找到的让它在 IDE 中工作的唯一方法。

希望能帮助到你!

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

我已经尝试了上面提供的所有解决方案,没有一个对我有用。 最后,我只保留了与 Android studio 捆绑在一起的插件,并禁用了所有其他插件(重启 studio)。 我开始在 gutter 上看到运行测试的菜单。 解决此问题后,我开始逐个启用那些禁用的插件。 如果确定导致此问题的插件,则根据您的环境和开发要求决定如何处理它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM