Eug*_*ene 16 android unit-testing gradle
在Android Studio中运行单元测试有两个选项:
Gradle-Aware Make
).testAppDebugUnitTest
任务来自可用的Gradle任务列表.第一个实际上包含两个任务: - :app:assembleAppDebug
和:app:assembleAppDebugUnitTest
第二个就是它testAppDebugUnitTest
自己.
第一个是Google工具团队推荐的方式,但与第二个相比需要两倍的时间.
除了持续时间之外,如何运行单元测试没有明显区别.您可能认为您的代码不会在没有编译的情况下进行编译assembleAppDebug
,但事实并非如此 - 您在测试中引入任何类的更改或者按预期编译和执行的测试本身.
那么,有什么区别,为什么它是推荐的方式,如果在实际的单元测试运行之前需要两倍的时间来准备一切?
Kin*_*ses 13
我没有太多Gradle的工作经验,但是当然最好使用Google Team推荐的工具而不是其他工具.
与第二个相比,它需要两倍的时间.
如果您使用Android(或Android Studio)的新Gradle构建系统,您可能已经意识到,即使是最简单的Gradle调用(例如gradle项目或成绩任务)也非常慢.
为了避免这个时间在android studio中进行处理,你需要加快Gradle构建时间.它肯定会有所作为
以下是加快Gradle构建时间的几个步骤>>
在编译器设置(Android Studio - >首选项 - >项目设置[您的项目] - >编译器(基于Gradle的Android项目))中,在"命令行选项"框中键入--offline.
从约4分钟到约20秒.
/home/<username>/.gradle/
(Linux)的/Users/<username>/.gradle/
(苹果电脑)C:\Users\<username>\.gradle
(视窗)将此行添加到文件中:
org.gradle.daemon=true
Run Code Online (Sandbox Code Playgroud)
从现在开始,Gradle将使用守护进程来构建,无论您是从命令行使用Gradle还是在Android Studio中构建.您还可以将gradle.properties文件放在项目的根目录中,并将其提交到SCM系统.但是你必须为每个项目做这件事(如果你想在每个项目中使用守护进程).
注意:如果您没有使用Gradle构建任何东西一段时间(目前为3小时),它将停止守护进程,这样您将在下一次构建时遇到很长的启动时间.
有关详细信息,请参阅此建筑和运行应用程序通过Gradle和Android Studio比通过Eclipse慢
绩效改进是2015年Gradle路线图(并进入2016年)的重要任务之一.所以希望,我们会看到这些年来总体表现有所增加.
体中+有一个讨论与关于它的开发者.
希望这些信息对您有所帮助.
您的选项 1 花费两倍时间的原因是因为大部分时间都浪费在启动 Gradle 和检查任务是否最新上。因此,运行无操作汇编会使它的时间增加一倍。您可以通过自己运行来验证这一点,并检查执行无操作所浪费的时间。
使用 gradle,使用 "--offline --daemon --parallel" 运行可以让你到达某个地方(当你对 Maven/JCenter 存储库的互联网访问速度很慢时,离线很有用,守护进程有助于保持文件缓存,并行特别有用,如果您已启用 MultiDex 并将您的应用程序拆分为多个小模块)
如果您只是问“在 Android 中运行单元测试的最快方法是什么?” 不考虑您需要的更改,我建议切换到 Buck ( https://buckbuild.com/ ),它在 dex-xing 和旋转测试上比 Gradle 快 10 倍,但对 AS 的支持有限。
归档时间: |
|
查看次数: |
2618 次 |
最近记录: |