昨晚把第五章未译完的几句话攻克了。只是第六章没怎么译,明后天又是周末,假设周一前第六章翻译完的话,周一再发第六章。html
本文译自Android官方技术文档《Gradle Plugin User Guide》,原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide。android
翻译不易。转载请注明CSDN博客上的出处:app
http://blog.csdn.net/maosidiaoxian/article/details/42023609
框架
前三章见《Android官方技术文档翻译——Gradle 插件用户指南(1-3)》。maven
第四章见《Android官方技术文档翻译——Gradle 插件用户指南(4)》。ide
翻译工做耗时费神。假设你认为本文翻译得还OK,请点击文末的“顶”,我在精神上会倍受鼓舞的,谢谢。post
翻译若有错讹。敬请指正。gradle
如下是可以用来配置測试应用程序的几个值:
ui
testHandleProfilinggoogle
testFunctionalTest
android {defaultConfig {testPackageName "com.test.foo"testInstrumentationRunner "android.test.InstrumentationTestRunner"testHandleProfiling truetestFunctionalTest true}}
这是manifest 本身主动生成的缘由之中的一个。
此外,sourceSet可以配置本身的依赖。
默认状况下,应用程序和它本身的依赖都会被加入到測试应用程序的classpath中,但是也可以经过下面来扩展
dependencies {androidTest Compile 'com.google.guava:guava:11.0.2'}
它不是main里的assemble任务的依赖项,当设置測试执行时它不会被本身主动调用。
眼下仅仅有一种Build Type会进行測试。
默认状况下是debugBuild Type,但它可以被又一次配置:
android {...testBuildType "staging"}
所有測试结果都会保存为 XML 文件,路径为
build/androidTest-results
android {...
testOptions {resultsDir = "$project.buildDir/foo/results"}}
结果就是測试 APK 不只仅包括其本身的代码。还包括測试库以及測试库的所有依赖项。
这个Library的manifest 会合并到測试应用程序的manifest中(如引用此Library的不论什么项目)。
AndroidTest任务改成仅安装 (以及卸载)測试 APK (因为没有其它的 APK 要安装)
其它的都是一样的。
build/reports/ androidTest s
这个位置可以经过下面方式本身定义
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
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'}
}