受到  Just Say No to More End-to-End Tests

文章链接:http://googletesting.blogspot.tw/2015/04/just-say-no-to-more-end-to-end-tests.html

该文章启迪,决定对单元测试的内容稍做整理

Reboletric被测工程是Android Project,而测试工程是Java Project,执行的测试是Junit Test,并非Android Junit Test,跳过了模拟器,实现高效率运行

Reboletric官网:http://robolectric.org/getting-started/

工程环境Eclipse+maven(带M2Eclipse)插件

工程下载地址:

https://github.com/priyaaank/RobolectricSample

环境中,maven版本为3.1.1(需要根据情况更新到新版本);

robolectric包版本为:robolectric-2.4-jar-with-dependencies.jar

下载地址: https://repo1.maven.org/maven2/org/robolectric/robolectric/2.4/

M2Eclipse推荐安装方式:
插件方式,Help-Install new Software- 输入以下地址,
http://download.eclipse.org/technology/m2e/releases/

RobolectricSample示例工程

1.下载示例工程
2.命令行下切换到工程目录,执行android update project -p . --target 1 
(--target指定android的api level,android list命令可查询)
3.import 导入示例工程
4.配置build path,添加robolectric-***-jar-with-dependencies.jar包;
添加<your android install directory>/add-ons/addon-google_apis-google-**/libs/maps.jar

关于Google Maps API maps.jar file for android

First of all update your SDK->Google Play Services and then

Find this Path in your Computer :

...\android-sdk-windows\add-ons\addon-google_apis-google-17\libs\maps.jar

add this jar using Add External Jar...

导入包后的build path路径下如图所示:

5.右键test下工程,Right-click -> Run As ->JUnit Test

会提示如下对话框:

点击OK取消后,会弹出一个配置的对话框

6.

下载Android.jar

地址:http://www.java2s.com/Code/Jar/a/Downloadandroidjar.htm

配置Run Configuration,Right-click -> Run As -> Run Configurations
Tab: Classpath -> User Entries -> Add External JARs ...
找到android.jar

7.运行测试用例;右键点击测试用例,选择Run As -> Junit Test

执行后查看结果:

HttpTest.java这个case中导入的包

import com.google.inject.internal.Maps;

查到存在此文件的JAR包:

com.google.inject.internal.Maps.java

http://www.java2s.com/Code/Jar/g/Downloadguicepatches214sourcesjar.htm

执行mvn clean test后提示找不到com.google.inject.internal

笔者改为:

import com.google.inject.internal.util.$Maps;

com.google.inject.internal.util

com.google.inject.internal.util.Maps

http://bornjohannes-codex.eclipselabs.org.codespot.com/git/Imports/index.html?com/google/inject/internal/util/package-tree.html

执行后成功

可能遇到的问题:

1.Project build error: Unknown packaging: apk
在Eclipse中安装m2e-android插件

安装源:http://download.eclipse.org/technology/m2e/releases/
安装方法:Help -> Install new Software -> 在出来的对话框中点击 Add ->
Name:m2e-android
若m2e装好后仍未解决,检查Maven配置

Windows—>Preferences—>Maven—>User Settings,查看setting.xml
确保这里的Maven不是用的Eclipse自带的,而是本地下载的新版本的Maven

2.mvn clean install 报错:

Failure to find org.springframework:spring:jar:3.0.0.RELEASE in http://download.java.net/maven/2/ was cached in
the local repository, resolution will not be reattempted until the update interval of Java.Net has elapsed or updates are forced -> [Help 1] 解决办法:
Not sure if this works for Maven 3, here's what would work for Maven 2. This should work to clean the local repository: mvn dependency:purge-local-repository
Otherwise, try cleaning the specific artifact from your local repository: * Linux: ~/.m2
* Windows: C:\Documents and Settings\USER\.m2

另外见上两篇博文maven的两个坑:

3.http://www.cnblogs.com/melody-emma/p/5112658.html

4.http://www.cnblogs.com/melody-emma/p/5112722.html

5.@Override 的代码全部都报错

默认Maven中的JAVA版本是1.5,只要修改成1.6就好了

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>

希望本文能帮助你不再被坑


参考文章:http://blog.csdn.net/hunterno4/article/details/20653817

