Android官方技术文档翻译——Gradle 插件用户指南(5)
昨晚把第五章未译完的几句话攻克了。只是第六章没怎么译,明后天又是周末,假设周一前第六章翻译完的话,周一再发第六章。
本文译自Android官方技术文档《Gradle Plugin User Guide》,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide。
翻译不易。转载请注明CSDN博客上的出处:
http://blog.csdn.net/maosidiaoxian/article/details/42023609
前三章见《Android官方技术文档翻译——Gradle 插件用户指南(1-3)》。
第四章见《Android官方技术文档翻译——Gradle 插件用户指南(4)》。
翻译工作耗时费神。假设你认为本文翻译得还OK,请点击文末的“顶”,我在精神上会倍受鼓舞的,谢谢。
翻译如有错讹。敬请指正。
測试
基础知识和配置
/androidTest/
从这里的 sourceSet 构建出来的是一个測试的apk,它能够部署到设备上,使用 Android 的測试框架去測试应用程序。它能够包括单元測试、 instrumentation 測试和后来的 uiautomator
測试。这个
SourceSet 不应该包括 AndroidManifest.xml ,由于它是会自己主动生成的。
以下是能够用来配置測试应用程序的几个值:
- testPackageName
- testInstrumentationRunner
testHandleProfiling
testFunctionalTest
正如前面所示。它们在defaultConfig对象中配置:
android {defaultConfig {testPackageName "com.test.foo"testInstrumentationRunner "android.test.InstrumentationTestRunner"testHandleProfiling truetestFunctionalTest
true}}
Type对象自己定义过。
这是manifest 自己主动生成的原因之中的一个。
此外,sourceSet能够配置自己的依赖。
默认情况下,应用程序和它自己的依赖都会被加入到測试应用程序的classpath中,可是也能够通过下面来扩展
dependencies {androidTestCompile
'com.google.guava:guava:11.0.2'}
它不是main里的assemble任务的依赖项,当设置測试执行时它不会被自己主动调用。
眼下仅仅有一种Build Type会进行測试。
默认情况下是debugBuild Type,但它能够被又一次配置:
android {...testBuildType "staging"}
执行測试
- 确保应用程序和測试应用程序都被构建 (依赖于 assembleDebug 和 assembleTest)
- 安装这两个应用程序
- 执行測试
- 卸载这两个应用程序。
假设连接了多个设备。全部的測试都会并行执行在全部连接的设备上。假设不论什么一个设备的当中一项測试失败。那么整个构建都将失败。
全部測试结果都会保存为 XML 文件,路径为
build/androidTest-results
它能够通过下面方式来配置
配置
android {...
testOptions {resultsDir = "$project.buildDir/foo/results"}}
測试 Android Libraries
唯一的差别是整个库 (和它的依赖项) 会自己主动作为Library依赖加入到測试应用程序中。
结果就是測试 APK 不仅仅包括其自己的代码。还包括測试库以及測试库的全部依赖项。
这个Library的manifest 会合并到測试应用程序的manifest中(如引用此Library的不论什么项目)。
AndroidTest任务改为仅安装 (以及卸载)測试 APK (由于没有其它的 APK 要安装)
其它的都是同样的。
測试报告
Android 插件在此基础上扩展了 HTML 报告。它聚合了全部连接的设备的測试结果。
单个项目的报告
build/reports/androidTests
它类似于 jUnit 报告的位置build/reports/tests,或其它通常位于build/reports/<plugin>/的报告。
这个位置能够通过下面方式自己定义
android {...
testOptions {reportDir = "$project.buildDir/foo/report"}}
多项目报告
要做到这一点,须要使用同一个文件里的还有一个插件。
这个插件能够例如以下配置:
buildscript {repositories {mavenCentral()}
dependencies {classpath 'com.android.tools.build:gradle:0.5.6'}}
apply plugin: 'android-reporting'
然后在根目录中,以下的命令就能够执行全部的測试并聚合測试报告:
gradle deviceCheck mergeAndroidReports --continue
注: --continue选项确保全部子项目的測试都会被执行,即使当中的一个子项目的測试失败了。假设不加上这个选项,第一个失败的測试将会中断全部測试的执行,这可能导致有些项目还没有执行它们的測试。
Lint 支持
android {
lintOptions {
// 设置为 true时lint将不报告分析的进度quiet true// 假设为 true。则当lint发现错误时停止 gradle构建abortOnError false// 假设为 true,则仅仅报告错误ignoreWarnings true// 假设为 true。则当有错误时会显示文件的全路径或绝对路径 (默认情况下为true)//absolutePaths true// 假设为 true,则检查全部的问题。包含默认不检查问题checkAllWarnings true// 假设为 true,则将全部警告视为错误warningsAsErrors true// 不检查给定的问题iddisable 'TypographyFractions','TypographyQuotes'// 检查给定的问题 idenable 'RtlHardcoded','RtlCompat', 'RtlEnabled'// * 仅 * 检查给定的问题 idcheck 'NewApi', 'InlinedApi'// 假设为true。则在错误报告的输出中不包含源码行noLines true// 假设为 true,则对一个错误的问题显示它所在的全部地方,而不会截短列表。等等。showAll true// 重置 lint 配置(使用默认的严重性等设置)。lintConfig file("default-lint.xml")// 假设为 true。生成一个问题的纯文本报告(默觉得false)textReport true// 配置写入输出结果的位置。它能够是一个文件或 “stdout”(标准输出)textOutput 'stdout'// 假设为真。会生成一个XML报告。以给Jenkins之类的使用xmlReport false// 用于写入报告的文件(假设不指定,默觉得lint-results.xml)xmlOutput file("lint-report.xml")// 假设为真,会生成一个HTML报告(包含问题的解释,存在此问题的源代码,等等)htmlReport true// 写入报告的路径,它是可选的(默觉得构建文件夹下的 lint-results.html )htmlOutput file("lint-report.html")
// 设置为 true, 将使全部release 构建都以issus的严重性级别为fatal(severity=false)的设置来执行lint
// 而且,假设发现了致命(fatal)的问题,将会中止构建(由上面提到的 abortOnError 控制)
checkReleaseBuilds true
// 设置给定问题的严重级别(severity)为fatal (这意味着他们将会// 在release构建的期间检查 (即使 lint 要检查的问题没有包括在代码中)fatal 'NewApi', 'InlineApi'// 设置给定问题的严重级别为errorerror 'Wakelock', 'TextViewEdits'// 设置给定问题的严重级别为warningwarning 'ResourceAsColor'// 设置给定问题的严重级别(severity)为ignore (和不检查这个问题一样)ignore 'TypographyQuotes'}
}
Android官方技术文档翻译——Gradle 插件用户指南(5)的更多相关文章
- Android官方技术文档翻译——Gradle 插件用户指南(4)
最近赶项目,白天基本没时间,只有晚上在家的时候才能看一看.昨天晚上只翻译完了第四章,今天就只发第四章吧. 本文译自Android官方技术文档<Gradle Plugin User Guide&g ...
- Android官方技术文档翻译——Gradle 插件用户指南(7)
本文译自Android官方技术文档<Gradle Plugin User Guide>,原文地址:http://tools.android.com/tech-docs/new-build- ...
- Android官方技术文档翻译——Gradle 插件用户指南(6)
没想到翻译这篇<Gradle 插件用户指南>拖了差不多一个月,还跨年了.不过还好,在2号时终于一口气把剩下的给翻译完了(其实那天剩下的也就不到一章). 今天先发一下第六章,明天再发第七章. ...
- Android官方技术文档翻译——Gradle 插件用户指南(1-3)
不知道是什么网络问题,上午一直发不了博客,其它页面基本正常,就是在写博客这里,每次打开都是响应超时.刚才用了VPN,顺便试了一下,竟然能够编辑.想是CDN之类的问题吧. 这次翻译的是Gradle 插件 ...
- Android官方技术文档翻译——新构建系统概述
本文译自Android官方技术文档<New Build System>,原文地址:http://tools.android.com/tech-docs/new-build-system. ...
- Android官方技术文档翻译——迁移 Gradle 项目到1.0.0 版本
本文译自Android官方技术文档<Migrating Gradle Projects to version 1.0.0>,原文地址:http://tools.android.com/te ...
- Android官方技术文档翻译——IntelliJ 项目迁移
本文译自Android官方技术文档<Migrating from IntelliJ Projects>,原文地址:http://tools.android.com/tech-docs/ne ...
- Android官方技术文档翻译——Eclilpse项目迁移
本文译自Android官方技术文档<Migrating From Eclipse Projects>,原文地址:http://tools.android.com/tech-docs/new ...
- Android官方技术文档翻译——清单合并
本文译自Android官方技术文档<Manifest Merger>,原文地址:http://tools.android.com/tech-docs/new-build-system/us ...
随机推荐
- JAVAWEB开发环境搭建,附JDK开发环境一键配置批处理bat
JDK配置: CLASSPATH: .;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar JAVA_HOME: C:\Program Files\J ...
- flask中使用xlsxwriter导出excel文件
最近需要使用flask导出xlsxwriter生成的excel文件,在文件比较小的情况下,可以直接导出. 首先,这里使用了StringIO,导出使用的模块 import xlsxwriter impo ...
- TweenMax动画库学习
之前在做HTML5移动端开发的时候,用的都是Animate.css,这个插件封装的的确很好,但是在做一些缓动方面的动画,它也有一定的不足之处,比如手要写一个连续的动画,需要不停的去重复写函数,使得代码 ...
- OpenTSDB-Writing Data
Writing Data You may want to jump right in and start throwing data into your TSD, but to really take ...
- concurrent.futures
concurrent.futures concurrent.futures提供高层次的接口,用来实现异步调用. 这个异步执行可以使用threads(ThreadPoolExecutor)或者proce ...
- 为Go程序创建最小的Docker Image
本文将会介绍如何使用docker打包一个golang编写的应用程序,最终的产物就是一个makefile文件,可别小瞧这短短几行代码,涉及的知识点可不少,接下来我们就仔细剖析一下吧. FROM gola ...
- js判断手机或Pc端登陆.并跳转到相应的页面
<script src="~/Web/js/jquery-1.10.1.min.js"></script> <script> $(functio ...
- HTTP协议类
本文从以下几方面介绍HTTP协议 HTTP协议的主要特点 HTTP报文的组成部分 HTTP方法 HTTP状态码 POST和GET的区别 什么是持久连接 什么是管线化 主要特点: http协议的特点: ...
- 基于Jquery UI的autocompelet改写,自动补全控件,增加下拉选项,动态设置样式,点击显示所有选项,并兼容ie6+
Jquery UI的autocompelete改写 注意:实现功能,除了原版的自动补全内容外,增加一个点击显示所有选项,样式能动态设置. 加载数据的来源为后台数据库读取. 具体代码如下: 引用 从官方 ...
- Chapter 7:Linking
概述: 在linux上,从c源码到可执行文件主要需要经历translator(compiler.assembler)生成object file,再经由linker连接成executable objec ...