使用Jenkins进行android项目的自动构建(4)
加入单元测试
android单元测试很多都是使用Instrumentation进行的,这里讲的是试用JUnit,为什么用JUnit呢?因为使用Instrumentation需要打包apk安装,然后再进行测试,即需要用一个项目去测试另一个项目。我现在想做的单元测试是在打包前进行一些测试验证,所以需要用JUnit。至于使用Instrumentation的单元测试,请看这里。
maven默认的源代码src目录和测试代码test目录的结构是
src/main/java
test/java
实际使用中发现以下目录结构maven也可以使用
src/
test/
这个应该是因为项目源代码和test代码需要分开编译,在target中也是分开放置的。如果直接用eclipse的android项目结构(在eclipse中test需要放在src下才能运行)放到maven中运行,会出现类似package junit.framework does not exist 的错误,所以需要在构建前执行命令将test目录移动到src之外。
单元测试代码,新的JUnit中,测试方法已经不需要用test开头,只需加上 @Test。
package com.example.demo;
import com.example.util.PublicData;
import junit.framework.Assert;
import org.junit.Test;
import org.junit.Ignore;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4; @RunWith(JUnit4.class)
public class TestUrl { @Test
public void prodApi() {
String equals = PublicData.HTTP_URL;
Assert.assertEquals("http://prod.xxx.com", equals);
} @Test
public void devApi() {
String equals = PublicData.HTTP_URL;
Assert.assertEquals("http://dev.xxx.com", equals);
}
/*
@Test
@Ignore
public void thisIsIgnored() {
}
*/
}
使用Maven进行编译打包,会将test目录中test开头的类视为测试类,如果使用 testsuite,testsuite的类名用Test开头,testcase的类名不需要用test开头,避免重复被执行。
package com.example.demo; import org.junit.runner.RunWith;
import org.junit.runners.Suite; @RunWith(Suite.class)
@Suite.SuiteClasses({
CheckAppInfo1.class,
CheckAppInfo2.class
}) public class TestGroup { }
使用Jenkins进行android项目的自动构建(4)的更多相关文章
- 使用Jenkins进行android项目的自动构建(5)
之前在项目中引入的单元测试使用的是JUnit,可以在构建前进行测试,这里在介绍一下使用Instrumentation 进行单元测试.使用Instrumentation进行测试,比之前多一些步骤,需要把 ...
- 使用Jenkins进行android项目的自动构建(3)
建立Jenkins项目 1. “新增作业”->填写作业名称->选择“建置 Maven 2 或 3 專案”->OK.新增成功后会进入“組態設定”,暂时先保留默认值,稍后再进行设定. 2 ...
- 使用Jenkins进行android项目的自动构建(2)
Maven and POM 1. 什么是Maven? 官方的解释是: http://maven.apache.org/guides/getting-started/index.html#What_is ...
- 使用Jenkins进行android项目的自动构建(6)
之前已经介绍过使用Maven做构建,在来介绍一下Gralde的自动化构建. 什么是Gralde?官方的解释是 Gradle is an open source build automation sys ...
- 使用Jenkins进行android项目的自动构建(1)
环境搭建 1. 下载JDK,安装,并将JDK的安装目录加入到环境变量JAVA_HOME,将JDK的bin目录加入到环境变量PATH. 2. 下载Android SDK,解压,并将SDK的安装目录加入到 ...
- 用Ant实现Java项目的自动构建和部署
原文地址:http://tech.it168.com/j/2007-11-09/200711091344781.shtml 本文请勿转载! Ant是一个Apache基金会下的跨平台的构 ...
- 用Ant实现Java项目的自动构建和部署(转)
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一. ...
- 用Ant实现Java项目的自动构建和部署(转)
Ant是一个Apache基金会下的跨平台的构件工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一. ...
- 使用Bitbucket Pipeline进行.Net Core项目的自动构建、测试和部署
1. 引言 首先,Bitbucket提供支持Mercurial和Git版本控制系统的网络托管服务.简单来说,它类似于GitHub,不同之处在于它支持个人免费创建私有项目仓库.除此之外,Bitbucke ...
随机推荐
- [IT学习]Python如何处理异常特殊字符
欢迎访问www.cnblogs.com/viphhs A byte of Python<输入与输出>一节中有一个处理回文的小例子(io_input.py).作者留了个思考题. 如何将标点去 ...
- 定时任务 bash 对远程数据库 备份 读写
1g表 每行都有可能被更新,故全表备份 检测备份是否在进行 [root@hadoop1 ~]# netstat --numeric-ports | grep 3306tcp 0 ...
- C# 中串口通信 serialport1.DataReceived 函数无法触发或者出发延时等等问题解决方法
以前这个问题困扰我多天最后查资料一大堆,最后最终攻克了,看到非常多人做C#串口都遇到相同的问题,所以写一篇博文,以便学习交流. 一定要在com实例化的时候设置ReceivedBytesThreshol ...
- POJ1177 Picture —— 求矩形并的周长 线段树 + 扫描线 + 离散化
题目链接:https://vjudge.net/problem/POJ-1177 A number of rectangular posters, photographs and other pict ...
- POJ1733 Parity game —— 种类并查集
题目链接:http://poj.org/problem?id=1733 Parity game Time Limit: 1000MS Memory Limit: 65536K Total Subm ...
- YTU 2414: C语言习题 字符串排序
2414: C语言习题 字符串排序 时间限制: 1 Sec 内存限制: 128 MB 提交: 656 解决: 305 题目描述 输入n个字符串,将它们按字母由小到大的顺序排列并输出.编写三个函数实 ...
- [USACO 2004DEC] Navigation Nightmare
[题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3362 [算法] 带权并查集 时间复杂度 : O(NlogN) [代码] #inclu ...
- zip压缩文件测试
http://tech.it168.com/a2009/0604/583/000000583382_5.shtml ]; MessageBox.Show(string.F ...
- java.lang.NoSuchMethodError: org.springframework.web.context.ConfigurableWebApplicationContext.setId
运行spring报了这个错误,网上说是spring版本冲突,检查maven依赖,发现我依赖的是spring-core.3.0.5,但是spring-orm和spring-tx依赖了spring-bea ...
- Ceph之对象存储网关RADOS Gateway(RGW)
一.Ceph整体架构及RGW在Ceph中的位置 1.Ceph的整体架构 Ceph是一个统一的.分布式的的存储系统,具有优秀的性能.可靠性和可扩展性.Ceph支持对象存储(RADOSGW).块存储(RB ...