在Android Studio中用Gradle添加Robolectric
我们用Robolectric测试的话需要在gradle中进行配置,国内的详细教程太过简易,而且很多是低版本下的配置方案。所以经过本人的仔细摸索,找到了现在高版本中的配置方案,主要还是参考了官网的配置教程:https://github.com/robolectric/robolectric-gradle-plugin
下面贴上完整的步骤,看完后就能配置成功了~
下面红字部分就是要添加的部分。
首先,在最外面的build.gradle中配置classpath
// Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { repositories { jcenter() mavenCentral() } dependencies { classpath 'com.android.tools.build:gradle:1.1.0' classpath 'org.robolectric:robolectric-gradle-plugin:1.0.1' // NOTE: Do not place your application dependencies here; they belong // in the individual module build.gradle files } } allprojects { repositories { jcenter() mavenCentral() } }
然后在,项目的build.gradle中进行如下配置:
apply plugin: 'com.android.application' // 1.test plugin apply plugin: 'org.robolectric' android { compileSdkVersion 22 buildToolsVersion "22.0.1" defaultConfig { applicationId "kale.testapplication" minSdkVersion 15 targetSdkVersion 18 versionCode 1 versionName "1.0" } buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } packagingOptions { exclude 'META-INF/LICENSE' exclude 'META-INF/LICENSE.txt' exclude 'META-INF/NOTICE' exclude 'META-INF/NOTICE.txt' exclude 'LICENSE.txt' } } dependencies { androidTestCompile 'junit:junit:4.12' compile fileTree(dir: 'libs', include: ['*.jar']) compile 'com.android.support:appcompat-v7:22.1.1' // 2. test-libs androidTestCompile 'org.robolectric:robolectric:2.4' } // 3. test settings robolectric { // Configure includes / excludes include '**/*Test.class' exclude '**/espresso/**/*.class' // Configure max heap size of the test JVM maxHeapSize = '2048m' // Configure the test JVM arguments - Does not apply to Java 8 jvmArgs '-XX:MaxPermSize=512m', '-XX:-UseSplitVerifier' // Specify max number of processes (default is 1) maxParallelForks = 4 // Specify max number of test classes to execute in a test process // before restarting the process (default is unlimited) forkEvery = 150 // configure whether failing tests should fail the build ignoreFailures true // use afterTest to listen to the test execution results afterTest { descriptor, result -> println "Executing test for ${descriptor.name} with result: ${result.resultType}" } }
参考自:
http://blog.yohei.org/android-studio-gradle-robolectric1/
https://github.com/robolectric/robolectric-gradle-plugin
分类:
Other Skills
, OtherView
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?