当前位置: 首页 > 知识库问答 >
问题:

使用kotlin时在单元测试和仪器测试之间共享代码

翁昊乾
2023-03-14

类似问题:在Android Studio中的Android工具测试和单元测试之间共享代码

我的设置如下:

    包含单元测试的< li> src/test文件夹。这些可以是Java或Kotlin类 包含仪器测试的< li> src/androidTest。这些也可以是Java或Kotlin类 < li> src/sharedTest是一个文件夹,其中包含一组在单元测试和测量测试之间共享的实用程序。

这种共享在gradle中定义为:

sourceSets {
    test.java.srcDirs += 'src/sharedTest/java'
    androidTest.java.srcDirs += 'src/sharedTest/java'
}

这允许< code>src/test或< code>src/androidTest中的任何Java类访问实用程序。但不是科特林单元测试。我的假设是它们没有被添加到源集中。

我的问题是:如何添加它们?我尝试了:

sourceSets {
    test.kotlin.srcDirs += 'src/sharedTest/java'
}

但这似乎行不通。

共有2个答案

太叔繁
2023-03-14

如果你的项目既有java代码又有kotlin代码,关键是要有:

src/{folderName}/java

src/{folderName}/kotlin

其中{folderName}是:test、androidTest、sharedTest或其他任何类型。

我使用:

android {
    sourceSets {
        androidTest.java.srcDirs += "src/androidTest/kotlin"
        androidTest.java.srcDirs += "src/sharedTest/java"
        androidTest.java.srcDirs += "src/sharedTest/kotlin"
        test.java.srcDirs += "src/test/kotlin"
        test.java.srcDirs += "src/sharedTest/java"
        test.java.srcDirs += "src/sharedTest/kotlin"
    }
}

这是不一致的,因为您可以将所有java和kotlin代码放在同一个目录下:

main/java

目录

洪鸿
2023-03-14

默认设置将使静态编程语言源集对Java编译器和IDE可见:

android {
    sourceSets {
        main.java.srcDirs += 'src/main/kotlin'
        test.java.srcDirs += 'src/test/kotlin'
        test.java.srcDirs += 'src/sharedTest/java'
        androidTest.java.srcDirs += 'src/sharedTest/java'
    }
}

您不需要单独配置Kotlin源集。

 类似资料:
  • 本文向大家介绍单元测试和集成测试之间的区别,包括了单元测试和集成测试之间的区别的使用技巧和注意事项,需要的朋友参考一下 众所周知,测试是任何应用程序或软件交付过程中最重要的阶段,因为测试不仅可以验证应用程序的质量,还可以为开发人员提供改进其产品的机会。 每个应用程序都以某种高级或低级语言进行开发,这意味着已经为其开发编写了一些代码,因此在要测试的模块的基础上,存在测试的分类,即单元测试和集成测试。

  • 本文向大家介绍单元测试和系统测试之间的区别,包括了单元测试和系统测试之间的区别的使用技巧和注意事项,需要的朋友参考一下 众所周知,测试是任何应用程序或软件交付过程中最重要的阶段,因为测试不仅可以验证应用程序的质量,还可以为开发人员提供改进其产品的机会。 每个应用程序都以某种高级语言或低级语言进行开发,这意味着已经为其开发编写了一些代码,因此在要测试的模块的基础上,存在测试的分类,即单元测试和系统测

  • 本文向大家介绍单元测试和三明治测试之间的区别,包括了单元测试和三明治测试之间的区别的使用技巧和注意事项,需要的朋友参考一下 众所周知,测试是任何应用程序或软件交付过程中最重要的阶段,因为测试不仅可以验证应用程序的质量,还可以为开发人员提供改进其产品的机会。 每个应用程序都以某种高级或低级语言进行开发,这意味着已经为其开发编写了一些代码,因此在要测试的模块的基础上,存在测试的分类,即单元测试和三明治

  • 本文向大家介绍测试仪和SDET之间的区别,包括了测试仪和SDET之间的区别的使用技巧和注意事项,需要的朋友参考一下 测试仪 软件测试人员会对软件进行测试,以确保其符合所需的质量标准。测试人员负责检查软件是否存在错误/缺陷,并按照软件要求执行操作。软件测试人员不了解应用程序代码及其开发过程。 SDET SDET代表测试中的软件开发工程师。SDET是开发和软件测试的一部分。SDET知道软件代码。SDE

  • 我有一个测试类的testng套件,我正在通过一个testng.xml文件运行它。这个很管用。所有测试都是串行运行的,因此没有并行执行障碍。 当然,通过类成员变量在单个类中的测试方法之间共享状态是很容易的,但是我不知道如何在测试类之间共享状态。

  • Android Studio 1.1 添加了单元测试支持,详细请看 Unit testing support。本章的其余部分描述的是 “instrumentation tests”。利用 Instrumentation 测试框架可以构建独立的测试 APK 并运行在真实设备(或模拟器)中进行测试。