【问题标题】:Unit tests terminated in Debug mode单元测试在调试模式下终止
【发布时间】:2016-04-17 11:28:44
【问题描述】:

我在 Windows 7 和 Windows 10 Pro、Gradle 2.9、JDK 1.7.0_65 下使用 IntelliJ IDEA 15.0.2(社区版)。在 VMware Workstation 11.1.3 下作为来宾安装的操作系统

我创建了具有单个空活动的 Android Gradle 应用程序,并想检查单元测试支持的工作原理。 IDE创建了一个单元测试模块ApplicationTest.java,它只包含构造函数。右键单击 [java] 文件夹,我创建了“All in Module”JUnit3 测试配置。

当我运行它们时测试成功完成,但是如果我调试配置则失败。失败原因显示“终止”(screenshot,IDEA log),在文档中解释为“测试终止。此状态分配给通过单击“停止”按钮取消的测试。只是想确认我没有点击停止按钮。

Logcat 日志不报告任何失败,IDE 日志报告 2 次测试也通过。但是问题仍然存在,因为 IntelliJ 仍然报告终止。

有时我还会收到“测试框架意外退出”错误并且没有测试成功。

我做了一些研究,发现了类似的问题,没有提到真正的解决方案。强烈怀疑这是配置问题。

我做错了什么?

【问题讨论】:

标签: java android unit-testing intellij-idea


【解决方案1】:

在我们的案例中,修复(在较新的 Android 版本中可能不需要)是:

  1. 打开 Edit Configuration... 为 All tests(或您将其重命名为什么)。
  2. 切换到Debugger 选项卡。
  3. 最后,在Debug mode 组合框中,选择Java 选项,因为:
    • 虽然我们有很多原生代码, Android-studio 3.2.1(我们正在使用)似乎不支持调试两者(但仅 Java 模式可以正常工作)。

【讨论】:

    【解决方案2】:

    在我的情况下,问题是通过在测试的运行配置中设置来解决的: 缩短命令行 -> JAR 清单。

    【讨论】:

      【解决方案3】:

      为了摆脱调试模式下的单元测试问题,我删除了 android studio explorer 中的所有测试文件夹,然后我在 build.gradle(module) 文件中注释了三个测试实现行。然后我将 android studio 菜单(IDE 顶部)中的组合框从“all in app”更改为“app”。

      https://i.stack.imgur.com/alPrS.png

      【讨论】:

      • 感谢您的建议。请注意,最初的问题是关于 IntelliJ IDEA,所以这个解决方案不适用
      【解决方案4】:

      Gabor 的建议似乎为我解决了这个问题。在 Mac 上(我假设是在 Windows 机器上,但到达那里的路线不同)转到首选项:

      从顶部的菜单栏 Android Studio → 首选项

      或

      点击 ⌘ 和 , 直接跳到它。

      然后在菜单搜索框中输入“instant”。取消选中“启用即时运行..”复选框,如下图所示。

      这为我解决了问题;甚至不需要重新启动/杀死 ADB。

      好像是默认开启的,我在开发过程中经常使用它来热插拔更改,所以我在运行 Espresso 测试时没有想到要关闭它。

      【讨论】:

      • 我不确定 Windows 操作系统下 Android Studio 中的相应选项,但最初的问题是关于 IntelliJ IDEA,它没有“即时运行”开关
      猜你喜欢
      • 2021-04-09
      • 1970-01-01
      • 2023-04-02
      • 1970-01-01
      • 2018-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多