在Android Studio进行“简单配置”单元测试
起因 1、在Android studio 刚出。本人想弄单元测试,可惜当时Android studio不知道抽什么风(准确来说,应该是我不会弄而已)。无法执行到相应的代码。 后来突然自己又抽风。又想去弄一下Android junit。 2、本文基于做过Eclipse开发使用过Android junit,如果Eclipse的Android Junit没有使用过,我没有说过吧! 准备环境,配置 1、官网Demo地址:https://github.com/googlesamples/android-testing-templates.git 文档是:https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support 2、环境 · 根据demo中
· 单纯想运行java的单元测试引入 // Dependencies for local unit tests testCompile 'junit:junit:' + rootProject.ext.junitVersion testCompile 'org.mockito:mockito-all:' + rootProject.ext.mockitoVersion testCompile 'org.hamcrest:hamcrest-all:' + rootProject.ext.hamcrestVersion · 想运行Android的Junit得引入 // Android Testing Support Library's runner and rules androidTestCompile 'com.android.support.test:runner:' + rootProject.ext.runnerVersion androidTestCompile 'com.android.support.test:rules:' + rootProject.ext.rulesVersion · 后在 defaultConfig 节点添加
defaultConfig { testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner' }3、以上配置要配置在“启动项目中”build.gradle文件中,方可自动关联上启动项目 · Android Studio本来启动项目中的测试代码分为两个目录
· 如果是通过更改“sourceSets”的话。那要得重新配置注明相应的文件夹(这是Eclipse转AS导出的配置) sourceSets{ sourceSets{ main{ java.class="lazy" data-srcDirs = ['class="lazy" data-src'] } androidTest{ java.class="lazy" data-srcDirs = ['androidTest/class="lazy" data-src'] } test{ java.class="lazy" data-srcDirs = ['test/class="lazy" data-src'] } } 后把相应的文件放入具体目录 androidTest “Android的Junit” test “java的单元测试” 代码 junit public class ExampleUnitTest { @Test public void addition_isCorrect() throws Exception { System.out.println("123"); } } Android junit public class AndroidRuntimeCodeTest extends AndroidTestCase { public void testHello() throws Exception { System.out.println("testHello"); } } 结论 1、注意事项 以前Eclipse做单元测试得往AndroidManifest.xml标明 <manifest > <instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.viewtest" /> </manifest> <application> <uses-library android:name="android.test.runner" /> </application> Android studio要在build.gradle 导入相应的包 在 android{ defaultConfig { testInstrumentationRunner 'android.support.test.runner.AndroidJUnitRunner' } } 2、还有一点:是“测试使用的需要的包”遇到与“启动项目的包”冲突时,使用 引用:https://docs.gradle.org/current/dsl/org.gradle.api.artifacts.ResolutionStrategy.html https://sites.google.com/a/android.com/tools/tech-docs/new-build-system/user-guide#TOC-Resolving-conflicts-between-main-and-test-APK configurations.all { resolutionStrategy { androidTestCompile 'com.android.support.test:runner:0.4.1' androidTestCompile 'com.android.support.test:rules:0.4.1' forcedModules = ['com.android.support:support-annotations:23.0.1'] } }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341