travis-ci. 它就是一个云端持续集成服务, 这个工具会在你每次 push 进行代码提交的时候, 进行代码的功能测试, 来运行 perl 模块目录下 t/ 目录下的所有测试. 这个测试是会自动创建一个虚拟机, 并可以测试不同的 perl 版本. 如果通过就会显示绿色, 不通过就会显示红色, 非常方便.
dsl方式的配置
要使用这个功能, 只需要在你的 github 上的 perl 模块中加入一个 .travis.yml 的配置文件, 这样能自动监控你 github 上代码的变动, 并自动提交测试了.
象常用的 perl 配置测试象如下的内容
代码如下:
language: perl
perl:
- 5.20
- 5.18
- 5.16
- 5.14
- 5.12
- 5.10
env:
- harness_options=j9 test_pod=1 test_ev=1 test_ipv6=1 test_socks=1 test_tls=1
install:
- cpanm -n test::pod test::pod::coverage ev io::socket::ip io::socket::socks io::socket::ssl
- cpanm -n --installdeps .
notifications:
email: false
先通过上面的 language 来指定你项目的语言. 然后接下来指定你需要用来测试的 perl 版本. 可以写上在测试之前你需要安装什么模块之类.
github 和 travis ci 集成
以上配置文件配置完了, 放入到你的 git 项目的目录下以后, 就需要你通过 github 的帐号, 去的网站开通你这个项目的测试功能. 进入后, 点 travis ci for private repositories , 就会出现下面的图面. 就能见到你在 github 上的项目, 然后选择打开…注意你的项目中一定要有上面提到的文件.
这样做完以后, 以后每次你提交代码到 github 的时候, 这个工具就会自动创建一个干净的虚拟机, 然后通过你指定的 perl 版本进行自动化的测试了.
测试的过程和结果查询
你可以写上 notifications 来通知你测试结果, 另外你也可以到 的网站查看详细的测试的结果, 如下显示, 如果是红色表示失败, 你直接点开红色可以见到详细的失败原因和测试的过程.
测试代码的覆盖率
根据 fayland 的指导…又发现了一个好玩的东西. 比如我们在上面的 .travis.yml 的配置文件, 加入如下内容
代码如下:
before_install:
- cpanm mojo::useragent
- cpanm test::more
- cpanm devel::cover::report::coveralls
script:
perl makefile.pl && make test && cover -test -report coveralls
主要是加入了 cover -test -report coveralls 这部分. 因为它需要 devel::cover::report::coveralls 模块的支持, 所以上面让其先安装这个.
然后去 里开启, 这个就会把 cover 的数据发送到那个网站.
这样然后还可以github page上加上 badges. 来显示代码的覆盖率
更多信息请查看IT技术专栏