`
oolala
  • 浏览: 99919 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
09c341db-7f05-3f2b-a572-9ee69a5d8a77
unix环境高级编程
浏览量:21713
社区版块
存档分类
最新评论

持续集成中的单元测试

阅读更多

   最近在研究持续集成。使用maven、nexus、hudson架设了一套餐持续集成环境。项目确实可以作到自动或者定时的编译。 使用checstyle、pdm、findbug对代码进行静态代码分析。个人认为可以把静态分析工具集成到eclipse里面,这样可以在编码初期就发现一些bug。也可以把这些工具当成maven的插件,在编译的时候也作一些检查。

 

   可是现在的项目里面没有单元测试,这套持续集成环境就成了一套自动定时编译环境,根本没有给项目带来什么好处。只有单元测试,这样才能把质量得到提高。

  

   定义规范,编写高质量的代码。参考《代码整洁之道》。此书对提高团队整体质量意识很有帮助。  

 

   质量,质量意识的灌输。

 

   大家有对持续集成中单元测试是怎么作,多多发表意见。

 

   单元测试:junit Jmock

 

    自己写的一个jmock demo

   

import static org.junit.Assert.assertEquals;

import org.jmock.Expectations;
import org.jmock.Mockery;
import org.jmock.integration.junit4.JMock;
import org.jmock.integration.junit4.JUnit4Mockery;
import org.jmock.lib.legacy.ClassImposteriser;
import org.junit.Test;
import org.junit.runner.RunWith;

import com.sinovatech.mock.user.Foo;

@RunWith(JMock.class)
public class FooTest {
	
	/**
	 * 模拟接口时的写法为:
	 *Mockery context = new JUnit4Mockery(); 
	 */

	/**模拟类时的写法为:
	 * Mockery context = new JUnit4Mockery() {{    
	 *   setImposteriser(ClassImposteriser.INSTANCE);    
	 * }};   
	 */

	Mockery context = new JUnit4Mockery() {
		{
			setImposteriser(ClassImposteriser.INSTANCE);//默认实现的是对接口,这里要对类mock,所以加上这句
		}
	};
	
	@Test
	public void testFoo() {
		final Foo foo = context.mock(Foo.class);
		context.checking(new Expectations() {
			{
				one(foo).hello();
				will(returnValue("foo"));
			}
			/*可以定义多个块*/
			{
				one(foo).hello();
				will(returnValue("hello"));
			}
		});
		
		assertEquals("foo", foo.hello());
		assertEquals("hello", foo.hello());
		context.assertIsSatisfied();//如果没有使用mock,测试不通过
	}
	
	
	
}

 

 

分享到:
评论
1 楼 ngn9999 2010-10-08  
大多数持续集成工具都不带测试用例,所以这些必须手写,不仅仅是单元测试,通过持续集成完成集成测试,甚至系统测试,都是可行的。我们之前用Topo来做,就是写了大量的集成测试用例,但没有写单元测试用例。

相关推荐

    持续集成与单元测试xmzy.pdf

    持续集成与单元测试xmzy.pdf

    Flex持续集成之单元测试

    Flex持续集成之单元测试

    持续集成与单元测试

    开发质量低下如何解决,如何确保核心模块质量?

    持续集成技术与单元测试方法

    持续集成技术与单元测试方法 内容包括以下: 持续集成技术 – 持续集成的基本概念 – 持续集成的作用和优点 – 如何实施持续集成 • 单元测试技术 – 单元测试基本方法 – 单元测试实践中常见的问题 – 单元...

    持续集成环境下运行单元测试和代码校验详细过程

    详细描述了持续集成环境的搭建步骤,包括集成hudson sonar maven等环境进行单元测试自动执行,代码规则校验等。是搭建持续集成环境,改建软件自动化测试和校验的学习精品。

    持续集成+单元测试实践

    为什么选择Untils作为本次项目单元测试框架呢?Unitils的优点和介绍网上都比较详细:http://www.unitils.org/summary.html;它的主要模块有:·DatabaseModule:测试数据库维护和连接池·DbUnitModule:使用DBunit进行...

    jenkins持续集成单元测试和findbugs问题解决方案

    jenkins持续集成单元测试和findbugs问题解决方案 1.如何集成单元测试 2.如何集成findbugs 3.tomcat热部署问题解决例如: jar包无法删除和log4j问题

    软件测试之单元测试和自动化测试及UTF应用

    在单元测试中,测试用例应该涵盖各种可能的输入和边界情况,以确保代码在所有情况下都能正确地运行。 单元测试是敏捷开发、测试驱动开发和持续集成的基础。通过进行单元测试,开发人员可以更快速地发现并解决代码中...

    JavaScript单元测试工具Venus.zip

    你要测试的文件,其它文件依赖,以及测试工具模板通过使用 PhantomJS 运行命令行,直接快速运行你的基于浏览器的测试在多浏览器的命令行中同时运行你的测试(本地运行或远程)集成持续集成工具(Selenium Grid ...

    迭代二单元测试和集成测试文档1

    集成测试回顾在Gitmining软件的开发过程中,我们将该软件分为用户信息,仓库信息,用户统计,仓库统计四个模块,采用持续集成的方法进行开发,因此省去了集成测试

    XMeter之性能测试持续集成

    在持续集成和持续部署的流程中,自动构建和自动部署一般是技术团队选择优先实现的目标。有了持续交付的流水线,我们要关心的就是流水线上产品的质量了。从代码编译打包前的单元测试,代码扫描测试,到构建后的功能...

    Jenkins持续集成引擎.rar

    Jenkins是一个开源的、提供友好操作界面的持续集成(CI)工具,起源于Hudson...比如,我们完成单元测试后,可以把代码部署到连接数据库的Staging环境中更多的测试。如果代码没有问题,可以继续手动部署到生产环境。

    Git+Jenkins实现自动化构建与持续集成(git+jenkins+intelij)

    2、每个模块的开发人员并行开发,并进行单元测试 3、开发完毕,将代码集成部署到测试服务器,测试人员进行测试。 4、测试人员发现bug,提交bug、开发人员修改bug 5、bug修改完毕再次集成、测试。 问题描述: 1、...

    Flash持续集成自动化单元测试

    -AfterClasses

    持续集成被证明对于小到中型规模的项目是有价值的

    持续集成已经被证明对于小到中型规模的项目是有价值的;只要你有一个全面的单元测试验证集,你将能够获得短集成周期的好处

    C++单元测试培训资料

    介绍常用的单元测试技术、方法以及单元测试的原则,分析C++程序常见问题,讲解用CPPUnit进行单元测试,Purify进行内存测试,Quantify进行性能测试,PureCoverage进行代码覆盖率测试,以及编码重构和持续集成技术。

    持续集成之路——数据访问层的单元测试

     测试是持续集成的基石,没有测试的集成基本上是毫无意义的。如何写好测试就是横亘在我面前的第一个问题。那就从数据访问层开始吧。说起来可笑,从3年前第一次准备做持续集成式,就开始考虑测试数据访问层的一些...

    PHP项目持续集成---Jenkins.ppt

    技术文档极限编程中提出的一项建议...单元测试(Unit Test) 决定了持续集成的效果 PHPUnit Framework 反映项目健康状况,利于发现问题和改进 尽快的发现错误,减少重复工作,降低风险 自动化部署,有效提高工作效率

Global site tag (gtag.js) - Google Analytics