android - 为什么 Android Studio 编译我的整个应用程序以启动原始单元测试?
问题描述
每当我“从边距菜单”启动一个单元测试时(见截图),它没有任何 Android 依赖项,Android Studio 编译我的整个应用程序只运行一个原始断言。
这是我的应用程序需要完全编译的预期行为吗?我期待单元测试非常快,并且只编译测试中提到的那些类,并且它们的依赖类将被编译用于单元测试。
此外,如果我在测试中添加任何 Android 类,例如Application
or AppCompatActivity
,它仍然会成功完成。每一篇关于 Android 测试的文章都说,不可能运行依赖于任何 Android 库的单元测试。
解决方案
Gradle 项目的结构通常具有main
源集和test
源集。它们分别编译并test
配置为依赖于main
. Gradle 所知道的是,main
如果它应该运行,它需要它test
。因此它main
在编译之前编译所有内容test
。test
如果您查看“构建”面板,您可以在编译时看到这一点。事实上,如果其中的任何类main
有语法错误,它甚至不会尝试编译test
,即使test
.
推荐阅读
- ios - UICollectionView 使用 UILabel 加载 Emoji 内存增长且未回收
- azure - Azure 健康机器人门户
- python - 如何在 python 的窗口机器上安装 Sqlcipher
- linux - 在while循环中进入bash的意外字符
- c# - c# 从 json 对象中获取嵌套数据值
- javascript - 使用 JS 从嵌套 JSON 中提取值到数组
- html - 如何在 div 上叠加图像
- c - 有人可以解释while循环中给出的条件吗
- javascript - 强制 Ipad 下载 pdf 并在新标签页中打开
- api - 我无法写入从 API 中提取的数据(Flutter)