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。

3 thoughts on “Install Perl Module from CPAN

  1. 匿名 says:

    在 windows 下怎么不用 activestate 的 Perl 呢?

    作 testing , 复杂些的推荐使用 Test::WWW::Mechanize, 另外 WWW::Mechanize 是建在 LWP 基础上的,但是更 high level 一些 ( 即用户界面更方便)

    qiang@perlchina

  2. 主要是我们的软件要在Cygwin下编译,用到了m4, make, sed之类的命令,这样直接用Cygwin带的Perl会方便一点。至少我是这么认为的,呵呵。而且定时的功能也可以用Cygwin的cron来实现。

    其实我们其它的测试用activestate perl还是很多的,我负责的这个特殊一点。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据