ReboletricSample工程搭建的更多相关文章

  1. 某马-某淘商城的day01--->分析,工程搭建,tomcat插件启动工程,svn,反思

    -1:为什么还要写某马的某淘商城呢? 答:万物更新,季节交替.新人总把旧人换.所以呢,前人写了N多遍的东西,我们依旧在学,所以下决心写某马的某淘商城.(也因为在学校还没找工作,所以找个相对长期的事情做 ...

  2. Django---框架简介和工程搭建

    Django框架 一.Django介绍 二.Django工程搭建 回到顶部 一.Django介绍 1.简介    Django的主要目的是简便.快速的开发数据库驱动的网站.它强调代码复用,多个组件可以 ...

  3. 单工程搭建springmvc+spring+mybatis(maven,idea)

    单工程搭建springmvc+spring+mybatis(maven,idea) 1.pom.xml <properties> <project.build.sourceEncod ...

  4. Mybatis工程搭建

    工程搭建 • 1依赖包 • 2配置文件 • 2.1spring-mybatis.xml • 2.2mybatis-config.xml自带配置文件 • 2.3 mapper(dao)对象 • 2.4 ...

  5. JAVAEE——宜立方商城01:电商行业的背景、商城系统架构、后台工程搭建、SSM框架整合

    1. 学习计划 第一天: 1.电商行业的背景. 2.宜立方商城的系统架构 a) 功能介绍 b) 架构讲解 3.工程搭建-后台工程 a) 使用maven搭建工程 b) 使用maven的tomcat插件启 ...

  6. JAVAEE——淘淘商城第一天:电商行业的背景和技术特点,商城的介绍、技术的选型、系统架构和工程搭建

    1. 学习计划 1.电商行业的背景. 2.电商行业的技术特点 3.商城的介绍 a) 常用的名词介绍 b) 系统功能介绍 4.淘淘商城的系统架构 a) 传统架构 b) 分布式架构 c) 基于服务的架构 ...

  7. SpringBoot - 工程搭建

    SpringBoot 简介 1.Spring 的封装.其设计目的是用来简化 Spring 应用的初始搭建以及开发过程. 2.SpringCloud 微服务的基础 搭建环境 jdk 1.8 + mave ...

  8. JNI工程搭建及编译

    JNI工程搭建及编译 建立Java工程 在具有C/C++比编译器的Eclipse中进行工程的创建,先创建一个简单的Java project,选项和一般同,这里仅仅需要将要调用的C/C++函数声明为na ...

  9. net core Webapi基础工程搭建(六)——数据库操作_Part 2

    目录 前言 开始 使用 小结 前言 昨天是写着写着发现,时间不早了,已经养成了晚上下班抽时间看看能写点儿啥的习惯(貌似),今天实在是不想让昨天没做完的事情影响,所以又坐下,沉下心(周末了),开始把数据 ...

随机推荐

  1. iOS-sqlite3&FMDB使用代码示范

    数据库操作是我们使用十分频繁的一份操作,在iOS中如何使用数据库,使用什么数据库,是我们不得不考虑的一个问题. 小型数据我们可以使用plist文件,或者NSUserDefaults存储.数据量比较多得 ...

  2. mac上安装chromedriver

    默认下载2.35版本,放置到/usr/local/bin #!/usr/bin/env bash # ------------------------------------------------- ...

  3. 添加gitlab远程账号 使用注意事项

    gitlab上面使用的密钥有两种,一种是Deploy keys 这种密钥是只读的,添加了之后,相应设备只拥有clone的权限,不被允许进行push操作.(在相应的库里面的设置里面添加) 还有一种是 S ...

  4. hdu 1558 线段相交+并查集路径压缩

    Segment set Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total ...

  5. Linq技巧2——限制返回数据中的继承类型

    假如有像下面这样的一个模型, 怎样在查询时仅仅需要的Cars呢? 这样的几个继承关系的实体中,查询时Where 条件可以加入OfType<SubType>(),你可以这样来写: var o ...

  6. udp 多播2

    11.3  多播 单播用于两个主机之间的端对端通信,广播用于一个主机对整个局域网上所有主机上的数据通信.单播和广播是两个极端,要么对一个主机进行通信,要么对整个局域网上的主机进行通信.实际情况下,经常 ...

  7. sync fsync fdatasync

    传统的UNIX实现在内核中设有缓冲区高速缓存或页面高速 缓存,大多数磁盘I/O都通过缓冲进行.当将数据写入文件时,内核通常先将该数据复制到其中一个缓冲区中,如果该缓冲区尚未写满,则并不将其排入输出队 ...

  8. Codeforces Gym 100203E bits-Equalizer 贪心

    原题链接:http://codeforces.com/gym/100203/attachments/download/1702/statements.pdf 题解 考虑到交换可以减少一次操作,那么可以 ...

  9. CountDownLatch、CyclicBarrier、Samephore浅谈三大机制

    CountDownLatch.CyclieBarrier与SamePhore都可用来控制线程的执行,那么他们之间有什么区别呢 CountDownLatch CountDowenlatch可以看成一个线 ...

  10. java 字符串压缩长度并解压

    package com.wy.data.emaildata.util; import org.apache.commons.io.FileUtils; import java.io.ByteArray ...