Flex 持续集成(CI)实践(Hudson)
项目开始后,持续集成会是一个关键的环节,本文针对Flex的开发的持续集成进行了一个实战,这些相关的工具和功能还是很强大的,通过组合这些工具,可以构建一个编译、单元测试、集成测试、代码检查等系列工作的CI服务,为后续的项目持续发展打下一定的基础。
运行Hudson
http://hudson-ci.org 上下载文件
执行: java - ja r hudson.war 或 java -jar hudson.war --httpPort=8888
浏览器输入
http://localhost:8080
即可查看
hudson.war也可部署到其他JSP容器(如Tomcat Jetty等)
系统管理 中配置JDK Maven等环境
实例
以FlexUnit的内容为例,试验一下持续集成的过程
下载 http://flexunit.org/releases/flexunit-4.1.0-8-4.1.0.16076.zip, 加入本地的SVN中,新的CI项目中设置正确的SVN地址
建立项目,设置代码管理部分
点击“立即构建”可以看到如下的界面,由于这个代码中有两个测试失败的,因此有具体的提示
SampleTest.as屏蔽掉Assert失败的内容,再次运行构建,测试成功
以上可见,整个过程非常简单,构建的信息非常明了
http://code.google.com/p/flexonjava/ Flex On Java这本书第十章有详细的关于视图、模型、服务等的测试
其他参考
持续集成除了编译、单元测试外,还包括很多其他类型的自动化工作,如下是一个参考工具
单元和界面测试
FlexUnit http://www.flexunit.org/
mock http://code.google.com/p/mock-as3/ http://github.com/drewbourne/mockolate
FlexMonkey http://www.gorillalogic.com/flexmonkey
Visual Flex Unit http://code.google.com/p/visualflexunit/
覆盖率(Code Coverage)
http://code.google.com/p/flexcover/
压力测试(Load Testing)
http://labs.adobe.com/wiki/index.php/ Flex_Stress_Testing_Framework
代码规范:
参考规范 http://tinyurl.com/3xphtd
FlexPMD
http://opensource.adobe.com/svn/opensource/flexpmd/maven-repository/release/com/adobe/ac/flex-pmd/1.2/flex-pmd-all-in-one-bundle-1.2.zip (包括PMD Cpd metrics)
在线查看代码分析结果情况的工具
http://opensource.adobe.com/svn/opensource/flexpmd/bin/flex-pmd-violations-viewer.html
检查工具 http://opensource.adobe.com/wiki/display/flexpmd/FlexPMD
代码重复FlexCPD http://opensource.adobe.com/wiki/display/flexpmd/FlexCPD
代码度量FlexMetrics http://opensource.adobe.com/wiki/display/flexpmd/FlexMetrics
FlexPMD和Hudson的集成
http://wiki.hudson-ci.org/display/HUDSON/PMD+Plugin
http://opensource.adobe.com/wiki/display/flexpmd/How+to+invoke+FlexPMD
http://cookbooks.adobe.com/post_Invoke_FlexPMD_with_Maven_on_build_Flex_projects-16066.html
这些工具的CI的步骤:
Ø 项目pom.xml中加入相关的内容
Ø hudson安装对应的插件,设置对应的编译选项,然后构建即可查看相关的结果
FlexPMD - eclipse 插件
参考如下的内容可以在Elcipse中安装使用
http://bbs.9ria.com/viewthread.php?tid=41293
http://opensource.adobe.com/svn/opensource/flexpmd/plugin/trunk/flex-pmd-eclipse-plugin-site