用 Travis CI 進行 CPAN 模組測試
作者:gugod 發佈於:Travis CI 是一套自動化進行整合測試的平台,開發者只要提供 一個簡單設定檔,就可以在他們的機器上執行測試,相對於一般 CI 軟體都有點難架設,這 種服務十分的優秀。要使用的話,必需要有 github 帳號,原始碼也必需要放在 github 上, 也就是說,一定要用 git。
這服務逐漸擴充,今天他發佈了 Perl 與 Python 語言的支援,著實讓人躍躍欲試。
基本上只要在 travis-ci 網站登入後,去 Profile 頁面找到自己的專案,核選後,他們的伺服器就會自動
執行測試(如下圖)。只要源碼被 git push
上去,一分鐘內就會被測試,十分即時。
先用 Acme::Lingua::ZH::Remix 來做試驗,
需要加入個 .travis.yml
檔案,內容如:
language: perl
perl:
- "5.10"
- "5.12"
- "5.14"
before_install: cpanm --notest Module::Install
這表示要用三種版本的 perl 來測試,並且在編譯模組之前,先安裝 Module::Install
。測試機中的 perl 是用
perlbrew 事先安裝的,上述三種版號,實際上裝的是 5.10.1、 5.12.3、5.14.2。沒有 5.15 系列。相依的模組,
則是用 cpanm 裝的。
如果是使用 ExtUtil::MakeMaker
或 Module::Build
的話則不必加入
before_install
。或者,把 Module::Install
產生的 inc/
目錄一併存到 git 倉儲
中的話,也可以不必要它先裝 Module::Install
。我個人的習慣是使用
Module::Install
,但是不把inc/
存在 git 裡,雖然要 travis-ci 先裝
Module::Install
也很容易,但會連帶裝到許多其他模組,會讓測試環境不那麼乾淨,說
不定會產生 truth negative,因此值得多想一下。
完畢後直接 git push
,接著就是到 travis-ci 網站上等著看結果(如下圖)。
由於指定用三種 Perl 版本測試,所有列出了三項測試工作(Job),點入後可看見測試中的記錄,在此不再附圖。
Travis CI 整套系統都是開源,在 github 上,有志者可以試著自行增加語言支援(像是 Haskell): https://github.com/travis-ci 。
有別於 cpantester,CI 的測試情境是讓開發者在釋出模組之前先進行測試,與 cpantester 相輔相成,應該可以碰出不錯的火花。