请教PHP项目的持续集成 - V2EX
leben
V2EX    PHP

请教PHP项目的持续集成

  •  
  •   leben May 13, 2011 5846 views
    This topic created in 5480 days ago, the information mentioned may be changed or developed.
    php项目的持续集成到底应该怎么做?有经验的朋友分享一下经验吧。
    我自己的开发环境,本地开发,然后传到公司服务器上测试,稳定的版本更新website,有几个问题。
    1、自动测试,web gui的测试应该怎么完成,特别是ajax的测试。
    2、构建的过程应该是什么样的,我看了ant和phing,感觉php没有java程序那么麻烦还需要编译,只是要拷贝部分文件就可以更新了,这个构建到底需要怎么来做。

    我知道这更多只是一个良好的工作习惯问题,但是自己实在是摸不着头绪,特别是有什么工作量大的时候,有一些小的bug可能就直接修改网站代码了,现在手头的几个版本自己都不知道是不是一致的,就是一个感觉,混乱。希望借鉴一下大神们的经验。
    6 replies    1970-01-01 08:00:00 +08:00
    joyqi
        1
    joyqi  
       May 13, 2011
    建议你使用makefile,对php来说已经够用了
    aligo
        2
    aligo  
       May 13, 2011
    ajax测试分两部分吧,http api用一般方法测试就行了
    前端方面偏代码单元测试可用jsunit,可以mock一下,分别手动打开各种浏览器运行即可T_T
    偏完整的行为测试可以用selenium

    部署的话phing啊capistrano啊都是不错的,用它们的一个前提就是版本控制是必须的,看你的混乱状况应该就是这个原因吧
    leben
        3
    leben  
    OP
       May 13, 2011
    我用的git,仅限于控制变更。其实我的混乱主要是需求变化太快引起的,很多时候今天新的特性要发布了,boss还在变来变去,还要求必须上线,最后只能不明不白的就上去了。

    我在尝试xinc,我自己的感觉,不管用什么方式,在自动构建的时候,build.xml的编写都是最让人头疼的,太麻烦了。

    @joyqi 谢谢,有时间学习一下。
    aligo
        4
    aligo  
       May 13, 2011
    @leben 如果喜欢规整有条理的话,可以尝试用git-flow
    spritevan
        5
    spritevan  
       May 13, 2011   1
    我用 .git/hooks/post-receive 检测 commit msg 里带了 [deploy] 就连到测试环境执行 deploy.sh "其实里面就是一个 git pull 命令 ><
    唔... 也用 makefile 执行一些 static 打包合并压缩的重复劳动
    leben
        6
    leben  
    OP
       May 13, 2011
    都是高手,受教了。。。
    About     Help     Advertise     Blog     API     FAQ     Solana     5389 Online   Highest 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 37ms UTC 05:49 PVG 13:49 LAX 22:49 JFK 01:49
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86