github中自動(dòng)測(cè)試工具 travis-ci的方法

字號(hào):


    travis-ci. 它就是一個(gè)云端持續(xù)集成服務(wù), 這個(gè)工具會(huì)在你每次 push 進(jìn)行代碼提交的時(shí)候, 進(jìn)行代碼的功能測(cè)試, 來(lái)運(yùn)行 perl 模塊目錄下 t/ 目錄下的所有測(cè)試. 這個(gè)測(cè)試是會(huì)自動(dòng)創(chuàng)建一個(gè)虛擬機(jī), 并可以測(cè)試不同的 perl 版本. 如果通過(guò)就會(huì)顯示綠色, 不通過(guò)就會(huì)顯示紅色, 非常方便.
    dsl方式的配置
    要使用這個(gè)功能, 只需要在你的 github 上的 perl 模塊中加入一個(gè) .travis.yml 的配置文件, 這樣能自動(dòng)監(jiān)控你 github 上代碼的變動(dòng), 并自動(dòng)提交測(cè)試了.
    象常用的 perl 配置測(cè)試象如下的內(nèi)容
    代碼如下:
    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
    先通過(guò)上面的 language 來(lái)指定你項(xiàng)目的語(yǔ)言. 然后接下來(lái)指定你需要用來(lái)測(cè)試的 perl 版本. 可以寫上在測(cè)試之前你需要安裝什么模塊之類.
    github 和 travis ci 集成
    以上配置文件配置完了, 放入到你的 git 項(xiàng)目的目錄下以后, 就需要你通過(guò) github 的帳號(hào), 去的網(wǎng)站開通你這個(gè)項(xiàng)目的測(cè)試功能. 進(jìn)入后, 點(diǎn) travis ci for private repositories , 就會(huì)出現(xiàn)下面的圖面. 就能見到你在 github 上的項(xiàng)目, 然后選擇打開…注意你的項(xiàng)目中一定要有上面提到的文件.
    這樣做完以后, 以后每次你提交代碼到 github 的時(shí)候, 這個(gè)工具就會(huì)自動(dòng)創(chuàng)建一個(gè)干凈的虛擬機(jī), 然后通過(guò)你指定的 perl 版本進(jìn)行自動(dòng)化的測(cè)試了.
    測(cè)試的過(guò)程和結(jié)果查詢
    你可以寫上 notifications 來(lái)通知你測(cè)試結(jié)果, 另外你也可以到 的網(wǎng)站查看詳細(xì)的測(cè)試的結(jié)果, 如下顯示, 如果是紅色表示失敗, 你直接點(diǎn)開紅色可以見到詳細(xì)的失敗原因和測(cè)試的過(guò)程.
    測(cè)試代碼的覆蓋率
    根據(jù) fayland 的指導(dǎo)…又發(fā)現(xiàn)了一個(gè)好玩的東西. 比如我們?cè)谏厦娴?.travis.yml 的配置文件, 加入如下內(nèi)容
    代碼如下:
    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 這部分. 因?yàn)樗枰?devel::cover::report::coveralls 模塊的支持, 所以上面讓其先安裝這個(gè).
    然后去 里開啟, 這個(gè)就會(huì)把 cover 的數(shù)據(jù)發(fā)送到那個(gè)網(wǎng)站.
    這樣然后還可以github page上加上 badges. 來(lái)顯示代碼的覆蓋率