gpt4 book ai didi

android - 关于使用 gradle 或 android studio 进行 Android 单元测试的问题

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:35:43 24 4
gpt4 key购买 nike

我正在我的项目中编写一些测试用例,最近几天我遇到了一些关于使用 android studio 和 gradle 进行 android 单元测试的问题,并且在搜索后无法得到很好的答案。

以下是我遇到过的情况,它们真的很困扰我。

情况一:

当我将测试用例放入 androidTest 文件夹并运行 graldew cAT 并且还为测试类使用注释 @AndroidJUnit4 时。我可以运行单元测试并获得正确的结果。但是在我将 @AndroidJUnit4 更改为 @MockitoJUnitRunner 之后(我需要模拟上下文)。 android studio或gradle找不到任何test,只报“empty suit”。

情况二:

当我将测试用例放入test 文件夹并运行graldew test 并使用注解@MockitoJUnitRunner 时。它可以成功找到测试。但我猜它只能在本地运行。如果测试用例依赖于一些本地库,它会给出如下失败消息:java.lang.UnsatisfiedLinkError: no libxx in java.library.path

所以这里有问题:

问题 1:

看来我们可以把测试代码放在src/test或者src/androidTest中。那么这两个文件夹有什么区别呢?

问题 2:

gradlew cATgradle test 有什么区别?这两个命令是否与项目中的文件夹(我提到的test/androidTest文件夹)有关?

问题 3:

在我的情况下,我需要编写一些测试用例,这些用例依赖于 Context 和 native。我应该为此做什么?

最佳答案

因为这实际上是 3 个问题,所以最好创建 3 个单独的 SO 问题。无论如何,这里是答案:

答案 1:

src/test 文件夹用于“常规”JUnit 单元测试。这些是在常规 JVM 中运行的测试。

src/androidTest 文件夹用于任何需要运行 Android 设备或模拟器的测试。这是你的 Espresso测试将会生效。

答案 2:

命令 gradlew cATgradlew connectedAndroidTest 运行任何需要连接设备的测试(cAT 代表连接的 Android 测试) src/androidTest 目录,而命令 gradle test 仅在 src/test 目录中运行单元测试。

答案 3:

如果您的单元测试依赖于 Context,请考虑使用 Robolectric为您的单元测试。这将使您能够访问 Context。关于如何使用 Robolectric 的好例子可以在 Corey Latislaw's "Android Katas" repo 中找到。 .

编辑

情况一:我不确定这是否是您遇到的问题,但是当我遇到这个“空测试套件”错误时(当我在目录中显然有测试时),那是因为我忘记包含 Android JUnit Test Instrumentation Runner在我模块的 build.gradle 文件中。将其包含在 android 部分的 defaultConfig 部分中,如下所示:

android {
compileSdkVersion 23
buildToolsVersion "23.0.2"

defaultConfig {
applicationId "com.kiodev.example"
minSdkVersion 16
targetSdkVersion 23
versionCode 1
versionName "1.0"

testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
}
}

关于android - 关于使用 gradle 或 android studio 进行 Android 单元测试的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35194614/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com