如何 运行 单元测试 Android 不在设备或模拟器上?

How to run unit tests for Android is not on the device or emulator?

在 android studio 的新子项目中,据我了解,此集成测试 运行 在设备或模拟器上,检查应用程序的功能取决于 SDK android。但是我确实有不依赖于android的方法。他们的测试,我想花在JVM上,避免运行模拟器。

从 Android Studio 和 gradle 插件的 1.1.0 RC1 版开始,您可以 运行 JVM 上的 JUnit 4 单元测试而无需设备。

看看这个post

如果您拥有最新版本的 Android Studio(1.1 及更高版本),则无需担心使用正确的 gradle 插件;它已经完成了。您还需要在 Settings > Gradle > Experimental.

中设置您要使用实验性单元测试功能

实际上,我正在尝试使用 MVP 更改我的项目并对所有内容进行单元测试,而不是使用 Espresso 来测试项目。

我有一个项目,其中包含 160 个测试,包括 espresso 和一些闲置资源,运行 需要 20-30 分钟,而 运行 在 aws farm 或测试机器人($5/run/device),所以也许 MVP 和单元测试有希望。

看这里:http://tools.android.com/tech-docs/unit-testing-support

  1. 您可以定义一个 app/src/test/java/<apk_package>/ 文件夹并将所有 JUnit 4 测试放在那里,它们将 运行 没有模拟器

  2. 添加依赖:testCompile 'junit:junit:4.12'

  3. 运行 测试:D

只是补充一点,将 junit 测试文件放在 app/src/test/java/[apk_package]/ 文件夹中很重要,而不是 app/src/androidTest/java/[apk_package ]/ 文件夹!将其放入 androidTest 文件夹将强制 运行 android 模拟器或设备 运行ner。