2009-10-28 59 views
4

我寫了一個基於Test::Perl::Critic的簡單測試用例,它在存儲庫(all_critic_ok)中的每個源文件上運行critic。但是,此測試需要很長時間,尤其是因爲我也使用了Perl::Tidy策略。如何運行Test :: Perl :: Critic並行?

通常,批評不同的文件不依賴於其他批評者,所以我想我可以並行化這些測試。事實證明,TAP::Harness確實可以並行測試,但只能以文件方式進行測試,而不能進行測試。

你會如何並行化這些測試?任何解決方法都可以。

回答

0

如果你有大量的文件,那麼創建多個Test :: Perl :: Critic測試腳本可能不是一個壞主意。例如,Perl-Critic本身有三個Test :: Perl :: Critic腳本:一個用於檢查應用程序代碼,一個用於測試代碼,另一個用於* .run文件。其中每一個都使用一組稍微不同的規則。

因此,如果您可以將您的代碼分成至少兩個邏輯組併爲它們創建單獨的Test :: Perl :: Critic腳本,那麼通過與Tap :: Harness並行運行它們至少可以使性能提高2倍。

此外,您可以激活PPI緩存(請參閱Test :: Perl :: Critic文檔獲取路線)。但那隻會使性能得到適度的改善。

如果你真的有興趣使Test :: Perl :: Critic真正並行運行,那麼你非常歡迎貢獻代碼。您可以在http://perlcritic.tigris.org註冊一個提交位。