繁体   English   中英

单元测试在调试模式下终止

[英]Unit tests terminated in Debug mode

我在 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 测试配置。

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

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

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

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

我做错了什么?

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

从顶部的菜单栏Android Studio → Preferences

要么

点击⌘ 并直接跳转到它。

然后在菜单搜索框中键入“即时”。 取消选中“Enable instant run..”框,如下图所示。

在此处输入图像描述

那为我修好了; 甚至不需要重启/终止 ADB。

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM