php持续集成实践—慧聪社区组.doc_第1页
php持续集成实践—慧聪社区组.doc_第2页
php持续集成实践—慧聪社区组.doc_第3页
php持续集成实践—慧聪社区组.doc_第4页
php持续集成实践—慧聪社区组.doc_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PHP持续集成实践社区组1、 什么是php持续集成持续集成是极限编程中提出的一项建议实践。v 在开发阶段,对项目进行持续性自动化编译、测试v 单元测试(Unit Test) 决定了持续集成的效果 PHPUnit Frameworkv 反映项目健康状况,利于发现问题和改进v 尽快的发现错误,减少重复工作,降低风险v 自动化部署,有效提高工作效率2、 需要的软件1. SonarSonar 是一个用于代码质量管理的开放平台。通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具。与持续集成工具(例如 Hudson/Jenkins 等)不同,Sonar 并不是简单地把不同的代码检查工具结果(例如 FindBugs,PMD 等)直接显示在 Web 页面上,而是通过不同的插件对这些结果进行再加工处理,通过量化的方式度量代码质量的变化,从而可以方便地对不同规模和种类的工程进行代码质量管理。在对其他工具的支持方面,Sonar 不仅提供了对 IDE 的支持,可以在 Eclipse 和 IntelliJ IDEA 这些工具里联机查看结果;同时 Sonar 还对大量的持续集成工具提供了接口支持,可以很方便地在持续集成中使用 Sonar。此外,Sonar 的插件还可以对 Java 以外的其他编程语言提供支持,对国际化以及报告文档化也有良好的支持。最新版本:3.5.12. Sonar-runnerSonar Runner是最常用的分析客户端之一,可以对绝大多数类型的项目进行分析。最新版本:2.2其他常用的还有:Maven and Ant 先用sonar-runner做客户端,分析。没有问题了,在迁移到jenkens上。3. JenkinsJenkins,之前叫做Hudson,是基于Java开发的一种持续集成工具,用于监控秩序重复的工作,包括:1、持续的软件版本发布/测试项目。2、监控外部调用执行的工作。4. Php工具v PHPUnit ,是PHP中的单元测试利器v PHP Depend,是一个PHP中静态代码分析的工具。它可以用来检查你的PHP项目中的代码规模和复杂程度v PHPMD,这个工具能够探测PHP源代码中一些潜在的问题。v PHP_CodeSniffer,是一个PHP的代码风格检测器3、 方式原理这里没有用到sonar-runner,sonar-runner只是最为客户端调试时用到。4、 软件安装1. Java&tomcat略。2. Sonar下载 Sonar 发布包,解压到本地磁盘路径下。/downloads/配置:Sonar根目录/conf/perties一般需要配置以下属性 sonar.jdbc.url: 数据库连接地址 sonar.jdbc.driver: 驱动类 sonar.jdbc.user: 数据库用户名 sonar.jdbc.password: 密码启动:Sonar根目录/sonar.sh start3. Sonar-runnerv 将下载包解压到一个本地路径下。v 将解压路径设置为环境变量:SONAR_RUNNER_HOMEv 更改配置文件:$SONAR_RUNNER_HOME/conf/pertiessonar.host.url=:9000sonar.jdbc.url=jdbc:mysql:/:3306/sonar?useUnicode=true&characterEncoding=utf8sonar.jdbc.driver=com.mysql.jdbc.Driversonar.jdbc.username=rootsonar.jdbc.password=hudongsonar.sourceEncoding=gb2312运行:在项目目录创建perties,配置项目的信息# required jectKey=php:jectName=jectVersion=1.0# path to source directories (required)sonar.sources=/root/gaozc/phpdemo# The value of the property must be the key of the language.sonar.language=php#sonar.forceAnalysis=truesonar.phpPmd.skip=true#sonar.phpCodesniffer.skip=truesonar.phpDepend.skip=true sonar.phpUnit.skip=truesonar.phpUnit.coverage.skip=true# To deactivate features related to unit tests execution and coverage#sonar.dynamicAnalysis=false# Encoding of the source files#sonar.sourceEncoding=gb2312执行:sonar-runner4. Jenkinsv Jenkins,是基于Java开发的一种持续集成工具。v 下载jenkins.warv 将jenkins.war文件放入tomcat下的webapps目录下,启动jenkins时,会自动在webapps目录下建立jenkins目录。访问,http:/localhost:8080/jenkins。使用前需要先进行jenkins的配置,包括jdk、sonar、email、svn、ant、maven等。5. Php环境安装可参考:/display/SONAR/Installing+PHP+Environment/index.php/archives/74/安装php:./configure -prefix=/usr/local/php -with-config-file-path=/usr/local/php/etc -with-bz2 -with-zlib-dir -enable-mbstring -enable-exif -disable-ipv6 -disable-cgi -enable-sockets 然后用pear安装需要的工具:(如果没有pear可以手动安装)Phpunit:pear channel-discover pear.phpunit.depear channel-discover pear install phpunit/PHPUnit-3.5.5PHP Depend:pear channel-discover pear install pdepend/PHP_Depend-1.1.0PHPMD:pear channel-discover pear install -alldeps phpmd/PHP_PMD-1.3.2PHP_CodeSniffer:pear install PHP_CodeSniffer-1.3.25、 持续集成1. 配置jenkins在jenkins插件中心,安装sonar插件:系统配置里,配置sonar相关信息:2. 添加项目新建job。连接svn部分:构建时调取sonar分析:3. 构建项目列表:点击立即构建:4. 查看报告点击上图sonar按钮,去sonar服务端查看报告。整体仪表盘:错误对照:6、 相关扩展除了数据库和 Web 应用外,Sonar 还有很重要的一部分客户端程序。客户端程序用于对具体的程序工具进行分析,不同的语言,不要的项目构建类型可以使用不同的客户端程序。Sonar 提供很多类型的客户端,可以根据项目构建类型选择最佳方案:n Sonar Runner: 推荐默认客户端,如果你不知道选择哪个分析你的项目就是使用它把。.n Maven: 如果项目Maven构建则推荐使用对于的Maven 插件包;n Ant Task:如果项目Ant构建则推荐;.Jenkins结合sonar目前我们只用了语法的检查。Jenkins和sonar基于灵活的插件机制还有很多高级的功能,具体可以阅读官方文档。7、 相关问题总结一下研究过程中遇到的问题,如下:1.分析报告在哪里?详细的报告在sonar里面,也可以通过插件设置查看(也可以用eclipse插件)。目前我们的报告是直接从sonar里面查看。2.如果jenkins没有报告,那有什么用?jenkins是持续集成的工具,build用。在php中主要是下载最新的代码,然后定期调取sonar进行分析,进而生成报告。3.分析可以只用sonar-runner吗?可以。通过sonar-runner客户端完全可以实现。只是没有持续、和自动性。安装过程中前期调试,一直用的sonar-runner。4. 现有的资料?研究过程中查看了以下相关jenkins的资料:v maven+jenkins+sonar for javav sonar使用v ant+jenkins for php 竟然没有用到sonar 需要建立好多xml文件(以及插件),包括单元测试和代码复杂度等检测。v phing+jenkins+php+sonar这个说的太不清楚。5.可行性方案ant+jenkins+php相关插件+php扩展*6.最后执行方案jenkins+sonar插件+php环境+sonar7.php工具安装在jenkins服务器上还是sonar服务器上?安装在jenkins上,即相对于sonar服务的客户端(jenkins或者sonar-runner上)上。曾遇到的难解决问题?(1) php分配的内存不足?修改php.ini即可。(2) 系统内存不足,分析时间几个小时?去掉不需要分析的部分,分析部分代码。(3) 遇到报错,但是一直未找到问题?sonar-runner分析时可开启debug(sonar-runner -X)模式,可以清楚的看到错误的产生原因。最终还是内存不足问题导致。(4) 添加抽奖项目一直报错,最后查出是因为,如果检查空的目录或者没有类的目录,会报空指针错误。8、 参考资料PHP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论