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

Android Studio 3.1中的单元测试配置中断

商勇
2023-03-14

我更新到了Android Studio 3.1,并且根据Android Studio的建议:

  • 将Android gradle插件从2.3.0更新到3.1.0(也尝试了新的3.1.1,问题仍然存在)
  • 将build dToolsVersion更新为27.0.3
  • 使用SDK管理器下载了Android 8.1 API 27。

我正在使用JDK 8。

我之前的Android Studio构建配置“核心测试”只是在一个模块中运行所有测试,现在说:

无法使用Gradle分发执行生成'https://services.gradle.org/distributions/gradle-4.5.1-all.zip'.

我的完整源代码:https://github.com/Leejjon/BluffPoker

显然,在命令行上运行this时会出现相同的空指针:gradle: core: test此命令将使用相同的NullPointer失败。在根项目上进行测试(如gradle test)会运行良好。我也可以在我的Android手机上部署该应用程序。这可能与IntelliJ无关,但Android gradle插件3.1.0破坏了运行gradle: core: test命令的能力。

TLDR:自Android gradle插件3.1.0以来,在核心模块中运行任何gradle任务,如gradle:core:sometask,似乎会导致空指针。

我目前的解决方法是使用gradle test命令运行所有模块中的所有测试,并研究junit生成的html页面(位于BluffPoker\core\build\reports\tests\test\index.html中),以排除它们是否失败。

共有3个答案

宣原
2023-03-14

在您的gradle-wrapper.properties中,请尝试使用:

分配URL=https://services.gradle.org/distributions/gradle-4.3-rc-2-all.zip

伍捷
2023-03-14

libgdx论坛kekkou的解决方案:http://www.badlogicgames.com/forum/viewtopic.php?f=11

他的解决方案是:移动项目(': android') {}块在根build.gradle到android\build.gradle.

这使所有命令再次工作。我没有发现任何缺点。

在我的项目上提交此修复:https://github.com/Leejjon/BluffPoker/commit/d10deb090c2d80e641d733efdaa85f99c0a9fe2f

司徒俊健
2023-03-14

正如这个bug评论员指出的那样:https://issuetracker.google.com/issues/77605097#comment7

禁用Gradle的“按需配置”功能(在设置:构建、执行和部署:编译器中)是一种可行的解决方法。

既然我这么做了,我的单元测试又开始工作了。

 类似资料:
  • 对于php开发者来说,做单元测试并不是很方便,这也是大部分phper不愿意写单元测试的原因。但是单元测试对提高程序的质量来说,有实在是太重要的了。 有关这一点,我也是在学习java,体验过单元测试的魅力之后才切身体会到的。 那么现在我们就以herosphp为栗子,一起来看看php的单元测试环境如何配置。 首先,毫无疑问,php的单元测试肯定是要依赖phpunit这个工具了。那么我们要先 安装php

  • 如果我们需要自定义本地单元测试配置,可以这样做. 操作步骤: 打开Run\/Debug Configurations对话框 —> 点击左上角的+号 —> Android Tests 然后新增一个Android Tests配置窗口: 1.Name: 输入配置名 2.Module:选择需要测试的模块 3.Test: 指定测试范围 4.指定instrumentation runner 5.指定目标设备.

  • 我已经创建了一个应用程序使用Springboot和Hibernate,我想配置它的单元测试。 首先,这是DAO接口。 这是DAO接口的实现 然后我创建了一个测试类,如下所示 我已经将application.properties文件放在test和src目录的资源中。 我尝试运行此单元测试用例,但由于以下错误而失败: 那么我可以知道为DAO层配置单元测试的最佳方法吗?

  • 这是我在Python中的第一个项目,我刚刚学习了框架。测试模块运行良好,当我做,但当我想执行某个类或方法,如留档中所说,使用: 我得到以下错误: 我运行命令的目录包含(我还尝试将名称更改为),带有和方法都以开头,这里是我在终端上运行的命令: 我在任何地方都找不到类似的问题,知道错误背后的原因以及如何在模块或方法内部运行某个类将是非常好的

  • 配置和运行本地单元测试 本地单元测试 本地单元测试用来执行那些对Android没有依赖或Android依赖容易mock的单元测试. 本地单元测试运行在自己电脑上,测试用例在本地虚拟机上编译运行,执行速度快. 本地单元测试写在app\/src\/test\/java目录下. 本地单元测试使用JUnit或TestNG测试框架. 使用的演示代码 这里使用Google官方开源的示例进行演示,地址:http

  • 问题内容: 如何在Swift中为代码路径实现单元测试? 例如,我有以下快速代码 我想对y = 0的情况进行单元测试。 注意,我要使用fatalError而不是其他任何断言函数。 问题答案: Nimble(“用于Swift和Objective- C的Matcher框架”)得到了支持: 迅捷断言 如果使用的是Swift,则可以使用throwAssertion匹配器检查是否抛出了断言(例如fatalEr