文章目录
- 一、TestOptions#unitTests 脚本块配置
- 1、配置简介
- 2、配置原型
- 3、使用示例
- 二、UnitTestOptions 配置简介
- 1、UnitTestOptions#returnDefaultValues 属性
- 2、UnitTestOptions#all 方法
Android Plugin DSL Reference 参考文档 :
- 文档主页 : https://google.github.io/android-gradle-dsl/2.3/
- BaseExtension 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.BaseExtension.html
- AppExtension ( build.gradle#android 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.AppExtension.html
- build.gradle#android 模块配置文档 : android-gradle-dsl/2.3/com.android.build.gradle.AppExtension.html
- ProductFlavor ( build.gradle#android#defaultConfig 配置 ) 文档 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.ProductFlavor.html
- ProductFlavor#externalNativeBuild 配置 ( build.gradle#android#defaultConfig#externalNativeBuild 配置 ) : com.android.build.gradle.internal.dsl.ProductFlavor:externalNativeBuild
- ExternalNativeBuildOptions ( build.gradle#android#defaultConfig#externalNativeBuild 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.ExternalNativeBuildOptions.html
- NdkBuildOptions ( build.gradle#android#defaultConfig#externalNativeBuild#ndkBuild 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.NdkBuildOptions.html
- CmakeOptions ( build.gradle#android#defaultConfig#externalNativeBuild#cmake 配置 ) 文档位置 : android-gradle-dsl-gh-pages/2.3/com.android.build.gradle.internal.dsl.CmakeOptions.html
- JackOptions ( build.gradle#android#defaultConfig#jackOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.JackOptions.html
- AnnotationProcessorOptions ( 注解处理器配置 ) ( build.gradle#android#defaultConfig#javaCompileOptions配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AnnotationProcessorOptions.html
- NdkOptions ( build.gradle#android#defaultConfig#ndk 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.NdkOptions.html
- NDK 参考文档 : Add C and C Code to Your Project.
- VectorDrawablesOptions ( build.gradle#android#defaultConfig#vectorDrawables 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.VectorDrawablesOptions.html
- BuildType ( build.gradle#android#buildTypes 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.BuildType.html
- SigningConfig ( build.gradle#android#signingConfigs 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.SigningConfig.html
- AaptOptions ( build.gradle#android#aaptOptions 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AaptOptions.html
- AndroidSourceSets ( build.gradle#android#sourceSets 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceSet.html
- AndroidSourceDirectorySet ( build.gradle#android#sourceSets#aidl/assets/java/jni/jniLibs 配置 ) 文档位置 :android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceDirectorySet.html
- AndroidSourceFile ( build.gradle#android#sourceSets#manifest 配置 ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.api.AndroidSourceFile.html
- DataBindingOptions ( build.gradle#android#dataBinding ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.DataBindingOptions.html
- DexOptions ( build.gradle#android#dexOptions ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.DexOptions.html
- LintOptions ( build.gradle#android#lintOptions ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.LintOptions.html
- PackagingOptions ( build.gradle#android#packagingOptions ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.PackagingOptions.html
- Splits ( build.gradle#android#splits ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.Splits.html
- AbiSplitOptions ( build.gradle#android#splits#abi ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.AbiSplitOptions.html
- LanguageSplitOptions ( build.gradle#android#splits#language ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.LanguageSplitOptions.html
- DensitySplitOptions ( build.gradle#android#splits#density ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.DensitySplitOptions.html
- TestOptions ( build.gradle#android#testOptions ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.TestOptions.html
- Android 测试相关文档 : https://developer.android.google.cn/training/testing
- UnitTestOptions ( build.gradle#android#testOptions#unitTests ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.TestOptions.UnitTestOptions.html
一、TestOptions#unitTests 脚本块配置
TestOptions ( build.gradle#android#testOptions ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.TestOptions.html
UnitTestOptions ( build.gradle#android#testOptions#unitTests ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.TestOptions.UnitTestOptions.html
1、配置简介
TestOptions#unitTests 脚本块配置 用于配置 设备化测试过程中是否关闭动画 ;
2、配置原型
TestOptions#unitTests 脚本块配置原型 : 该脚本块用于配置 TestOptions#unitTests 属性 ;
代码语言:javascript复制unitTests { }
Configures unit test options.
配置单元测试选项.
Delegates to:
UnitTestOptions from unitTests
TestOptions#unitTests 属性配置原型 : 该配置是 UnitTestOptions 类型的 ;
代码语言:javascript复制UnitTestOptions unitTests
Configures unit test options.
3、使用示例
TestOptions#unitTests 脚本块配置使用示例 :
代码语言:javascript复制android {
testOptions {
animationsDisabled true
unitTests.all {
if (it.name == 'testDebug') {
systemProperty 'debug', 'true'
}
}
}
}
二、UnitTestOptions 配置简介
UnitTestOptions ( build.gradle#android#testOptions#unitTests ) 文档位置 : android-gradle-dsl/2.3/com.android.build.gradle.internal.dsl.TestOptions.UnitTestOptions.html
UnitTestOptions 配置类中 , 提供了 returnDefaultValues 属性配置 和 all(configClosure) 方法配置 ;
代码语言:javascript复制Properties 属性配置
returnDefaultValues
Whether unmocked methods from android.jar should throw exceptions or return default values (i.e. zero or null).
是否从android中卸载了方法。jar应该抛出异常或返回默认值(即零或null)。
Methods 方法配置
all(configClosure)
Configures all unit testing tasks.
配置所有单元测试任务。
1、UnitTestOptions#returnDefaultValues 属性
UnitTestOptions#returnDefaultValues 属性 : 在 本地化测试 的代码中 , 无法调用 android.jar 中的方法 , 只测试 Java 代码逻辑 , 不涉及 Android 的 API ;
该属性一般不进行配置 ;
UnitTestOptions#returnDefaultValues 属性原型 :
代码语言:javascript复制boolean returnDefaultValues
Whether unmocked methods from android.jar should throw exceptions or return default values (i.e. zero or null).
See Test Your App for details.
2、UnitTestOptions#all 方法
方法原型 :
代码语言:javascript复制void all(Closure<Test> configClosure)
Configures all unit testing tasks.
配置单元测试任务
See Test for available options.
Inside the closure you can check the name of the task to configure only some test tasks, e.g.
UnitTestOptions#all 方法 : 该方法的参数是代码块 , 需要传入闭包作为参数 ;
代码语言:javascript复制android {
testOptions {
unitTests.all {
if (it.name == 'testDebug') {
systemProperty 'debug', 'true'
}
}
}
}
该闭包是 Test 类代理的 , 该类是 Gradle 中的 org.gradle.api.tasks.testing.Test 类 , 参考文档 https://docs.gradle.org/current/javadoc/org/gradle/api/tasks/testing/Test.html
Gradle 中 Test 单元测试配置类参考 :
代码语言:javascript复制 plugins {
id 'java' // adds 'test' task
}
test {
// Discover and execute JUnit4-based tests
useJUnit()
// Discover and execute TestNG-based tests
useTestNG()
// Discover and execute JUnit Platform-based tests
useJUnitPlatform()
// set a system property for the test JVM(s)
systemProperty 'some.prop', 'value'
// explicitly include or exclude tests
include 'org/foo/**'
exclude 'org/boo/**'
// show standard out and standard error of the test JVM(s) on the console
testLogging.showStandardStreams = true
// set heap size for the test JVM(s)
minHeapSize = "128m"
maxHeapSize = "512m"
// set JVM arguments for the test JVM(s)
jvmArgs '-XX:MaxPermSize=256m'
// listen to events in the test execution lifecycle
beforeTest { descriptor ->
logger.lifecycle("Running test: " descriptor)
}
// Fail the 'test' task on the first test failure
failFast = true
// listen to standard out and standard error of the test JVM(s)
onOutput { descriptor, event ->
logger.lifecycle("Test: " descriptor " produced standard out/err: " event.message )
}
}