在Android Studio中运行所有单元测试

Kev*_*OUX 48 android unit-testing android-studio android-instrumentation

我在Android Studio中有这个项目:

在此输入图像描述

我希望只需点击一下即可在所有项目中运行所有单元测试.

我怎么能这样做?

Ben*_*ing 38

使用 AndroidStudio ArcticFox 的方法如下:

在运行配置下的工具栏中选择“编辑配置” 菜单条目

选择 (+) 添加新配置并选择 Gradle:

添加配置

在配置页面上:

  • 为配置命名运行所有单元测试)
  • 选择您的根项目作为Gradle 项目
  • 添加任务 cleanTestDebugUnitTest testDebugUnitTest(您可以从单元测试的现有配置中复制该任务,但请确保删除模块前缀(例如:app:))
  • [似乎在最新的 AS 版本中不再需要此步骤]添加--tests "*"参数(显然告诉 AS 将结果显示为 TestResults)

配置

选择并运行您的新配置。结果将显示在运行窗口中: 试运行结果

  • 据我所知,@mikeD cleanTestDebugUnitTest 用于首先清理构建。它通常由 AS 添加到您手动运行的每个单元测试配置上。(我经常删除它以节省时间) (3认同)
  • `cleanTestDebugUnitTest` 是做什么用的? (2认同)

lus*_*tig 26

不确定添加了哪个版本的Android Studio,但是我使用的是Android Studio 3.4

Android Studio版本3.4

在“项目资源管理器”窗口中,选择“ 项目视图”

项目视图选择

右键单击您的根项目,然后选择“创建'所有测试'...”

创建“所有测试”

... 将出现此窗口(这些默认值需要更改)

默认编辑配置窗口

更改以下选项:

  • 搜索测试:

    • 在整个项目中
  • JRE:

    • 此菜单中提供的最新版本的Android API __平台(对我来说,是Android API 28平台
  • 点击应用

编辑测试配置

  • 从下拉菜单中选择“所有测试”

在此处输入图片说明

  • 查看所有测试的输出

在此处输入图片说明

  • 最后 - 这实际上是签入代码之前应该做的最常见的事情!如果不清楚,也可以通过“运行/调试”下拉组合中的“编辑配置...”选项来完成。我不必更改默认的 JRE。我希望 Android Instrumented Tests 有类似的东西,但它们必须在每个模块的基础上创建,因为它们似乎不支持在整个项目中搜索测试。 (2认同)
  • 嗨,我正在尝试通过命令行运行单元测试(针对我的CI服务器),它始终可与Android Studio一起使用,但无法与命令行一起使用,因为它始终会出现java.lang.ClassNotFoundException错误。一段时间后,我了解到有些不同。当我从AS运行测试时,它说执行任务:[:lib_view:generateDebugSources,...]似乎./gradlew测试跳过了generateDebugSources任务,因此它找不到该类,您知道AS运行什么命令吗?当我们单击运行测试时? (2认同)
  • 这似乎只适用于单元测试。androidTests 怎么样? (2认同)

小智 20

首先,您可以列出项目中可用的所有测试任务

./gradlew tasks
Run Code Online (Sandbox Code Playgroud)

然后,您可以选择要执行的任务.如果要对所有版本和所有buildType执行所有测试,则只需运行即可

./gradlew test connectedAndroidTest
Run Code Online (Sandbox Code Playgroud)

如果您不希望每次要运行测试时都记住所有gradle测试命令,则可以创建文件"custom_tasks.gradle"并添加

task testAll(dependsOn: ['test', 'connectedAndroidTest']) {
   group = 'custom_tasks'
   description = "Run all tests"
}
Run Code Online (Sandbox Code Playgroud)

然后,你只需要运行

./gradlew testAll
Run Code Online (Sandbox Code Playgroud)


Анд*_*чук 15

  1. 在"项目"面板中(CMD + 1显示)右键单击"java".
  2. 单击"在Java中运行测试"

  • 这只在该目录中运行测试.OP要求项目中的所有测试目录 (14认同)
  • 这已不再可用 (4认同)

小智 7

您可以尝试在 android 终端上使用此命令行:Mac:

./gradlew test connectedAndroidTest
Run Code Online (Sandbox Code Playgroud)

视窗:

gradlew test connectedAndroidTest
Run Code Online (Sandbox Code Playgroud)