我最近了解了Module :: Starter,並用它爲Web應用程序(各種CGI腳本以及相關模塊)構建了一個框架。能夠通過運行make test
來測試我的代碼非常好,但我也想用諸如Test :: WWW :: Mechanize之類的東西來測試CGI腳本。這需要在運行測試之前在某處安裝腳本並配置一個網絡服務器,這似乎是一種粗心大意。分佈式Perl CGI腳本的自動化測試
在分佈中包含像這樣的測試是否有意義?我的感覺是,我應該讓我的模塊儘可能地完成繁重的工作,並讓CGI腳本只是簡單地調用模塊函數,但我測試的主要原因之一是避免了我的CGI中與安全有關的迴歸。
你不需要整個服務器,只需要提供一個基本的CGI接口。標準CGI模塊包括從命令行(即沒有服務器)運行參數時將參數傳遞給腳本的方法。然後,您可以捕獲輸出並將其與您所期望的相匹配。請注意,您也可以安裝* author tests *,這些程序在安裝時不會執行,但僅限於您自己。這對昂貴的測試或迴歸測試很有用。 – amon
@amon除了回答我的主要問題,感謝提及作者測試,我沒有意識到這種能力,它似乎可以派上用場。 – ThisSuitIsBlackNot
@ThisSuitIsBlack沒有看看[測試:: WWW ::機械化:: CGI](https://metacpan.org/module/Test::WWW::Mechanize::CGI) – chansen