代码之家  ›  专栏  ›  技术社区  ›  user1228891

Android Studio-Kotlin测试引发-找不到类-空测试套件

  •  15
  • user1228891  · 技术社区  · 7 年前

    当尝试在Android Studio上运行用Kotlin编写的浓缩咖啡测试时(最远可达3.2 Canary 9),我得到了一个错误: 进程已完成,退出代码为1 找不到类:“com.myproject.directoryofwinning.VerifyAppIsAwesomeTest”空测试套件。

    奇怪的是,同一项目中的Java测试没有问题。

    已尝试重置配置并由其他人建议,但这似乎没有任何区别。

    4 回复  |  直到 7 年前
        1
  •  4
  •   user1228891    7 年前

    最后,我发现这取决于将“test”添加到类名的末尾。要么将单词Test移到类名的前面,要么将其全部省略,都可以解决这个问题。

        2
  •  4
  •   qix    7 年前

    在我使用Android Studio 3.1.1的情况下,我的运行/调试配置不正确,可能是因为在更新Android Studio时自动转换了配置。 我的插装测试配置最终被放在“Android JUnit”配置下,而不是“Android插装测试”。 为我的特定类创建一个新的插入指令的测试配置成功了。

    此外,右键单击模块的“运行所有测试”选项时创建的默认配置无法找到插入指令的测试并正常运行,导致

    0 test classes found in package '<default package>' 
    Process finished with exit code 254 
    Empty test suite.
    

    作为Android JUnit下弹出的默认配置。但是,右键单击包含插入指令的测试的包将在正确的类别中创建它。我还可以手动将其编辑为“All-in-Module”,并且仍然可以正确执行kotlin测试。

    顺便说一句,我之前也让IDE给了我以下误导性的输出:

    $ adb shell am instrument -w -r   -e package com.base.package.kotlintests -e debug false com.base.package.test/android.support.test.runner.AndroidJUnitRunner
    Client not ready yet..
    Started running tests
    Tests ran to completion.
    Empty test suite.
    

    为什么它说有一个空的测试套件为什么我有测试?查看日志或运行 adb 终端上的命令显示我的代码在 @BeforeClass 安装程序!因此,没有执行任何测试,所有工作都很轻松地完成了。

        3
  •  4
  •   mattfred    6 年前

    我花了几次时间才弄明白这一点,但最终还是因为缺少启用kotlin所需的gradle更改。

    ....
    apply plugin: 'kotlin-android'
    android {
        ....
    }
    dependencies {
        implementation "org.jetbrains.kotlin:kotlin-stdlib:1.3.21"
        ....
    }
    
        4
  •  1
  •   CoolMind    7 年前

    重建项目,文件(>);使缓存无效/重新启动。。。,删除应用\生成文件夹,终止 adb 从进程中,重新启动emulator。