Install Perl Module from CPAN

我们的测试过程大部分已经自动化了,但还是需要在每次代码更新后手工提交。虽然我只负责其中一种测试,但对时刻关注是否有代码更新感到十分厌烦,有时候甚至会忘记为某次代码更新做测试。于是想着这个过程是否也能自动化。

我负责的测试是以web方式提供的,每次都是打开浏览器,填几项内容,然后提交,测试跑完后会用email的方式发出测试报告。因此,我的自动化要做这么几件事:

  1. 定期检查是否有代码更新。因为测试十分耗时,所以两次代码更新之间的间隔会比较长,所以我认为每一小时检查一次就足够了。
  2. 如果发现有代码更新(我们每次代码更新都会修改一个特定的文件,因此只要检查那一个文件就可以了),就更新所有代码,然后编译。
  3. 提交测试。

为了实现第三步的自动化,我决定使用LWP这个Perl Module。但是Cygwin本身并没有这个module,必须要自己装。下面是我安装这个module的方法。

  1. 首先配置CPAN Module,方法是在bash下面运行

    $ perl -MCPAN -eshell

    配置过程会询问一些问题,其中CPAN的镜像可以选择http://cpan.linuxforum.net/

  2. 接下来要更新CPAN Module,而不是直接装LWP。否则会遇到undefined subroutine &Digest::base::new之类的错误。方法是运行

    cpan> install Bundle::CPAN

    这一步是关键,切记切记。我开始不知道,还在网上搜索这个错误信息,发现有人说是Perl的问题,我就把整个Cygwin更新到1.5.19.4,结果啥用也没有,还把其它东西弄得一塌糊涂。

  3. 装好新的CPAN Module,先退出,然后再运行1里面的命令进入CPAN的shell,这时就可以装LWP了

    cpan> install Bundle::LWP

    安装Bundle::LWP意味着不仅安装LWP,而且安装它需要的其它module。

perltoot

perltoot全称为Tom’s object-oriented tutorial for perl。说实话,看了好几本书没学会怎么用Perl做OO,直到看了这份文档。

昨晚国米虽然赢了,但踢得不是很精彩(尤其是下半场),所以就拿出perltoot边看边听比赛。文档写得深入浅出,不愧称为tutorial,在吹响终场哨之前看完了这28页纸,基本上不再茫然了。不过开始看Accessing Class Data一节的时候不太明白,索性略过去,看到后来就明白了。

感觉用Perl做OO怪怪的,尤其是那个bless,就没理解过(现在想来我的理解能力可能有点问题),后来学Scheme时看到Tagged data也没什么感觉,直到这次再学Perl的OO,联系起来才算明白了。不过,好像很多module都设计成能以OO方式运用,而且我打算尝试perlunit,不学不行啊。