CPAN 模組之安裝測試

作者:   發佈於:   #testing

安裝測試一詞,所指的是「某某模組能否被順利地安裝完畢」的這項題目。偶爾會碰到沒 有好好製作的模組,就算丟給 cpanm 去裝,也會在途中失敗。雖然最近碰到這 類問題的機會已經很少了,但還是有點好奇。

這種測試手法基本上就是直接把散佈檔名交給 cpanm,讓 cpanm 裝裝看,看能否成功地 跑到結束。一般來說使用 cpanm 時,也有可能會加上 --notest,就是完全不去執行散 佈檔內提供的單元測試。因些安裝測試也可分為兩種版本:執行單位測試的、與不執行的。

單位測試可能會因為相依模組的 API 變更或改版了而失敗,而讓安裝測試一併失敗。不 執行單位測試的話,安裝測試會失敗就只剩下模組本身的詮釋資料殘缺而讓 cpanm 不 知如何處理下去這方面的可能了。

有了這想法後,先將此測試大綱定義如下:

  1. 取得最近上傳到 CPAN 的模組
  2. 逐一進行兩種風格的安裝測試
  3. 逐一回報測試結果

由於想要讓這段測試流程定期地被執行,因此選用 Drone CI。先試跑一陣子看看。

最近上傳的模組可自 CPAN 提供的 RSS 源料中取得。而測試結果目前是送給自架的 Feedro

如上所述的測試過程,被我寫成平舖直述的 bash 程式,丟去給 Drone CI 執行了: DroneCI: gugod/cpan-upload-installation-tests/

測試結果的源料可由此取得:

  1. 完整執行單元測試之版本 :: JSONFeed, Atom, RSS
  2. 忽略單元測試之版本 :: JSONFeed, Atom, RSS

這整份實做的源碼則是置於此處:github: gugod/cpan-upload-installation-tests/